ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:37.57KB ,
资源ID:3667062      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3667062.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程导论教案Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程导论教案Word格式文档下载.docx

1、(2)“软件危机”一词于1976年提出,它是什么意思?这个词现在还适用吗?板书设计教学课件第1章 软件工程的畴1. 历史方面 2. 经济方面 3. 维护性方面 4. 需求、分析和设计方面5. 小组编程方面6. 为什么没有计划阶段7. 为什么没有测试阶段8. 为什么没有文档阶段 9. 面向对象型 10. 术语11. 道德问题第1次教学活动设计教学环节容设计与手段导入新课由两个实例引入: 工程学的意义。 软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性和问题。 软件工程定义为一门学科,目的是生产出满足客户要求的、未超出预算的、按时交付的、没有错误的软件。 需要在软件生产的各个阶段使用恰

2、当的技术,包括何时进行分析、设计和交付后维护。 软件工程结合人类各个领域的许多知识,包括经济和社会科学。讲授容1.1历史方面 1968年在德国Garmisch召开的NATO软件工程会议上签署了声明,正式确立了软件工程的概念。 目标: 软件工程应当是一项类似工程的活动,应当使用已建立的工程学科的基本原理和型来解决“软件危机”。 软件交付所出现的问题 推迟完成 超出预算 特性缺失错误 软件危机仍然伴随着我们,告诉我们两件事情:(1)软件生产过程虽然很多方面与传统工程相似,但是仍然有自己的属性和问题。(2)可能应当重新命名为“软件萧条”(Software Depression) 周期长 难预测1.2

3、经济方面 举例:使用新的编码技术 CTnew 编码时间比使用旧的编码技术CTold少花1/10的时间。是否应该使用新的编码技术?通常的答案时:当然选择新的编码技术。 从软件工程的经济观点来看: 考虑培训的成本 考虑采用新技术CMnew 对维护工作的影响1.3维护性方面 传统维护观点:传统意义上,维护是根据不同时期所开展的活动来进行定义的客户想要增加该软件产品的功能 传统维护(完善性)客户想要在软件之前做同一改变(“移动目标问题”) 传统开发畴 现代维护定义是软件因存在问题或因有改进或适应性需求时,对代码及相应文档所进行的修改过程1.4 需求、分析和设计方面 提高需求、分析和设计技术是非常重要的

4、 可以尽早发现错误 降低错误的总体数量(需求、分析和设计中错误所占比例较高)1.5 小组编程方面 硬件成本不断降低 产品太大了无法由一个人在规定时间编写完成 这种产品需要由一个小组去完成 模块之间的接口问题 小组成员之间的交流协调问题1.6 为什么没有计划阶段 在项目的开始,对管理需求和分析阶段进行初步计划 一旦明确之道将要开发什么,就制定出软件项目管理计划 在整个项目过程中,管理者需要监督SPMP的执行情况,并且注意是否有偏离计划的情况发生1.7 为什么没有测试阶段 在一个软件准备好交付给客户时才检查它实在是太晚了 持续测试活动必须始终贯穿于软件生命周期中 测试活动是 每个软件正确建造的保证

5、 软件质量保证(SQA)小组的责任1.8 为什么没有文档阶段 在一个软件准备好交付给客户时才编制文档实在是太晚了 软件行业中的人员流动性较大 如果前一阶段的文档不是完整、正确和最新的,几乎不可能执行下一阶段的步骤 除非提供文档来说明对一个软件产品期望的性能,否则不可能测试该软件产品是否正确工作 如果没有一套完整、正确的文档精确地描述产品的当前版本做些什么,维护几乎是不可能的1.9 面向对象型 优点1. 由于信息隐藏,交付后维护更安全 极减少了出现回归错误的机会2. 使软件开发变得更加容易 对象在现实中都存在对应物 能够简化建模(建模在面向对象型中起着非常重要的作用)3. 设计良好的对象是独立的

