软件工程导论教案章程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论教案章程 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】
安徽大学本科教学课程教案课程代码: ZJ36047
课程名称:软件工程导论
授课专业:软件工程
授课教师:章程
职称/学位:讲师/博士
开课时间:二○一六至二○一七学年第 2 学
期
第 1 次课程教学方案
第 1 次教学活动设计
由两个实例引入:
工程学的意义。
软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性
和问题。
软件工程定义为一门学科,目的是生产出满足客户要求的、未超出预
算的、按时交付的、没有错误的软件。
需要在软件生产的各个阶段使用恰当的技术,包括何时进行分析、设
计和交付后维护。
软件工程结合人类各个领域的许多知识,包括经济和社会科学。
1.1历史方面
1968年在德国Garmisch召开的NATO软件工程会议上签署了声明,正式确立了软件工程的概念。
目标: 软件工程应当是一项类似工程的活动,应当使用已建立的工程
学科的基本原理和范型来解决“软件危机”。
软件交付所出现的问题
•推迟完成
•超出预算
•特性缺失错误
软件危机仍然伴随着我们,告诉我们两件事情:
(1)软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性和问题。
(2)可能应当重新命名为“软件萧条”(Software Depression)•周期长
•难预测
1.2经济方面
举例:使用新的编码技术 CTnew 编码时间比使用旧的编码技术CTold
少花1/10的时间。是否应该使用新的编码技术?通常的答案时:当然
选择新的编码技术。
从软件工程的经济观点来看:
•考虑培训的成本
•考虑采用新技术CMnew 对维护工作的影响
1.3维护性方面
传统维护观点:传统意义上,维护是根据不同时期所开展的活动来进
行定义的
客户想要增加该软件产品的功能
•传统维护(完善性)
客户想要在软件之前做同一改变(“移动目标问题”)
•传统开发范畴
现代维护定义
是软件因存在问题或因有改进或适应性需求时,对代码及相应文档所
进行的修改过程
1.4 需求、分析和设计方面
提高需求、分析和设计技术是非常重要的
•可以尽早发现错误
•降低错误的总体数量(需求、分析和设计中错误所占比例较高)
1.5 小组编程方面
硬件成本不断降低
•产品太大了无法由一个人在规定时间内编写完成
这种产品需要由一个小组去完成
•模块之间的接口问题
•小组成员之间的交流协调问题
1.6 为什么没有计划阶段
在项目的开始,对管理需求和分析阶段进行初步计划
一旦明确之道将要开发什么,就制定出软件项目管理计划
在整个项目过程中,管理者需要监督SPMP的执行情况,并且注意是否有偏离计划的情况发生
1.7 为什么没有测试阶段
在一个软件准备好交付给客户时才检查它实在是太晚了
持续测试活动必须始终贯穿于软件生命周期中
测试活动是
•每个软件正确建造的保证
•软件质量保证(SQA)小组的责任
1.8 为什么没有文档阶段
在一个软件准备好交付给客户时才编制文档实在是太晚了
软件行业中的人员流动性较大
如果前一阶段的文档不是完整、正确和最新的,几乎不可能执行下一
阶段的步骤
除非提供文档来说明对一个软件产品期望的性能,否则不可能测试该
软件产品是否正确工作
如果没有一套完整、正确的文档精确地描述产品的当前版本做些什
么,维护几乎是不可能的
1.9 面向对象范型
优点
1. 由于信息隐藏,交付后维护更安全
•极大地减少了出现回归错误的机会
2. 使软件开发变得更加容易
•对象在现实中都存在对应物
•能够简化建模(建模在面向对象范型中起着非常重要的作用)
3. 设计良好的对象是独立的单元
第 2 次课程教学方案
第 2 次教学活动设计
2.1理论上的软件开发
在理想世界中。软件产品像第一章所描述的那样开发。
–线性 Linear
–从零开始 Starting from scratch
在现实实践中,软件开发完全不同。
–软件专业人员是人,因此会犯错误。
–当软件正在开发时,客户的需求会发生变化。
2.2-2.4小型实例研究
(一)通过Winburg小型系统实例描述进化树生命周期模型,并对比瀑布生命周期模型。
(二)通过野鸭拖拉机公司小型实例研究说明公司业务需求发生变化的时候对软件开发过程所产生的危害。
2.5迭代和递增
基本的软件开发过程是迭代的。
–每个版本比前一个版本离我们的目标更进一步。
处理信息量的限制的一个办法是使用逐步求精的方法。stepwise
refinement
–集中精力于目前最重要的那些方面。
–那些不紧急的方面延后。
–事情的那个方面最终都要处理,但是要按照目前的重要性依次进行。
2.6修订的Winburg小型实例研究
通过Winburg小型实例把进化树模型添加在迭代-递增模型之上,说明递增的含义。