《软件工程》教学大纲
编写人:(朱雅莉)
审核人:(两人以上)
一、本大纲适用专业
本大纲适用于计算机科学与技术本科专业。
二、编写本教学大纲的说明
(一)课程类别与教学任务
本课程是计算机科学与技术专业课程,通过本课程的学习,使学生初步建立工程化意识,学会用工程化思想(包括技术、方法与环境)开发各种软件,以软件生存周期作为主线,掌握软件工程的基本理论,进一步系统化、工程化,为今后实际工程中能够进行系统分析与设计奠定良好的基础。
(二)本课程的基本要求
1.熟练掌握软件与软件工程的基本概念和基本知识。
2.熟练掌握软件生存周期与软件过程模型。
3.掌握结构化分析、设计、实现的主要思想和方法。
4.掌握面向对象分析、设计、实现的主要思想和方法。
5.掌握有关软件的评审、测试与维护,项目计划与项目管理方法。
6.能用软件工程的方法参与软件项目的分析、设计、实现和维护。
(三)本课程的重点和难点
1.软件危机的产生、表现、原因;软件、软件工程的定义;
2.软件生存周期的概念;软件过程模型;瀑布模型、原型模型、增量模型、螺旋模型、变换模型、喷泉模型、智能模型、第四代技术;
3.结构化分析方法;可行性研究的任务及步骤,需求分析的任务和过程;系统流程图、数据流图的画法及数据字典的编写;E-R图、STD图的画法;
4.结构化设计方法;模块结构图的画法;总体设计的任务和过程;详细设计的任务和工具;程序流程图、盒图、PAD图、判定表、判定树、PDL的简单应用;Jackson方法的应用;人机界面设计的原则;
5.结构化实现方法;领会编码风格;白盒测试和黑盒测试;单元测试、集成测试、确认测试、系统测试;自顶向下及自底向上结合模块的步骤;渐增式及非渐增式测试的区别;归纳法与演绎法调试策略;测试用例的设计;可维护性的定义、可维护性的度量及提高可维护性的方法;领会改正性维护、适应性维护、完善性维护、预防性维护;
6.面向对象方法的基本思想、基本概念、基本模型;面向对象分析的任务、模型、步骤、过程;
7.面向对象设计的任务、准则、主要技术;
8.面向对象编码和测试技术;
9.统一建模语言UML的画法与应用;
10.软件项目管理的重要性和内容;软件项目计划;软件度量的方法;软件开发成本估算、Putnam模型、COCOMO模型;软件项目进度安排、甘特图、时标网状图、PERT技术和CPM方法;
11.软件风险管理、质量保证、配置管理中的基本概念和方法;软件工程标准化思想;软件文档的编写;软件开发环境与工具的了解。
(四)本课程与其他相关课程的联系和后续课程
先修课程:《程序设计语言》、《数据结构》
(五)学时、学时分配安排
本课程理论课时为48课时,课外通过开放式机房提供相应的实践课时;具体学时安排见教学内容。
(六)本课程的教学方式及其它教学环节的安排
本课程采用通常的课堂教学方式,并注重理论与实践相结合的方法,即以教师的课堂教授为主,同时辅以学生课外实践,培养与提高学生对本学科的兴趣和研究能力。
三、教学基本内容和学时分配
第1章 软件工程概述(2课时)
1.软件
2.软件危机
3.软件工程
第2章 软件过程(4课时)
1.软件过程
2.软件生存周期
3.软件过程模型
4.软件过程改进
第3章 结构化分析(6课时)
1.结构化分析概述
2.可行性研究
3.需求分析
4.结构化分析方法
第4章 结构化设计(6课时)
1.结构化设计概述
2.总体设计
3.详细设计
4.人机界面设计
第5章 结构化实现(6课时)
1.编码
2.测试
3.软件调试
4.软件维护
第6章 面向对象方法学(6课时)
1.面向对象方法概述
2.面向对象开发过程
3.面向对象建模
4.统一建模语言UML
第7章 面向对象分析(6课时)
1.面向对象分析概述
2.面向对象分析过程
第8章 面向对象设计(3课时)
1.面向对象设计概述
2.系统设计
3.类设计
第9章 面向对象实现(3课时)
1.面向对象编程
2.面向对象测试
3.面向对象维护
第10章 软件项目管理和计划(2课时)
1.软件工程管理概述
2.软件度量
3.软件项目估算与开发成本估算
4.进度计划
第11章 风险分析与管理(1课时)
1.软件风险分类
2.风险识别
3.风险预测
4.处理风险的策略
第12章 软件质量保证和配置管理(2课时)
1.软件质量
2.软件质量保证措施
3.软件可靠性
4.配置管理
第13章 软件工程标准化与软件文档(1课时)
1.软件工程标准化
2.软件国际标准
3.软件文档
4.软件开发环境与工具
四、教材及参考书目
(一)使用教材
殷锋.软件工程,天津科学技术出版社,2011年版
(二)参考书目
1.郑人杰, 殷人昆,陶永雷.实用软件工程(第二版),清华大学出版社,1997年版
2.张海藩.软件工程导论,清华大学出版社,2008年版
《软件工程》考试大纲
编写人:(朱雅莉)
审核人:(两人以上)
一、考试对象
修完该课程所规定内容的计算机科学与技术专业本科学生。
二、考试目的
本课程的考试目的是让学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术,以及求解软件的基本思想和途径,为从事计算机软件开发和管理奠定良好的基础。
三、考试的内容
第1章 软件工程概述
1.软件的定义、特点。
2.软件生产的发展。
3.软件危机的产生、表现、原因、解决途径。
4.软件工程的定义、性质、目标、内容、面临的问题。
第2章 软件过程
1.软件过程的概念。
2.软件生存周期的概念。
3.软件过程模型的定义、重要性。
4.瀑布模型、原型模型、增量模型、螺旋模型、变换模型、喷泉模型、智能模型、第四代技术。
5.软件过程改进的任务、层次。
第3章 结构化分析
1.结构化分析的概念
2.可行性研究的任务、具体步骤,可行性报告的编写。
3.需求分析的概念、基本任务、过程,软件需求说明书的编写。
4.结构化分析方法、步骤。
5.系统流程图的画法。
6.数据流图中的符号、画数据流图注意的事项、分层的数据流图。
7.数据字典的作用、数据字典中的条目。
8.加工逻辑的描述、结构化语言、判定表(树)的构成和描述。
9.E-R图的画法、STD图的画法。
第4章 结构化设计
1.概要设计、详细设计的基本任务。
2.软件设计的基本原理、模块化、抽象、信息隐蔽、模块独立性、内聚性、耦合性。
3.软件结构、模块的影响范围、模块的控制范围、软件结构设计的优化准则。
4.面向数据流的设计方法、变换流、事务流、将变换流或事务流类型的数据流图转换成模块结构图。
5.结构化程序设计的基本要点、流程图、盒图、PAD图及过程设计语言。
6.Jackson方法设计小型题目。
7.人机界面设计的原则、方法和步骤。
第5章 结构化实现
1.常用的程序设计语言的分类、特点、程序设计风格、编码效率。
2.软件测试的目的、测试方法、白盒测试、黑盒测试。
3.测试用例的设计、逻辑覆盖、等价类划分、边界值分析、错误推测、因果图。
4.逻辑覆盖中各种覆盖之间的区别。
5.测试过程、单元测试、集成测试、确认测试、系统测试、渐增式、非渐增式。
6.单元测试的内容及方法、集成测试的方法、渐增式及非渐增式测试的区别、自顶向下及自底向上结合模块的步骤。
7.调试、归纳法、演译法。
8.可维性的定义、可维性的度量及提高可维护性的方法;改正性维护、适应性维护、完善性维护、预防性维护的含义。
第6章 面向对象方法学
1.传统开发方法存在的问题。
2.面向对象的概念、基本特征、开发过程。
3.面向对象的模型、建模方法。
4.常用的UML图的画法、用例图、类图、顺序图、协作图、状态图、活动图、包图、构件图、部署图。
第7章 面向对象分析
1.面向对象分析过程。
2.建立对象模型。
3.建立动态模型。
4.建立功能模型。
第8章 面向对象设计
1.面向对象设计的任务、准则。
2.面向对象设计的启发规则。
3.系统设计。
4.类设计、对象设计。
第9章 面向对象实现
1.面向对象程序设计语言。
2.类的实现。
3.应用系统的实现。
4.面向对象的测试策略,面向对象测试工具简介。
5.面向对象维护。
第10章 软件项目管理和计划
1.软件工程管理的重要性、内容。
2.软件项目计划的目标、内容。
3.软件度量的分类、方法。
4.软件开发成本估算方法、Putnam模型、COCOMO模型。
5.软件项目进度安排、甘特图、时标网状图、PERT技术和CPM方法。
第11章 风险分析与管理
1、软件风险的分类。
2、风险识别和分析。
3、风险预测。
4、处理风险的策略。
第12章 软件质量保证和配置管理
1、软件质量的定义、度量与评价。
2、软件质量保证措施、质量度量模型、软件复杂性的基本概念、度量方法。
3、软件可靠性的定义、指标、模型。
4、软件配置管理的内容、关键活动、基线概念、软件配置项、版本控制、变更控制。
第13章 软件工程标准化与软件文档
1.软件工程标准化的意义。
2.软件工程标准的层次。
3.文档的作用与分类。
4.软件开发环境的分类。
5.软件工具的基本概念、特点、分类。
四、考试方法和考试时间
1.考试方法:笔试为主,平时实践考核为辅。
2.考试时间:120分钟。
五、评价标准
学生修完本课程并参加期末考试后,其成绩的评定为:期末考试成绩(60%)+ 平时成绩(40%),其中期末考试成绩按统一的评分标准阅卷评定,平时成绩包括考勤、作业、课堂提问、平时实践等。
六、试卷设计的结构
1.难度比例
试题的难度等级分为简单、中等难度、较难题三个等级,大致比例为40:45:15。
2.题型比例
客观性试题分为填空题、选择题、判断题,主观性试题分为简答题、综合应用题,其中主观性试题约占60%-70%左右。