6、单元 产品中与现实世界相关的、被该对象模拟的部分都可以在对象本身中找到 封装 encapsulation 与外界通信的唯一形式就是给对象发消息 由对象执行特定操作,怎样执行操作完全是对象自身的职责 职责驱动设计 responsibility-driven design4. 降低了软件产品的复杂度,从而简化了软件开发与维护5. 提高了重用度1.10 正确看待面向对象型1. 必须正确使用面向对象型 所有型都很容易被错误地使用2. 当正确使用的时候,面向对象型可以解决一些(但不是全部)传统型遇到的问题3. 面向对象型有其自身的问题4. 面向对象型是目前可用的最好方法 然而,将来它一定会被更先进的技术

7、所取代1.11 术语 对一些主要术语概念做出解释1.12 道德问题介绍软件从业人员必须遵守的道德规归纳总结 通过本章的学习,明确软件工程的各个方面的含义,描述传统软件工程生命周期模型和面向对象型,感受遵守道德规的重要性。第2次课程教学方案第2章 软件生命周期模型(1)掌握各种不同的软件生命周期模型(2)能够针对某一具体项目选用合适的生命周期模型,对比和比较各种生命周期模型。(1)迭代的定义;(2)递增的定义;(3)生命周期模型。迭代-递增生命周期模型。 课堂讲授 小组活动 实验演示 难点答疑 提问 文字教材 电子教案 录像材料 录音材料 直播课堂(1)描述什么情况下螺旋生命周期模型不适用?(2

8、)描述什么样的产品是螺旋生命周期模型的理想应用?(3)在迭代-递增生命周期模型中如何使用逐步求精?教学课件第2章 软件生命周期模型第2次教学活动设计复习上节课容,包括软件工程的概念、传统开发型和面向对象型。复习完这些重点知识后,向学生提问:能否举个例子说明理想状况下软件开发的过程是什么?2.1理论上的软件开发 在理想世界中。软件产品像第一章所描述的那样开发。 线性 Linear 从零开始 Starting from scratch 在现实实践中,软件开发完全不同。 软件专业人员是人,因此会犯错误。 当软件正在开发时,客户的需求会发生变化。2.2-2.4小型实例研究(一)通过Winburg小型系

9、统实例描述进化树生命周期模型,并对比瀑布生命周期模型。(二)通过野鸭拖拉机公司小型实例研究说明公司业务需求发生变化的时候对软件开发过程所产生的危害。2.5迭代和递增 基本的软件开发过程是迭代的。 每个版本比前一个版本离我们的目标更进一步。 处理信息量的限制的一个办法是使用逐步求精的方法。stepwise refinement 集中精力于目前最重要的那些方面。 那些不紧急的方面延后。 事情的那个方面最终都要处理,但是要按照目前的重要性依次进行。2.6修订的Winburg小型实例研究通过Winburg小型实例把进化树模型添加在迭代-递增模型之上,说明递增的含义。2.7 迭代和递增的风险和其他方面阐

10、述迭代-递增模型的优点和存在的风险。2.8 迭代和递增的控制阐述为什么需要对迭代-递增模型进行控制。2.9 其他生命周期模型描述编码-修补生命周期模型、瀑布生命周期模型、快速原型开发生命周期模型、开源生命周期模型、敏捷过程、螺旋生命周期模型,分别描述几种模型的特点和适用条件。2.12 生命周期模型的比较对比几种生命周期模型的优点和缺点。 通过本章的学习,掌握各种不同的软件生命周期模型,能够针对某一具体项目选用合适的生命周期模型,对比和比较各种生命周期模型。第3次课程教学方案3第3章 软件过程3.1 统一过程3.2 面向对象型的迭代和递增3.3 需求流3.4 分析流3.5 设计流3.6 实现流教

11、学目标和要求掌握统一过程中的五个核心工作流和四个阶段,掌握统一过程的工作流和阶段之间的差别重点难点(1)统一过程的五个核心工作流;(2)统一过程的四个阶段。统一过程工作流与阶段之间的差别。 课堂讲授 小组活动 实验演示 难点答疑 提问 文字教材 电子教案 录像材料 录音材料 直播课堂作业或练习(1)统一过程的“阶段”是什么意思?(2)瀑布生命周期模型的缺点是交付后的产品可能不满足客户的需求。统一过程是如何解决这个问题的?教学课件第3章 软件过程第3次教学活动设计复习上节课容,包括迭代和递增的概念,回顾几种常用的软件开发模型。举例分析不同的软件开发组织之间的软件开发过程的差异。 软件开发过程描述

