1
《软件工程基础》课程教学大纲
课程代码:
课程名称:软件工程基础/Software Engineering Basics
开课学期:
学分/学时:理论3/48+实验1/16
课程类型:必修
适用专业/开课对象:
先修课程: 计算机导论、数据结构、面向对象程序设计、数据库原理等
开课单位:
团队负责人: 责任教授:
执笔人: 核准院长:
一、课程的性质、目的与任务
《软件工程基础》是计算机/软件工程专业的一门工程性基础课程,在软件
工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的
重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学
是用以指导软件人员进行软件的开发、维护和管理的科学。 《软件工程基础》
已成为高等学校计算机软件教学体系中的一门核心课程,
本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯
穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过
程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳
实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、
软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程
的方法、技术和工具。
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开
发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准
和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件
开发活动,为学生参加大型软件开发项目打下坚实的理论基础。
2
本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件
工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的
能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要
求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管
理能力有重要的现实意义。
二、教学内容及教学基本要求
1. 软件与软件工程(2学时)
通过本章的学习,了解软件的概念、特点及分类;了解软件危机的表现与
产生原因;掌握软件工程的概念,以及软件工程的目标和原则;了解软件开发
的方法;了解常用的软件工程工具;了解软件工程人员的职业道德;了解“小型
二手货交易平台”案例。
2. 软件过程(2学时)
通过本章学习,掌握软件过程的定义和基本活动;熟悉软件生命周期的概
念及传统软件生命周期的各个阶段;熟悉常用的几种软件过程模型。
3. 敏捷软件开发(2学时)
通过本章学习,理解敏捷方法和敏捷软件开发宣言;理解重要的敏捷软件
开发相关内容,例如Sprint、用户故事、Backlog;理解面向敏捷软件开发的方
法——Scrum、看板、极限编程;理解敏捷软件开发和DevOps的理念相似,而
CI/CD是实现这两者理念的一种方法。
4. 软件可行性研究与项目开发计划(2学时)
通过本章学习,了解可行性研究的任务;掌握可行性研究的步骤;了解项
目开发计划的内容。
5. 结构化分析(4学时)
通过本章的学习,了解需求分析的任务;掌握需求分析的原则;熟悉进行
需求分析的步骤;了解需求管理;熟悉需求分析的常用方法;掌握结构化分析
的方法;掌握结构化分析的几种图形工具。
6. 结构化设计(4学时)
通过本章的学习,了解软件设计的意义和目标;掌握软件设计的原则;了
解软件设计的分类;了解结构化设计与结构化分析的关系;熟悉数据库设计;
3
掌握面向数据流的设计方法;熟悉面向数据结构的设计方法;熟悉接口设计和
数据设计;掌握过程设计的工具和方法。
7. 面向对象方法与统一建模语言 (6学时)
通过本章的学习,掌握面向对象的基本概念;理解面向对象的软件工程方
法的特征与优势;掌握面向对象方法的实施步骤;了解UML;熟悉UML的10种
图形。
8. 面向对象分析(6学时)
通过本章的学习,理解面向对象分析的过程和原则;掌握面向对象建模的
对象模型、动态模型和功能模型内容。
9. 面向对象设计(6学时)
通过本章的学习,了解面向对象设计与结构化设计的不同;理解面向对象
设计与面向对象分析的关系;理解面向对象设计的过程、原则和启发规则;熟
悉面向对象的系统分解方法;熟悉面向对象目标系统中问题域、人机交互、任
务管理和数据管理各子系统的设计方法;了解对象设计的方法。
10. 软件实现(4学时)
通过本章的学习,了解编程语言的发展与分类;了解选择编程语言需考虑
的因素;掌握良好的编程风格; 熟悉如何进行面向对象实现;掌握如何进行代
码重用;掌握如何分析和评价代码质量。
11. 软件测试(6学时)
通过本章的学习,掌握软件测试的原则;了解软件测试的常用模型;了解
软件测试的分类;了解测试用例和软件测试方法;掌握黑盒测试的等价类划分
法,并熟悉其他方法;掌握白盒测试的逻辑覆盖法,并熟悉其他方法;掌握软
件测试的一般步骤,以及每个阶段性测试的关注点;了解回归测试和面向对象
测试;了解自动化测试;熟悉软件调试。
12. 软件维护与软件工程管理(4学时)
通过本章的学习, 熟悉软件维护的基本概念;了解软件估算的概念、
方法、原则与技巧;掌握制订软件开发进度计划的方法;了解软件开发人员组
织的形式;了解软件开发风险管理的概念;了解软件质量保证的措施;了解软
件配置管理的相关概念;熟悉软件工程标准与软件文档的概念;熟悉软件过程
4
能力成熟度模型;了解软件项目管理的相关内容;了解软件重用的概念。。
13. 实验(16学时)
教学说明及教学基本要求见《软件工程基础》实验教学大纲。
三、教学方法
本课程教学方法以教师为主导的启发式讲授教学法为主,讨论(提问)式
教学为辅,结合课外学习的教学方法。实验以学生动手实验为主,教师的启发
式讲授教学法为辅,并结合讨论(提问)式教学,以及结合课外学习的教学方
法。
1.本课程概念较多,因此教学形式以讲授方式为主。本课程拟采用多媒体PPT
的教学方法,增加课堂信息,浅显通俗地对概念、定义和原理进行解释,增加
教学的直观性,教学过程中注意各个知识点的关联性,以使学生更好地理解课
程内容。
2.对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。
3.为加强和落实动手能力的培养,每章课后应安排作业,帮助学生学习和应
用。
四、课内外教学环节及基本要求
本课程共 48 个学时,其中理论 32 个学时,讲授 16 周(每周 2 学时);实
验 16 个学时,讲授 8 周(每周 2 学时)。
课外学习要求:
1.做好课前预习,预习时以教材为主,了解相关的概念、定义、原理。预习中
认真思考,以便带着问题主动地听课。
2.课后要复习,有余力的学生复习时还应阅读参考资料,认真整理课堂听课笔
记。
3.要求学生课外自主学习,学生课外阅读的参考资料以本大纲所列参考资料为
主。
五、考核内容及方式
本课程成绩由平时成绩和期末考核成绩组合而成,课程成绩以百分制计算,
分配比例如下:
1.平时成绩占40%,主要考查作业的完成程度,理论课和实验课的出勤
5
率,实验课的考试结果。其中实验占20%,课外作业20%。
2.期末成绩占60%,采用考试的考核方式。考试采用闭卷形式,题型为选
择题、正确/错误题、填空题、简答题,以及应用题。
六、持续改进
本课程根据学生作业、课堂讨论、平时考核情况和学生、教学督导等反
馈,及时对教学中不足之处进行改进,并在下一轮课程教学中改进。
七、建议教材及参考资料
建议教材:
[1] 吕云翔. 软件工程基础与应用(微课版)[M]. 北京:人民邮电出版社,
2026
参考资料:
[1] 吕云翔,黎可为,张中基. 软件工程项目化教程[M]. 北京:清华大学出版
社,2023
[2] 吕云翔,赵天宇. UML与Rose建模实用教程(第2版 附微课视频)[M]. 北
京:人民邮电出版社,2024
6
《软件工程基础》课程实验教学大纲
教学内容及教学基本要求
1. 用例图和甘特图的绘制 (2学时)
(1) 了解用例图和甘特图的概念和作用;掌握使用UML设计工具EA、项目计
划管理工具Project的使用。
(2)实验指导。
2. GIT的使用 (2学时)
(1)了解分布式版本控制系统的概念;掌握GIT的操作方法和在实际项目中的
使用流程。
(2)实验指导。
3. 前端开发工具的使用 (2学时)
(1)了解前端开发的基础知识,包括HTML、CSS、JavaScript语言;掌握常用
的前端开发框架如的基本使用;能够自行设计出具有基本功能的前端页
面。
(2)实验指导。
4. 后端开发工具的使用 (2学时)
(1)了解前后端分离模式中后端所起的作用;了解后端与数据库的紧密联系;
掌握常用的后端开发框架如Django或SpringBoot的基本使用。
(2)实验指导。
5. UML图的绘制 (2学时)
(1)了解使用EA工具绘制软件设计过程中的UML图,包括类图、活动图、包
图、对象图、顺序图、状态图。
(2)实验指导。
7
6. 数据库模型设计工具的使用 (2学时)
(1)了解数据库模型的概念,可以区分概念数据模型、逻辑数据模型和物理数
据模型;掌握通过PowerDesigner工具进行数据库的模型设计。
(2)实验指导。
7. 软件测试工具的使用 (2学时)
(1)了解软件测试的基本过程;掌握单元测试工具Pytest和Junit。
(2)实验指导。
8. 上机考试和实验验收 (2学时)
(1)上机考试
(2)实验验收。