软件工程导论
(Introduction to Software Engineering)
课程代码:06410034
学分:2
学时:32    (其中:课堂教学学时:32  实验学时: 0  上机学时: 0  课程实践学时: 0  )
先修课程:无
适用专业:软件工程
教材:《软件工程导论》,张海藩,清华大学出版社,2013年8月第6版
一、课程性质与课程目标
(一)课程性质(需说明课程对人才培养方面的贡献)
《软件工程导论》是软件工程专业学生的一门专业基础必修课程,在软件工程学科人才培养体系中占有
重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件开发、维护和管理的科学。
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等。学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学习软件工程专业的后续课程和参加大型软件开发项目打下坚实的理论基础。
(二)课程目标(根据课程特点和对毕业要求的贡献,确定课程目标。应包括知识目标和能力目标。)
1. 了解软件工程理论体系的历史背景、目前主流的开发方法和技术发展趋势;
2. 了解软件的生命周期,树立必须用工程化的方法指导软件开发和维护的观念;
3. 掌握软件生命周期各阶段的文档规范,并了解阐述各阶段成果的常用工具;
4. 了解常见软件开发模型的优缺点及其适用场景;
5. 理解需求分析在软件工程中的作用,并了解需求获取和建模的方法;
6. 理解从多个维度建立系统模型的原理,并了解系统模型描述的常用方法和工具;
7. 了解UML在面向对象设计中的作用;
8. 了解软件设计的两个阶段(概要设计、详细设计)的任务、工具和描述方法;
9. 掌握编写代码过程中必须遵循的一般性规范;
10. 了解软件测试的阶段性及其采用的测试方法;
11. 理解软件维护的意义和作用,并了解再工程的概念;
12. 了解软件项目管理的常用方法和工具;
13. 了解软件工程专业的课程体系;
14. 了解软件工程专业的人才需求和成长路径。
注:工程类专业通识课程的课程目标应覆盖相应的工程教育认证毕业要求通用标准;
(三)课程目标与专业毕业要求指标点的对应关系(认证专业专业必修课程填写)本课程支撑专业培养计划中毕业要求指标点1-3、2-2、2-5、5-4、7-2、8-3、10-1、11-3
1. 毕业要求1-3:能够应用工程原理和专业知识分析工程问题的解决途径并进行改进
2. 毕业要求2-2:能够认识到解决的复杂问题有多种方案可以选择
3. 毕业要求2-5:能够应用数学、自然科学和工程科学的基本原理证实解决方案的合理
4. 毕业要求5-4:能够采用恰当的方法和工具对软件进行测试和验证,并能够给出应用
和维护方案
5. 毕业要求7-2:能够了解行业标准、规范和技术发展趋势
6. 毕业要求8-3:能够具备软件工程师的专业素质和职业道德和规范,履行责任
7. 毕业要求10-1:能够运用恰当工具阐述工作成果,与业界同行和社会公众进行有效沟
通与交流
8. 毕业要求11-3:能够选择恰当的软件项目管理工具、工程模型并进行实践
课程目标课程
目标
1
课程
目标
2
课程
目标
3
课程
目标
4
课程
目标
5
课程
目标
6
课程
目标
7
课程
目标
8
课程
目标
9
课程
目标
10
课程
目标
11
课程
目标
12
课程
目标
13
课程
目标
14
毕业
要求
指标
毕业
✓✓✓
要求
1-3
毕业
✓✓✓
要求
2-2
毕业
要求
2-5
毕业
✓✓要求
5-4
毕业
✓✓✓
要求
7-2
毕业
✓✓✓✓要求
8-3
毕业
软件工程学什么✓✓✓✓
要求
10-1
毕业
✓✓要求
11-3
注:课程目标与毕业要求指标点对接的单元格中可输入“✓”,也可标注“H、M、L”。二、课程内容与教学要求
第一章软件工程概述
(一)课程内容
(1)软件的本质;
(2)软件危机与软件工程;
(3)软件生命周期;
(4)软件过程概念。
(二)教学要求
(1)了解本课程的性质、研究对象与方法、任务;(2)了解软件危机的起源、特征和消除方法;
(3)掌握软件生命周期的阶段性和各阶段的主要任务;(4)了解软件开发的过程与常用范式。
(三)重点与难点
1. 重点
(1)软件危机的起源、特征和消除方法;
(2)生命周期的阶段性和各阶段的主要任务。
2. 难点
(1)理解软件生命周期各阶段任务的跨度
第二章过程模型
(一)课程内容
(1)通用过程模型;
(2)过程评估和改进;
(3)传统过程模型;
(4)专用过程模型;
(5)统一过程。
(二)教学要求
(1)理解过程模型的概念和作用;
(2)了解几类传统过程模型的优缺点和适用场景;(3)了解几类专用过程模型的思想;
(4)了解统一过程的阶段划分和任务。
(三)重点与难点
1. 重点
(1)过程模型的概念和作用;
(2)各类过程模型的特点和适用场景;
2. 难点
(1)几类专用过程模型的设计思想。
第三章敏捷软件开发
(一)课程内容
(1)敏捷方法;
(2)计划驱动开发和敏捷开发;
(3)极限编程;
(4)敏捷项目管理;
(5)可扩展的敏捷方法。
(二)教学要求
(1)了解敏捷开发的过程特点和适用场景;(2)掌握极限编程的思想和实施方法
(3)了解敏捷项目管理的实施方法;
(4)了解敏捷方法的扩展策略。
(三)重点与难点
1. 重点
(1)敏捷编程的技术特点;
(2)极限编程的适用场景;
2. 难点
(1)极限编程的实施方法。
第四章需求工程
(一)课程内容
(1)需求分析的任务;
(2)收集需求;
(3)建立需求模型;
(4)掌握需求分析文档撰写的一般规范;(5)需求管理。
(二)教学要求