12、了构造、部署以及维护软件的方式。 统一过程(Unified Process)是一种构造面向对象系统的迭代软件开发过程。 迭代和演化式开发是UP和其它方法中普遍采用的开发方法。 开发被组织成一系列固定的短期小项目,每次迭代都产生可执行的局部系统,都具有各自的需求分析、设计、实现和测试活动。3.2 面向对象型的迭代和递增 统一过程是一种建模技术 模型是一套UML图表,表示要开发的软件产品的一个或多个方面。 UML 是一种建模语言 表示(模拟)目标软件产品的工具 面向对象型是一种迭代和递增方法 每个工作流由一些步骤组成,为了完成该工作流,重复执行工作流的步骤直至开发小组成员认为UML图的表示是正确的

13、。 需求流的目标 确定客户需求 任务 首先,理解应用领域(application domain) 特定的业务环境 其次,业务建模 利用UML描述业务过程 分析流目标 分析和提取需求,以获得正确开发软件产品和易于维护产品所必需的需求 为什么没有在需求流中进行? 需求流的输出必须完全能够被客户理解 分析流的输出必须是精确的 需求制品必须用客户的语言表达 所有的自然语言都是不精确的 需求流和分析流的分离是必要的 目标 是细化分析流的制品,使程序员根据设计制品可以直接编程实现 传统设计 体系结构设计(总体设计) 将产品分解为各个模块 详细设计 设计每个模块: 数据结构 算法 面向对象设计 “类”(可被

14、视为特殊类型的模块)在分析流期间被提取出来,在设计流期间进行设计。 传统的体系结构设计对应于分析流的一部分 传统的详细设计对应于设计流的一部分 实现流的目标 是用选择的实现语言实现目标软件产品 大型软件产品被分为一个个的子系统 子系统包含组件和代码制品通过本章的学习,掌握统一过程中的五个核心工作流和四个阶段。第4次课程教学方案43.7 测试流3.8 交付后维护3.9 退役3.10 统一过程的各阶段3.11 一维和二维生命周期模型3.12 改进软件过程3.13 能力成熟度模型(1)解释统一过程的工作流和阶段之间的差别(2)理解软件过程改进的重要性统一过程的四个阶段。课本第63页10-16题板书设

15、计第4次教学活动设计复习上节课容,回顾软件过程中的几种过程流。从统一过程模型导入。 参加人员 每个开发人员和维护人员 质量保证小组 制品的可追踪性是成功测试的重要保证 在统一过程中,测试从始至终与其他工作流并行进行 测试流的性质随着被测试的制品的不同而不同 软件开发过程的重要组成部分 各类文档的缺乏会给维护带来很大的困难 需要两种类型的测试 针对更改本身的测试 回归测试 软件使用了若干年后,当进一步的交付后维护已经不值得时,软件就达到了退役阶段 四个递增阶段 初始阶段(Inception phase) 细化阶段(Elaboration phase) 构造阶段(Construction phas

16、e) 转换阶段(Transition phase) 统一过程中执行的每一个步骤属于五个核心工作流之一,也属于四个阶段之一。对比瀑布模型和进化树模型软件开发的根本问题在于人们不能对软件过程进行管理。 CMM提供了一个成熟度等级框架: 1级-初始级、2级-可重复级、3级-已定义级、4级-已管理级和5级-优化级。 关键过程域(KPA):是一个组织进入级别时要实现的目标通过本次课的学习,掌握统一过程的工作流和阶段之间的差别,理解软件过程改进的重要性。第5次课程教学方案5第4章 软件小组4.1 小组组织4.2 小组方法4.3 传统的主程序员小组方法4.4 主程序员小组和小组之外的编程小组(1)明确一个组

