跳转至

软件工程

课程信息需按教学班核对

本页不固定学分、学期、教师、培养性质、团队人数、项目题目或考试范围。理论课、项目课和不同院系的同名课程可能采用不同安排。

核心内容

  • 过程与生命周期:迭代、增量、敏捷等开发方式及其适用条件。
  • 需求工程:需求获取、规格说明、用例、验收条件和可追踪性。
  • 软件设计:模块化、接口、职责分配、架构视图和常见设计模式。
  • 质量保证:代码审查、静态检查、测试、持续集成和缺陷管理。
  • 项目管理:估算、计划、风险、配置管理和团队沟通。
  • 维护与演化:重构、技术债、兼容性和发布管理。

UML、设计模式或特定测试方法是否纳入考核,应以当年大纲为准,不能写成固定“必考大题”。

项目实践

课程可能安排个人或团队项目,也可能以案例、文档评审和小型练习为主。若有团队项目,应从任务书确认人数、技术栈、交付物和评分方式,不套用其他院系或往届项目模板。

通用的项目工作方法包括:

  1. 将需求转成可验证的验收条件,并维护需求到测试的追踪关系;
  2. 通过版本控制、代码审查和持续集成保持主分支可构建;
  3. 记录关键架构决策、备选方案和约束;
  4. 用风险决定测试与评审投入,而不是只追求提交量或覆盖率数字。

院系课程边界

计算机学院的软件工程课程与软件学院的 SEC 系列不能仅凭名称互相替代。软件学院课程与软件质量专题 另行说明 SEC、软件测试以及跨院系收录的软件分析资源;其中软件分析的 PASCAL 公开课程也不能据目录位置推定为软件学院必修。

参考资料

  • Roger S. Pressman、Bruce R. Maxim:《Software Engineering: A Practitioner's Approach》:通用软件工程参考。
  • Refactoring.Guru:设计模式与重构的辅助材料,不构成课程指定答案或考核范围。
  • 南京大学计算机学院课程体系:用于定位培养体系,具体开课信息仍查本人培养方案和教务系统。