软件工程¶
课程信息需按教学班核对
本页不固定学分、学期、教师、培养性质、团队人数、项目题目或考试范围。理论课、项目课和不同院系的同名课程可能采用不同安排。
核心内容¶
- 过程与生命周期:迭代、增量、敏捷等开发方式及其适用条件。
- 需求工程:需求获取、规格说明、用例、验收条件和可追踪性。
- 软件设计:模块化、接口、职责分配、架构视图和常见设计模式。
- 质量保证:代码审查、静态检查、测试、持续集成和缺陷管理。
- 项目管理:估算、计划、风险、配置管理和团队沟通。
- 维护与演化:重构、技术债、兼容性和发布管理。
UML、设计模式或特定测试方法是否纳入考核,应以当年大纲为准,不能写成固定“必考大题”。
项目实践¶
课程可能安排个人或团队项目,也可能以案例、文档评审和小型练习为主。若有团队项目,应从任务书确认人数、技术栈、交付物和评分方式,不套用其他院系或往届项目模板。
通用的项目工作方法包括:
- 将需求转成可验证的验收条件,并维护需求到测试的追踪关系;
- 通过版本控制、代码审查和持续集成保持主分支可构建;
- 记录关键架构决策、备选方案和约束;
- 用风险决定测试与评审投入,而不是只追求提交量或覆盖率数字。
院系课程边界¶
计算机学院的软件工程课程与软件学院的 SEC 系列不能仅凭名称互相替代。软件学院课程与软件质量专题 另行说明 SEC、软件测试以及跨院系收录的软件分析资源;其中软件分析的 PASCAL 公开课程也不能据目录位置推定为软件学院必修。
参考资料¶
- Roger S. Pressman、Bruce R. Maxim:《Software Engineering: A Practitioner's Approach》:通用软件工程参考。
- Refactoring.Guru:设计模式与重构的辅助材料,不构成课程指定答案或考核范围。
- 南京大学计算机学院课程体系:用于定位培养体系,具体开课信息仍查本人培养方案和教务系统。