课程概述
版权声明
本项目为 2023-2024 年秋季学期清华大学软件学院开设的《软件工程》课程的文档。
所有内容(包括文档等)未经作者授权,禁止用作任何其他用途,包括且不限于在其他课程或者其他学校中使用。
如需使用授权,可通过 linliu@tsinghua.edu.cn 联系作者。作者保留一切追究侵权责任的权利。
基本信息
课程名:软件工程
课程号:30240522-3
学期:2024—2025 学年度秋季学期
主讲教师:刘璘
研究生助教团队:黄舒炜、卢展、齐仕杰、张有容、苌晨阳、许德成、张雨恬等
本科生助教团队:张之远、马喆轩
课程介绍:本课程结合现代软件工程的最新发展,以敏捷软件开发方法为核心,从基于互联网的软件开发实践角度设计和构建整个课程体系。整个课程体系通过研究学生对课程学习的认知规律以及开发能力的逐步提升方式,突破原有的以开发生命周期安排教学单元的形式,从个人编程实践、团队开发过程、软件工程技术等方面循序渐进地展开。其中,个人编程实践部分培养学生编写规范代码、模块化设计和单元测试的能力;团队开发过程部分将学生的开发视角从程序层次提升到系统层次,并具备一定的团队协作开发能力;软件工程技术部分涉及从初始的需求导出到设计、开发和测试等整个开发生命周期,培养学生掌握需求开发、体系结构设计、交互设计、软件测试和软件维护等方面的软件工程技术。
课程大纲
软件工程概述
软件
软件工程
软件工程师职业道德
软件自动化新进展
单元测试与容器部署
软件测试概述
黑盒测试
白盒测试
代码性能分析
需求获取与原型化
需求
需求获取技术
原型设计
企业产品设计实践分享
交互式编程实践
良好的编程实践
ChatGPT 能力测试 (学长分享)
Copilot X 实践经验 (学长分享)
软件开发管理
敏捷开发
团队管理
软件研发效能评估
软件架构设计及框架
软件架构演进
MVC,MVVM
微服务架构
企业实践分享
软件系统建模
UML
SysML
MBSE
数据建模与数据库
ER图
类图
DBMS
设计模式
GOF
HeadFirst Design Patterns
Pattern Language
功能测试
软件测试类型
软件测试过程
系统功能测试
探索式测试
非功能测试
性能测试
可用性测试
性能测试工具
系统部署发布与持续运维
软件部署与交付
持续集成与交付
课程项目验收
教学日历
周次
日期
内容
周次
日期
内容
1
9.12
软件工程概述
9
11.7
框架与设计模式
2
9.19
单元测试 & Docker部署
10
11.14
软件系统建模
3
9.26
需求获取与原型化
11
11.21
数据建模与数据库
4
10.3
放假
12
11.28
系统功能测试
5
10.10
软件开发管理
13
12.5
非功能测试
6
10.17
交互设计与原型
14
12.12
系统部署与发布
7
10.24
项目中期进展汇报
15
12.19
课程总结
8
10.31
软件架构设计
16
12.26
项目交付展示汇报
作业与评分
本课程的分数构成为:平时表现 10 分 + 单元练习 30 分 + 团队项目 60 分 = 100 分
具体分数构成
平时表现 10 分单元练习 30 分团队项目 60 分
课堂签到、技术分享等 3 分
报名参加清华软件创新创意大赛 1分
提交比赛作品以及参加答辩 1分
单元测试技术
Docker部署
UML综合建模练习
项目迭代检查
项目最终交付
团队开发管理
个人贡献评价
小作业
单元测试
Docker部署
UML建模
大作业项目
选题一:健康/安全管理智能助手
选题二:多模态大模型能力众测平台
选题三:学生自选题
课堂参与
迟交处理
参考资料
软件工程与代码设计
Software Engineering at Google
《重构:改善既有代码的设计(第2版)》
《设计模式:可复用面向对象软件的基础》
《Head First设计模式(中文版)》
邹欣 - 构建之法:现代软件工程 (2017, 人民邮电出版社)
编程语言与技术
《JavaScript权威指南 (英文第七版)》
《MySQL8 Cookbook》
《NGINX Cookbook(2022)》
《Pro Git》
个人发展与职业技能
《高效能程序员的修炼》
《软技能:代码之外的生存指南》
最后更新:
2024年10月3日
作者: lindalinliu