软件工程导论教学大纲-章程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程导论》教学大纲
安徽大学计算机科学与技术学院
2017 年 3 月
《软件工程导论》教学大纲
课程编号:ZJ36047
课程名称:软件工程导论英文名称:Introduction to Software Engineering 学分/学时:2/34 课程性质:学科平台课程
适用专业:软件工程
先修课程:计算机导论
开课单位:计算机科学与技术学院
一、课程的教学目标与任务
《软件工程导论》课程是软件工程专业高等教育的专业基础课程和学科平台课程,是“科研训练计划”教育课程。《软件工程导论》以科学技术方法论为逻辑起点,结合部分管理方面的基本理论,讲授软件工程与方法论的联系,从而提高软件的质量和生产率。本课程以软件工程专业本科二年级学生为讲授对象,是集理论性与应用性为一体的学科。
设置本课程的目的是:使学习者在全面了解软件工程发展历史、基本理论的基础上,系统掌握软件开发过程中的现代方法和管理手段,具备用工程化方法设计和构建规范软件的思想,从而为后续软件工程开发方法的系列课程奠定理论基础。
学习本课程的要求是:学习者应深刻认识软件危机产生的原因,纠正对软件开发的错误认识,掌握软件工程科学方法论的基本概念和基本原理,初步具备作为专业人员组织软件开发和设计工作的能力。为检验掌握软件开发应遵循的原则和编写文档的基本方法的程度,最后的考核是通过考试进行,同时以加深对课程内容的理解。
二、课程具体内容及基本要求
第一章软件工程的范畴 ( 2学时)
基本内容包括:
第一节历史方面
一、定义软件
(1)介绍软件的形式化定义。结合经典教科书中关于软件的定义,介绍软件中所包含的三个要素:①指令的集合;②数据结构;③软件描述信息。
(2)阐述非形式化定义中软件具有的特性。对比其他人工产品的特性,总结软件所具
有的三个特性。
二、软件工程的发展历程和应用领域
第二节经济方面
结合例子阐述经济学原则在软件生产方面的重要性。
第三节维护性方面
介绍软件生命周期模型和步骤,阐述维护工作在生命周期模型中的重要性和具体分类。
一、维护的传统和现代观点
二、交付后维护的重要性
第四节需求、分析和设计方面
通过解决错误的成本曲线说明提高需求、分析和设计技术的重要性。
第五节小组编程方面
阐述软件工程范畴中人的因素的重要性。
第六节为什么没有计划阶段
阐述为什么不存在独立的计划阶段,而是计划活动贯穿于软件生命周期的始终。
第七节为什么没有测试阶段
阐述为什么在产品实现后没有独立的测试阶段。
第八节为什么没有文档阶段
阐述为什么不应当有独立的文档阶段。而是软件文档必须是完整、正确和最新的。
第九节面向对象范型
对比传统的开发范型阐述面向对象范型的特点和优点。
第十二节道德问题
说明软件工程师应该遵守的八个准则。
1.基本要求
通过本章的学习,明确软件工程的各个方面的含义,描述传统软件工程生命周期模型和面向对象范型,感受遵守道德规范的重要性。
2.重点、难点
重点:(1)软件工程的定义;(2)软件工程的传统范型;(3)软件工程的面向对象范型。
难点:维护的传统和现代的观点。
3.作业及课外学习要求:
(1)为什么传统意义上的维护观点对于今天的软件产品不现实?
(2)“软件危机”一词于1976年提出,它是什么意思?这个词现在还适用吗?
第二章软件工程的概念 ( 4学时)
基本内容包括:
第一节理论上的软件开发
对比软件开发在理论上和实践上的不同。
(一)软件专业人员在开发中会犯错。
(二)软件开发过程中客户的需求会发生变化。
第二、三、四节小型实例研究
(一)通过Winburg小型系统实例描述进化树生命周期模型,并对比瀑布生命周期模型。
(二)通过野鸭拖拉机公司小型实例研究说明公司业务需求发生变化的时候对软件开发过程所产生的危害。
第五节迭代和递增
描述迭代和递增两个概念。
(一)迭代是软件工程的一个固有特性。软件开发的基本过程是迭代的,每个版本比前一个版本离目标更近一步。
(二)递增也是软件工程的一个固有特性。软件开发过程需要逐步求精。
描述软件生命周期中的五个核心工作流。
第六节修订的Winburg小型实例研究
通过Winburg小型实例把进化树模型添加在迭代-递增模型之上,说明递增的含义。
第七节迭代和递增的风险和其他方面
阐述迭代-递增模型的优点和存在的风险。
第八节迭代和递增的控制
阐述为什么需要对迭代-递增模型进行控制。
第九节其他生命周期模型
描述编码-修补生命周期模型、瀑布生命周期模型、快速原型开发生命周期模型、开源生命周期模型、敏捷过程、螺旋生命周期模型,分别描述几种模型的特点和适用条件。
第十二节生命周期模型的比较
对比几种生命周期模型的优点和缺点。
1.基本要求
通过本章的学习,掌握各种不同的软件生命周期模型,能够针对某一具体项目选用合适的生命周期模型,对比和比较各种生命周期模型。第二章计划4学时。
2.重点、难点
重点:(1)迭代的定义;(2)递增的定义;(3)生命周期模型。
难点:迭代-递增生命周期模型。
3.作业及课外学习要求:
(1)描述什么情况下螺旋生命周期模型不适用?
(2)描述什么样的产品是螺旋生命周期模型的理想应用?
(3)在迭代-递增生命周期模型中如何使用逐步求精?
第三章软件过程 ( 4学时)
基本内容包括:
第一节统一过程
结合实例说明统一过程是一种自适应的方法学。
第二节面向对象范型内的迭代和递增
描述面向对象范型是一个迭代和递增的方法。
第三节需求流
阐述需求流的目标是让开发组织确定客户的需求。
(一)理解应用域。
(二)找出存在的限制条件。
(三)明确用户需求。
第四节分析流
描述分析流的目标是分析和提取需求。分别对比传统分析方法和面向对象分析方法。
(一)传统分析:结构化系统分析---基于流程建模DFD
(二)面向对象分析:用例和类是基础。抽象出实体类、边界类和控制类。
第五节设计流
描述设计流的目标是细化分析流的制品,指示产品如何做。对比传统设计方法和面向对