《软件工程》课程教学大纲
(Soft Engineering)
课程编号:
学分:3
学时:48 (其中:讲课学时:42 实验学时:上机学时:6 )先修课程:C语言程序设计、数据结构与算法、计算机网络、数据库原理与应用、操作系统
后续课程:面向对象程序设计、信息工程监理、信息系统测评技术、软件工程实训
适用专业:计算机相关专业
开课部门:专业数学教研室
一、课程教学目的和课程性质
《软件工程》是信息与计算机科学专业本科学生的专业选修课,是一门综合性和实践性很强的课程。
本课程主要介绍如何把工程化的思想和技术应用于软件系统的开发过程,以及在软件开发过程中必须遵循的基本原理、方法和工程标准。
通过教学,使学生对软件生产工程化的具体思想、要求和方法均有较全面的了解, 为今后独立从事软件系统的开发打下相应的工程基础。
二、课程的主要内容及基本要求
第1单元软件工程学概述(3学时)
[知识点]
软件的发展过程、软件危机、软件工程及开发方法。
[重点]
软件工程的基本概念、软件工程学的基本内容和软件生命周期中各阶段的基本任务。
[难点]
软件过程模型
[基本要求]
1、识记:软件、软件危机、软件工程、软件工程方法学;
2、领会:软件工程过程模型的定义及其特点;
3、简单应用:软件危机的产生原因;
4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应
当采用的软件过程模型。
[考核要求]
1、软件工程的定义;
2、软件生命周期的定义及其各个开发阶段的任务;
3、软件工程方法学定义及经典软件过程模型。
第2单元可行性研究(5学时)
[知识点]
可行性研究的主要内容、任务及研究过程,系统流程图、数据流图、数据字典。
[重点]
系统流程图、数据流图的画法。
[难点]
可行性研究中的上层数据流图的构成方法。
[基本要求]
1、识记:可行性研究的主要内容、任务;
2、领会:如何画出所需的系统流程图;
3、简单应用:分析所需的数据字典并根据数据字典定义方法定义相关词条;
4、综合应用:在可行性研究过程中分析系统流程图,总结其数据字典,画出上层的数据流图。
[考核要求]
1、可行性研究的主要内容、任务;
2、数据流图的定义及画法,能够分析并画出可行性研究中的上层数据流图;
3、数据字典的组成及其符号定义方法。
第3单元需求分析(5学时)
[知识点]
需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、实体—联系图、状态转换图、其他图形工具、数据规范化。
[重点]
实体-联系图的概念及画法、状态转换图的定义及画法和常用图形工具的使用方法。
[难点]
常用图形工具的使用方法
[基本要求]
1、识记:需求分析的任务,数据规范化三范式特点;
2、领会:实体-联系图的概念以及画图方法;
3、简单应用:常用图形工具的安装及运行;
4、综合应用:采用常用图形工具画实体-联系图、状态转换图。
[考核要求]
1、需求分析的任务;
2、根据题意画出系统的实体-联系图;
3、根据题意画出系统的状态转换图。
第4单元总体设计(9学时)
[知识点]
总体设计的目标和任务、概要设计过程和原理、模块化方法和模块独立性原则、面向数据流的设计方法、数据设计及文件设计
[重点]
总体设计的任务、模块化方法和模块独立性原则、面向数据流的结构化设计方法
[难点]
模块独立性原则、面向数据流的设计方法。
[基本要求]
1、识记:总体设计的任务、概要设计的原理、模块独立性原则;
2、领会:模块化概念及模块化方法、模块独立性准则的内涵及如何使模块具备高独立性;
3、简单应用:分析系统数据处理问题类型,模块间耦合性和内聚型的类型及这些类型的模块独立性强弱排序;
4、综合应用:分析数据处理问题类型,根据相应问题类型的结构化设计方法导出模块结构图。
[实践与练习]
根据题意分析系统的上层数据流程图,归纳其数据字典,并根据结构化设计方法画出模块结构图,最后采用常用的图形工具画出其数据流程图和模块结构图。
[考核要求]
1、总体设计的任务及过程;
2、模块化的定义、分类及划分原则;
3、模块独立性的定义、原则,模块间连接方式的类型及其独立性的强弱;
4、数据处理问题的类型,结构化设计的工作步骤。
第5单元详细设计(10学时)
[知识点]
详细设计的任务及工具、结构化程序设计、程序设计风格、程序复杂性度量、程序效率。
[重点]
结构化程序设计、Ja ckson程序设计方法、McCabe度量法、Halstead的度量法、程序设计风格涉及内容。
[难点]
Ja ckson程序设计方法
[基本要求]
1、识记:详细设计阶段的任务,结构化程序设计的原则;
2、领会:程序设计风格涉及的内容对程序效率甚至整个软件开发的重要性;
3、简单应用:运用代码行度量法、McCabe度量法以及Halstead的度量法计算估计程序的出错率。
4、综合应用:运用Ja ckson程序设计方法设计程序。
[实践与练习]
1、运用Jackson程序设计方法设计程序,编译并调试程序;
2、运用常用的图形工具画出程序流程图、N-S图、PAD图。
[考核要求]
1、详细设计阶段的任务;
2、结构化程序设计的原则;
3、程序设计风格的内容;
4、代码行度量法、McCabe度量法以及Halstead的度量法;
5、Jackson程序设计方法;
6、详细设计的工具中程序流程图、N-S图、PAD图的特点、区别和画法。
第6单元软件测试(10学时)
[知识点]
软件测试的目的和原则、测用例设计、软件测试策略、软件测试种类、程序调试。
[重点]
软件测试的有关的基本概念和步骤,单元测试、集成测试和确认测试、系统测试的方法,白盒测试和黑盒测试技术,软件调试技术。
[难点]
白盒测试和黑盒测试技术。
[基本要求]
1、识记:软件测试的任务、白盒测试和黑盒测试的定义、软件测试的步骤;
2、领会:白盒测试和黑盒测试的区别与联系;
3、简单应用:运用软件调试技术调试程序;
4、综合应用:分别运用白盒测试和黑盒测试方法中具体的测试用例设计方法测试程序的结构和功能。
[实践与练习]
分别运用白盒测试和黑盒测试方法程序已有程序的结构和功能是否符合预定要求。
[考核要求]
1、软件测试的任务;
2、白盒测试和黑盒测试的定义及其测试用例设计的经典方法;
3、软件测试策略的各个步骤及其各步的主要任务;
4、程序调试的定义、步骤及方法。
第7单元软件维护(4学时)
[知识点]
软件维护的概念、软件维护过程、软件可维护性、提高软件维护性策略。
[重点]
软件维护的定义及影响维护工作量的因素、软件维护的过程、软件可维护性的定义及度量。
[难点]
软件可维护性的定义及度量。
[基本要求]
1、识记:软件维护的定义、衡量软件可维护性的特性;
2、领会:如何提高软件可维护性的方法;
3、简单应用:识别属于软件维护类型中的哪一种;
4、综合应用:运用提高软件可维护性方法改善软件开发。
[考核要求]
1、软件维护的定义及维护的类型;
2、衡量软件可维护性的特性;
3、提高软件维护性策略。
第8单元软件项目管理(2学时)
[知识点]
人员组织和能力成熟度模型,软件规模和工作量的估算方法,进度计划和质量保证技术。
[重点]
软件规模和工作量的估算方法,能力成熟度模型。
[难点]
软件规模和工作量的估算方法。
[基本要求]
1、识记:能力能力成熟度模型的定义、分级及其各个级别特征要求;
2、领会:人员组织,软件项目的管理过程;
3、简单应用:软件规模和工作量的估算方法;
4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应当采用的软件过程模型。
[考核要求]
1、项目管理的对象及过程;
2、能力能力成熟度模型的定义、分级。
二、学时分配
四、教学方法与手段
运用多媒体教学手段,理论与实例相结合的手段进行教学。
五、考核模式与成绩评定办法
采取试卷考试和上机实验相结合,成绩评定为百分制,由3部分组成:平时成绩占10%、上机实验20%,期末考试70%。
六、选用教材和主要参考书
1.选用教材:
《软件工程导论》(第四版),张海藩;清华出版社,2003年12月
2.推荐参考书:
《软件工程方法与实践》,李芷;电子工业出版社,2004年
《实用软件工程》(第二版),郑人杰;清华大学出版社,1997年
《软件工程导论学习辅导》,张海藩.清华大学出版社,2003年
《软件工程学试验》,周苏;科学出版社,2005
七、大纲说明
本门课程采用多媒体与板书相结合的授课方式。
该课程是计算机类专业的一门专业选修课,在教学中提倡特色教学,应精选内容,打好基础,加强实践,培养学生的软件工程规划设计能力。
教学中注意结合教学内容适量安排习题课,要求学生及时、独立完成,以达到巩固所学内容之目的。
本课程包含课程设计部分,具体授课内容见“软件工程-课程设计教学大纲”。
撰写人:马娟审定人:
批准人:执行时间:。