17、织良好的软件小组的重要性(2)掌握现代分级小组是如何组织的,(1)小组方法;(2)传统的主程序员小组方法。分散决策形式下的技术管理沟通渠道。课本第73页1-9题教学课件第4章 软件小组第5次教学活动设计回顾第一章软件工程畴的容,说明软件工程领域不仅仅包含开发技术的应用和研究,同时还涉及经济学、管理学等相关的容,引入软件开发团队的组织的重要性。 通过实例说明分模块完成任务,并非简单的各自完成模块任务,还存在协调问题 开发小组的组织是一个管理问题,与程序员的技术能力无关; 布鲁克斯法则:向一个已经延期的软件项目增加人员会使该项目完成得更晚; 无我编程(egoless Programming),鼓励

18、他人找出自己程序中的错误 强调集体,小组成员是平等的,打破程序员对自己开发程序的“护短”心理,主要目的尽可能多地发现BUG,这种方法的优点就是对查找错误的积极态度 需要成员都是有经验的专家 一般适合开源项目的开发(10人) 主程序员小组的两个关键特性: 专业化:小组的每个成员只承担其接受过培训的那部分工作; 等级性:主程序员指导小组所有其他成员的行动,并且对该项目的每个方面负责; 主程序员既是一个成功的管理者,也是一个训练有素的程序员,他完成结构化设计以及代码中的关键和复杂的部分 其他的小组成员在主程序员指导下进行具体的细节设计和编写代码 在程序员之间没有沟通的渠道,所有的接口问题都由主程序员

19、解决; 最后,主程序员审查其他小组成员的工作,因为主程序员个人要对每行代码负责; 备程序员应该在各方面与主程序员一样有能力,并且需要与主程序员一样深入了解这个项目,另外,为让主程序员集中精力进行结构化设计,备程序员应进行黑盒测试的用例规划,并承担其他与设计过程独立的任务; 编程秘书是主程序员小组中一个精通专业、收入颇丰的核心人物;4.4主程序员小组和小组之外的编程小组从小组和主程序员小组的优点中得出的另一种方法是适当分散决策过程。通过本次课的学习,明确一个组织良好的软件小组的重要性,描述现代分级小组是如何组织的。第6次课程教学方案64.5 同步-稳定小组4.6 敏捷过程小组4.7 开源编程小组

20、4.8 人员能力成熟度模型4.9 选择合适的小组组织掌握现代分级小组是如何组织的了解各种不同小组组织的优缺点。同步-稳定小组选择合适的小组组织课本第73页10-15题第6次教学活动设计回顾上次课容,包括小组组织和主程序员小组组织。通过分析这两种组织形式的优缺点引入新课。 微软公司采用的方式 程序员与测试员1:1比例配备(3-8) 构件并行小组(3-4小组,每组一个程序管理者) 具备小组的特点(鼓励单个程序员的创新),同时为了协同工作,每天必须进行工作同步-(每天将产品输入数据库,进行同步编译或测试),发现问题当天解决 结对编程(一个编写程序代码,另一个编写测试用例),同一台计算机上工作 具备无

21、我编程的特点 水平弱的可以向水平高的学习 参与开源项目的个人志愿者出于两个原因: 完成一项值得做的任务的成就感; 得到培训的经验,得到较新技术方面的技能。 对于一个成功的开源项目 目标产品的特性 组织者的个性 核心小组成员的天资 描述管理合开发一个组织的人力资源的最佳实践 举例 Level 2:关键过程区安置员工,沟通合协调,工作环境,性能管理,培训和开发以及补偿 Level 5:连续能力提高,组织的能力联合以及连续人力资源改革 没有一个解决方案可以解决编程小组组织的所有问题. 较为 “正确”方法是 依据需要建造的软件产品本身 各种小组结构经验 组织文化通过本次课的学习,掌握现代分级小组是如何组织的,了解各种不同小组组织的优缺点。第7次课程教学方案7第5章 软件工程工具5.1 逐步求精法5.2 成本-效益分析法5.3 分治5.4 关注分离5.5 软件度量5.6 CASE通过本章的学习,理解逐步分离法,理解分治,理解关注分离的重要性,选择适当的软件度量。逐步求精法、分治、关注分离选择适当的软件度量 课堂讲授 小组活动 实

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2