跳转至

课程概述

版权声明

本项目为 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 分

具体分数构成
  • 课堂签到、技术分享等 3 分
  • 报名参加清华软件创新创意大赛 1分
  • 提交比赛作品以及参加答辩 1分
  • 单元测试技术
  • Docker部署
  • UML综合建模练习
  • 项目迭代检查
  • 项目最终交付
  • 团队开发管理
  • 个人贡献评价

小作业

单元测试

Docker部署

UML建模

大作业项目

选题一:健康/安全管理智能助手

选题二:多模态大模型能力众测平台

选题三:学生自选题

课堂参与

迟交处理

参考资料

  1. 软件工程与代码设计
  2. 编程语言与技术
  3. 个人发展与职业技能

最后更新: 2024年10月3日
作者: lindalinliu