软件工程导论概述_第1页
软件工程导论概述_第2页
软件工程导论概述_第3页
软件工程导论概述_第4页
软件工程导论概述_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论概述第1页,共40页,2023年,2月20日,星期日1.4.2快速原型模型RapidPrototypeModel定义:快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集步骤:快速建立一个能反映用户主要需求的原型系统用户试用原型系统之后会提出许多修改意见开发人员按照用户的意见快速地修改原型系统,返回上一步用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求第2页,共40页,2023年,2月20日,星期日

1.4.2快速原型模型第3页,共40页,2023年,2月20日,星期日1.4.2快速原型模型快速原型模型是不带反馈环的,这是它的主要优点。软件产品的开发基本上是线性顺序进行的。线性开发的主要原因是:(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求(2)开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性比较小,这自然减少了在后续阶段修改前面阶段所犯错误的可能性一。第4页,共40页,2023年,2月20日,星期日快速原型验证规格说明验证设计验证编码验证变化的需求验证综合测试维护图1.4快速原型模型维护时需要返回到各个阶段如图1.4所示第5页,共40页,2023年,2月20日,星期日1.4.3增量模型

IncrementalModel定义:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。软件产品分解成增量构件要遵守的约束条件当把新构件集成到现有软件中时,所形成的产品必须是可测试的第6页,共40页,2023年,2月20日,星期日1.4.3增量模型

IncrementalModel增量模型分批地逐步向用户提交产品,一个构件一个构件地向用户提交产品这种方式产生的优点:在较短时间内向用户提交可完成部分工作的产品逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。第7页,共40页,2023年,2月20日,星期日1.4.3增量模型

IncrementalModel为了便于向软件中增加新构件要求软件体系结构必须是开放的,向现有产品中加入新构件的过程必须简单、方便需要更精心的设计增量模型的矛盾:把软件看作一个整体,又把软件看作构件序列。要协调好整体与个别的矛盾,所以要精心设计.第8页,共40页,2023年,2月20日,星期日图1.5增量模型图1.5表明,必须在开始实现各个构件之前就全部完成需求分析、规格说明和概要设计的工作,由于在开始构建第一个构件之前已经有了总体设计,因此风险较小。第9页,共40页,2023年,2月20日,星期日一旦确定了用户需求之后,就着手拟定第一个构件的规格说明文档,完成后规格说明组将转向第二个构件的规格说明,与此同时设计组开始设计第一个构件……用这种方式开发软件,不同的构件将并行地构建,因此有可能加快工程进度。第10页,共40页,2023年,2月20日,星期日

1.4.4螺旋模型SpiralModel软件开发的风险:用户不满意,未能按期完成,成本超预算,关键技术人员跳槽,相同产品的竞争基本思想:使用原型及其他方法来尽量降低风险。

理解这种模型的一个简便方法,把它看作是在每个阶段之前都增加了风险分析过程的快速原型模型。如图1.7所示第11页,共40页,2023年,2月20日,星期日第12页,共40页,2023年,2月20日,星期日完整的螺旋模型如图1.8所示第13页,共40页,2023年,2月20日,星期日1.4.4螺旋模型SpiralModel螺旋模型的每一个周期都包括计划(需求定义)、风险分析、工程实现和评审4个阶段计划(需求定义)第一周期开始利用需求分析技术理解应用领域,获取初步用户需求,制定项目开发计划(即整个软件生命周期计划)和需求分析计划。经过一个周期后,根据用户和开发人员对上一周期工作成果评价和评审,修改、完善需求,明确下一周期软件开发的目标、约束条件,并据此制定新一轮的软件开发计划。第14页,共40页,2023年,2月20日,星期日1.4.4螺旋模型SpiralModel风险分析根据本轮制定的开发计划,进行风险分析,评估可选方案,并构造原型进一步分析风险,给出消除或减少风险的途径。此时根据风险分析的结果决策项目是否继续。所以,螺旋模型是一个风险驱动的模型。第15页,共40页,2023年,2月20日,星期日1.4.4螺旋模型SpiralModel工程实现利用构造的原型进行需求建模或进行系统模拟,…,直至实现软件系统。用户评价与阶段评审将原型提交用户使用并征求改进意见。开发人员应在用户的密切配合下进一步完善用户需求,直到用户认为原型可满足需求,或对软件产品设计进行评价或确认等。第16页,共40页,2023年,2月20日,星期日1.4.4螺旋模型SpiralModel优点:对可选方案和约束条件的强调有利于已有软件的重用有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;随着成本的增加,风险程度随之降低风险驱动在成本过大时可考虑中止项目。第17页,共40页,2023年,2月20日,星期日

1.4.5喷泉模型迭代是软件开发过程中普遍存在内在属性面向对象方法用得更多使用统一的软件概念对象生命周期的各阶段不明显,产生重叠。“喷泉”模型体现了面向对象软件开发过程的迭代和无缝的特性。图1.9喷泉模型第18页,共40页,2023年,2月20日,星期日

1.4.6Rational统一过程RationalUnifiedProcess,RUPRational公司推出的一种完整的软件过程总结多年商业化验证的6条有效的开发经验,被称为“最佳实践”(1)迭代开发(可运行版本):通过一系列的细化、若干个渐进的反复过程得出有效解决方案第19页,共40页,2023年,2月20日,星期日

1.4.6Rational统一过程(2)管理需求:如何提取、组织系统的功能性需求和约束条件并文档化;捕获需求的有效方法包括用例、脚本。(3)使用基于构件的体系结构:使得软件重用可能,降低软件开发的复杂性(4)可视化建模(UML)用UML语言建立起软件系统的可视化模型,帮助管理复杂的软件。第20页,共40页,2023年,2月20日,星期日

1.4.6Rational统一过程(5)验证软件质量:内建的质量评估过程,评估过程不再是事后型的软件过程(6)控制软件变更控制、跟踪和监控软件修改,以保证迭代开发的成功。第21页,共40页,2023年,2月20日,星期日第22页,共40页,2023年,2月20日,星期日目前有上千家软件公司在用RUP第23页,共40页,2023年,2月20日,星期日

1.4.7敏捷过程与极限编程捷过程与极限编程敏捷过程(AgileProcess,AP)敏捷方法(AgileMethodology,AM)敏捷建模(AgileModeling,AM)极限编程(eXtremeProgramming,XP)第24页,共40页,2023年,2月20日,星期日1.4.7敏捷过程与极限编程敏捷过程由来:2001.2月17位软件方法学家联合成立“敏捷软件开发联盟”,起草“敏捷软件开发宣言”“敏捷软件开发宣言”阐述的4条价值观(1)

个体和交互胜过过程和工具:强调优秀的团队成员是软件开发项目获得成功的最重要因素第25页,共40页,2023年,2月20日,星期日1.4.7敏捷过程与极限编程(2)可以工作的软件胜过详尽的文档:软件开发的主要目标是向用户提供可以工作的软件而非文档,需要时要编制简明扼要的文档(3)与客户协作胜过合同谈判:能够满足用户不断变化的需求的切实途径是与客户密切合作(4)响应计划胜过遵循计划:计划必须有足够的灵活性和可塑性,能迅速调整第26页,共40页,2023年,2月20日,星期日

2极限编程

eXtremeProgramming,XP(1)XP的12个有效实践①客户作为开发团队成员②使用用户素材:正在进行的关于需求谈话内容的助记符③短交付周期:一般每2周交付依次实现的用户需求④验收测试:通过执行由客户指定的验收测试第27页,共40页,2023年,2月20日,星期日2极限编程

eXtremeProgramming,XP⑤结对编程:一人编码一人审查⑥测试驱动开发:强调“测试先行”⑦集体所有:代码属于集体,每个成员都对代码质量负责⑧持续集成:一天之内多次集成⑨可持续的开发速度:<40Hours/week,连续加班不超过2week⑩开放的工作空间:在一个开放的场所,自由讨论第28页,共40页,2023年,2月20日,星期日2极限编程

eXtremeProgramming,XP11即时调整计划:灵活、循序渐进12简单的设计:设计与计划与本次迭代相符,不需要考虑多余的设计13重构:不改变系统功能前提下优化系统降低复杂性.不能过度以赖重构,要先做好设计14使用隐喻:整个系统联系起来的全局视图,它描写系统如何动作,怎样增加新功能第29页,共40页,2023年,2月20日,星期日图1.11XP项目的整体开发过程第30页,共40页,2023年,2月20日,星期日第31页,共40页,2023年,2月20日,星期日

1.4.8微软过程第32页,共40页,2023年,2月20日,星期日2微软软件生命周期微软过程把软件生命划分成5个阶段,如图1.13所示规划阶段设计阶段开发阶段稳定阶段发布阶段图1.13微软软件生命周期和主要里程碑第33页,共40页,2023年,2月20日,星期日2微软软件生命周期(1)规划阶段:市场获取用户情况、客户需求、竞争对手等信息.在统计分析的基础上完成下述工作.确定产品目标,获取竞争对手的信息完成对客户和市场的调研分析确定新版本产品应该具备的主要特殊性确定新版本应该解决的问题和需要增加的功能第34页,共40页,2023年,2月20日,星期日2微软软件生命周期(2)设计阶段:已经确定了70%以上的需求,开始设计,主要工作包括系统规格说明书、制订设计方案、绘制系统结构图、划分子系统、制定产品开发计划书第35页,共40页,2023年,2月20日,星期日2微软软件生命周期(3)开发阶段:完成编码,书写文档,并进行单元测试(4)稳定阶段:完整的进行集成测试,确保真实环境下的使用和操作(5)发布:把项目移交给运营和支持人员,以获得最终用户对项目的认可。第36页,共40页,2023年,2月20日,星期日3

3微软过程模型图1.14描绘了微软过程的生命周期模型,微软过程的每一个生命周期发布一个递进的软件版本,各个生命周期持续,快速地迭代循环。图1.14微软过程的生命周期模型第37页,共40页,2023年,2月20日,星期日2、主要参考资料:《软件工程——原理、方法与应用》史济民等主编.高等教育出版社《软件工程》(英)IanSommerville著,程成、陈霞等译.机械工业出版社《软件工程》.齐治昌等编著.高等教育出版社《软件开发的过程与管理》,张湘辉编著,清华大学出版社,2005.《软件工程原理与应用》,陈世鸿编著,武汉大学出版社,2004.《软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论