课程概述
版权声明
本项目为 2023-2024 年秋季学期清华大学软件学院开设的《软件工程》课程的文档。 所有内容(包括文档等)未经作者授权,禁止用作任何其他用途,包括且不限于在其他课程或者其他学校中使用。
如需使用授权,可通过 linliu@tsinghua.edu.cn 联系作者。作者保留一切追究侵权责任的权利。
基本信息
- 课程名:软件工程
- 课程号:30240522-3
- 学期:2023—2024 学年度秋季学期
- 主讲教师:刘璘
- 研究生助教团队:黄舒炜、卢展、齐仕杰
- 本科生助教团队:张雨恬、谭弈凡、潘乐怡
- 课程介绍:本课程结合现代软件工程的最新发展,以敏捷软件开发方法为核心,从基于互联网的软件开发实践角度设计和构建整个课程体系。整个课程体系通过研究学生对课程学习的认知规律以及开发能力的逐步提升方式,突破原有的以开发生命周期安排教学单元的形式,从个人编程实践、团队开发过程、软件工程技术等方面循序渐进地展开。其中,个人编程实践部分培养学生编写规范代码、模块化设计和单元测试的能力;团队开发过程部分将学生的开发视角从程序层次提升到系统层次,并具备一定的团队协作开发能力;软件工程技术部分涉及从初始的需求导出到设计、开发和测试等整个开发生命周期,培养学生掌握需求开发、体系结构设计、交互设计、软件测试和软件维护等方面的软件工程技术。
课程大纲
-
软件工程概述
- 软件本质
- 软件工程
- 软件工程师职业道德
- 软件自动化新进展
-
单元测试与容器部署
- 软件测试
- 黑盒测试
- 白盒测试
- 代码性能分析
-
需求获取与原型化
- 需求定义
- 需求获取
- 原型设计
- 企业产品设计实践分享
-
交互式编程实践
- 良好的编程实践
- ChatGPT 能力测试 (学长分享与讨论)
- Copilot X 实践经验 (学长分享与讨论)
-
软件开发管理
- 敏捷开发
- 团队管理
- 软件研发效能评估
-
软件架构设计及框架
- 软件架构演进
- MVC,MVVM
- 微服务架构
- 企业实践分享
-
软件系统建模
- UML
- SysML
- MBSE
-
数据建模与数据库
- ER图
- 类图
- DBMS
-
OO设计模式
- 面向对象
- HeadFirst Design Patterns
- Pattern Language
-
功能测试
- 软件测试类型
- 软件测试过程
- 系统功能测试
- 探索式测试
-
非功能测试
- 性能测试
- 可用性测试
- 性能测试工具
-
系统部署与发布
- 软件部署与交付
- 持续集成与交付
- 课程项目验收
教学日历
周次 | 日期 | 内容 | 周次 | 日期 | 内容 |
---|---|---|---|---|---|
1 | 9.21 | 软件工程概述 | 9 | 11.16 | 软件系统构建 |
2 | 9.28 | 单元测试 & Docker部署 | 10 | 11.23 | 软件数据建模及数据库 |
3 | 10.5 | 放假 | 11 | 11.30 | 软件设计模式 |
4 | 10.12 | 需求获取与原型化 | 12 | 12.7 | 系统功能测试 |
5 | 10.19 | 交互式编程实践 | 13 | 12.14 | 非功能测试 |
6 | 10.26 | 软件开发管理 | 14 | 12.21 | 系统部署与发布 |
7 | 11.2 | 软件项目架构设计及框架 | 15 | 12.28 | 项目展示汇报 |
8 | 11.9 | 项目中期进展汇报 | 16 | 1.4 | 项目交付 |
作业与评分
本课程的分数构成为:平时表现 5 分 + 基础知识 10 分 + 个人作业 30 分 + 团队项目 55 分 = 100 分
具体分数构成
- 课堂签到、技术分享等 3 分
- 报名参加清华软件创新创意大赛 1 分
- 提交比赛作品以及参加答辩 1 分
- 基础知识小测,覆盖各单元知识点 10 分
- 测试及应用部署 20 分
- UML综合建模练习 10 分
- 软件设计与代码实现 20 分
- 系统功能与界面设计 20 分
- 产品测试 20 分
- 基础要求:性能测试和功能测试
- 提高要求:单元测试、测试覆盖率分析、自动化测试配置等
- 系统部署(含正确配置和使用容器技术) 10 分
- 团队协作与管理(含阶段检查) 10 分
- 代码管理与 Git 使用 10 分
- 交付文档(含中期、项目答辩) 10 分
小作业
测试及应用部署
UML建模
大作业项目
选题一:健康安全智能助手
选题二:开放大模型能力众测平台
选题三:自选题:发挥小组创意,说明项目意义
课堂参与:为鼓励学生的课堂参与,可能会安排课堂小测
迟交处理:逾期提交将使用 0.90 的惩罚系数计算成绩(限一周内)
\[\text{成绩} = \text{原始成绩} \times 0.9^{\text{逾期天数}}\]
参考资料
- 软件工程与代码设计
- 编程语言与技术
- 个人发展与职业技能
最后更新:
2023年12月29日
获取最新的内容
为了避免页面使用缓存
Windows 用户可以使用 Ctrl + Shift + R
Mac 用户可以使用 Command + Shift + R 来强制刷新页面,以获取最新的内容