一、课程名称
1、中文名称:软件工程
2、英文名称:Software Engineering
二、学时
总学时54学时,其中讲授54学时
三、开课学期
第6学期
四、课程考核要求
考试(期终考试成绩中卷面成绩占70%,平时成绩占30%)
五、课程概述
《软件工程》作为计算机科学与技术专业的一门重要的专业必修课,通过本课程学习,学生应掌握软件工程的基本概念、原理和方法,从软件开发技术、软件工程管理和软件工程环境等几个方面了解如何将系统的、规范化的和可以度量的工程方法运用于软件开发和维护中。
六、适用专业
计算机科学与技术专业(物联网工程方向)
七、课程教学要求和学时分配
第l章 软件工程概述
(一)课程内容
1、软件危机(软件危机产生原因,概念,消除软件危机的途径)
2、软件工程(软件工程的概念,软件工程的基本原理)
3、软件生命周期(各个阶段简要介绍)
4、软件生命周期模型
(二)基本要求
了解软件危机产生的原因,掌握软件危机和软件工程的概念,理解软件工程的基本原理和软件开发方法,理解并掌握软件生命周期及常用的软件生命周期模型。
(三)重点难点
重点是软件危机、软件工程的概念,软件生命周期。难点是软件生命周期模型。
(四)建议学时 4学时
第2章 可行性研究
(一)课程内容
1、可行性研究任务和步骤
2、系统流程图
3、数据流图
4、数据字典
5、成本/效益分析
(二)基本要求
理解可行性研究的必要性,掌握可行性研究的任务、过程、成本/效益分析以及可行性研究报告的主要内容,熟练掌握系统流程图的作用、符号及其画法,掌握数据字典的组成、用途和实现,熟练掌握数据流图的作用、符号及其画法。
(三)重点难点
重点是可行性研究的任务和步骤、系统流程图、数据流图、数据字典。难点是数据流图。
(四)建议学时 6学时
第3章 需求分析
(一)课程内容
1、需求分析的任务和过程
2、数据流图的使用
3、建模技术及相关图形工具的使用
4、验证软件需求的方法
(二)基本要求
掌握需求分析的任务、需求获取的方法、分析建模与需求规格说明,掌握数据建模的实体联系图、数据规范化,掌握描述系统行为模型的状态转换图,掌握层次方框图、Warnier图、IPO(HIPO)图,理解验证软件需求的必要性,掌握验证软件需求的方法。
(三)重点难点
重点是需求分析的任务,状态图、E-R图等建模工具。难点是分析建模相关图形工具。
(四)建议学时10学时
第4章 形式化说明技术(选讲)
(一)课程内容
1、形式化说明技术概述(概念,分类)
2、有穷状态机
3、Petri网
4、Z语言
(二)基本要求
掌握形式化方法的概念、优点,理解应用形式化方法的准则,了解有穷状态机、Petri网、Z语言的概念和使用。
(三)重点难点
重点是形式化方法的概念。难点是Petri网,Z语言。
(四)建议学时 2学时
第5章 总体设计
(一)课程内容
1、设计过程
2、设计原则
3、启发规则
4、描绘软件结构的图形工具
5、面向数据流的设计方法
(二)基本要求
了解总体设计的目的、任务;掌握总体设计的过程、设计原理和启发规则;掌握描述软件结构的图形工具;掌握面向数据流的设计方法能够将具体的数据流图的转换为软件的结构图,即变换分析技术和事务分析技术。
(三)重点难点
重点是总体设计的原理,面向数据流的设计方法。难点是变换分析技术和事务分析技术。
(四)建议学时 10学时
第6章 详细设计
(一)课程内容
1、结构化程序设计
2、人机界面设计
3、过程设计的工具
4、面向数据结构的设计方法
5、程序复杂程度的定量度量
(二)基本要求
了解软件详细设计阶段的目的、任务和结构化程序设计的概念,掌握人机界面设计的方法,掌握过程设计的相关工具以及面向数据结构的设计方法,了解程序复杂程度的定量度量。
(三)重点难点
重点是过程设计的相关工具。难点是面向数据结构的设计方法。
(四)建议学时 10学时
第7章 实现
(一)课程内容
1、编码
2、软件测试基础知识
3、单元测试
4、集成测试
5、确认测试
6、软件测试技术(白盒测试技术、黑盒测试技术)
7、调试
8、软件可靠性
(二)基本要求
了解如何选择程序设计语言,培养良好的编码风格;掌握软件测试的目标、准则、方法和步骤,掌握单元测试、集成测试、确认测试的方法步骤,掌握白盒测试和黑盒测试技术的概念、方法,能够按照测试的原则和技术分析确定高效的测试用例,掌握调试过程与途径,了解软件可靠性的概念及其计算方法。
(三)重点难点
重点是软件测试概念、步骤和技术,难点是软件测试技术。
(四)建议学时 6学时
第8章 软件维护(选讲)
(一)课程内容
1、软件维护的定义
2、软件维护的特点
3、软件维护过程
4、软件的可维护性
5、预防性维护
6、软件再工程过程
(二)基本要求
掌握软件维护的定义、特点和过程,掌握软件的可维护性的定义及提高可维护性的方法,掌握预防性维护和软件再工程过程的概念、方法。
(三)重点难点
重点是软件维护的概念和过程。
(四)建议学时 2学时
第9章 面向对象方法学(选讲)
(一)课程内容
1、面向对象概述
2、使用面向对象方法的开发过程
3、UML基础
4、面向对象的需求提取
5、面向对象分析
6、面向对象设计
7、面向对象实现
(二)基本要求
掌握面向对象相关概念、面向对象建模技术,根据具体问题能建立对象模型、动态模型、功能模型以及确定对象的服务,掌握软件重用的概念和方法,掌握系统分解的方法,理解并掌握良好的程序设计的风格,掌握测试策略及测试用例的设计。
(三)重点难点
重点是对象模型、动态模型、功能模型,系统分解的方法测试策略。难点是UML图形的功能及绘制。
(四)建议学时2学时
第10章 软件项目管理(选讲)
(一)课程内容
1、估算软件规模
2、工作量估算
3、进度计划
4、人员组织
5、质量保证
6、软件配置管理
7、能力成熟度模型
(二)基本要求
掌握估算软件规模和工作量的技术,能够根据项目制定合理的进度计划,掌握团队组织的基本方法,了解软件的质量指标并掌握软件质量保证的措施,掌握软件配置管理,了解能力成熟度模型。
(三)重点难点
重点是软件规模和工作量估计。难点是进度计划。
(四)建议学时 2学时
八、教材主要参考资料
1、《软件工程导论》,张海藩,清华大学出版社
2、《实用软件工程(第二版)》,郑人杰等,清华大学出版社
3、《软件工程-理论与实践(影印版)》,Pfleeger.S.L.,高等教育出版社