安徽大学本科教学课程教案课程代码:ZJ36047课程名称:软件工程导论授课专业:软件工程授课教师:章程职称/学位:讲师/博士开课时间:二O—六至二O—七学年第2学期第1次课程教学方案周次1课时数2教学早节第章软件工程的范畴目标要求()明确软件工程的各个方面的含义。()描述传统软件工程生命周期模型和面向对象范型。()感受遵守道德规范的重要性。重点难点重点:()软件工程的定义;()软件工程的传统范型;()软件工程的面向对象范型。难点:维护的传统和现代的观点。教学方式V课堂讲授口小组活动口实验演示V难点答疑V提问□作业讲评口实践教学口考试测验口其他活动媒体资源V文字教材V电子教案口录像材料口录音材料口直播课堂□课件口课件口其他资源:课后作业()为什么传统意义上的维护观点对于今天的软件产品不现实?()“软件危机”一词于年提出,它是什么意思?这个词现在还适用吗?板书设计教学课件《第章软件工程的范畴》1.历史方面2.经济方面3.维护性方面4.需求、分析和设计方面5.小组编程方面6.为什么没有计划阶段7.为什么没有测试阶段8.为什么没有文档阶段9.面向对象范型10.术语11.道德问题第1次教学活动设计教学环节内容设计与手段导入新课由两个实例引入:>工程学的意义。>软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性和问题。>软件工程定义为一门学科,目的是生产出满足客户要求的、未超出预算的、按时交付的、没有错误的软件。>需要在软件生产的各个阶段使用恰当的技术,包括何时进行分析、设计和交付后维护。>软件工程结合人类各个领域的许多知识,包括经济和社会科学。讲授内容1・1历史方面>1968年在德国Garmisch召开的NATO软件工程会议上签署了声明,正式确立了软件工程的概念。>目标:软件工程应当是一项类似工程的活动,应当使用已建立的工程学科的基本原理和范型来解决“软件危机”>软件交付所出现的问题•推迟完成・超出预算・特性缺失错误>软件危机仍然伴随着我们,告诉我们两件事情:(1)软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性和问题。(2)可能应当重新命名为“软件萧条”(SoftwareDepression)・周期长・难预测1・2经济方面>举例:使用新的编码技术CTnew编码时间比使用旧的编码技术CTold少花1/10的时间。是否应该使用新的编码技术?通常的答案时:当然选择新的编码技术。>从软件工程的经济观点来看:・考虑培训的成本・考虑采用新技术CMnew对维护工作的影响1・3维护性方面>传统维护观点:传统意义上,维护是根据不同时期所开展的活动来进行定义的客户想要增加该软件产品的功能・传统维护(完善性)客户想要在软件之前做同一改变(“移动目标问题”)・传统开发范畴>现代维护定义是软件因存在问题或因有改进或适应性需求时,对代码及相应文档所进行的修改过程1・4需求、分析和设计方面>提高需求、分析和设计技术是非常重要的・可以尽早发现错误・降低错误的总体数量(需求、分析和设计中错误所占比例较高)1・5小组编程方面>硬件成本不断降低・产品太大了无法由一个人在规定时间内编写完成>这种产品需要由一个小组去完成・模块之间的接口问题・小组成员之间的交流协调问题1・6为什么没有计划阶段>在项目的开始,对管理需求和分析阶段进行初步计划>一旦明确之道将要开发什么,就制定出软件项目管理计划>在整个项目过程中,管理者需要监督SPMP的执行情况,并且注意是否有偏离计划的情况发生1・7为什么没有测试阶段>在一个软件准备好交付给客户时才检查它实在是太晚了>持续测试活动必须始终贯穿于软件生命周期中>测试活动是・每个软件正确建造的保证・软件质量保证(SQA)小组的责任1・8为什么没有文档阶段>在一个软件准备好交付给客户时才编制文档实在是太晚了>软件行业中的人员流动性较大>如果前一阶段的文档不是完整、正确和最新的,几乎不可能执行下一阶段的步骤>除非提供文档来说明对一个软件产品期望的性能,否则不可能测试该软件产品是否正确工作>如果没有一套完整、正确的文档精确地描述产品的当前版本做些什么,维护几乎是不可能的1・9面向对象范型>优点1.由于信息隐藏,交...