您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第1章 软件工程学概述-2
第1章软件工程学概述-2李建义1.4软件过程模型一、瀑布模型1.瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护,并规定它们按固定顺序自上而下、相互衔接。一、瀑布模型一、瀑布模型2.特征:(1)阶段间具有顺序性和依赖性第一:必须等前一个阶段的工作完成之后,才能开始后一阶段的工作。第二:前一阶段的输出文档就是后一阶段的输入文档,所以,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。(2)推迟实现的观点事实证明越早进行编码最终完成开发工作所需要的时间反而越长。对于瀑布模型来讲,在编码阶段之前还有分析和设计过程,将逻辑设计与物理设计区分,尽可能推迟程序的物理实现。(3)质量保证的观点第一:每个阶段都必须完成规定的文档,没有合格的文档就没有完成该阶段的任务。第二:每个阶段结束前都要对所完成的文档进行评审,便尽早发现问题,改正错误。一、瀑布模型3.缺点:(1)缺乏灵活性。无法解决对软件需求不明确或不准确的问题,开发出来的软件不能满足用户需求,最终的结果就是返工。(2)瀑布模型是由文档驱动的。文档是静态的,用它很难全面正确地描述动态的软件需求。4.适用场合:用户需求明确二、快速原型模型1.快速原型是快速建立起来的可以在计算机上运行的程序(原型),它所能完成的功能往往是最终产品完成的功能的一个子集。快速原型二、快速原型模型2.优点:能满足用户的需求。用户参与开发原型的过程及原型的运行和评价,在这过程中让用户及时提出自已的新要求,开发者对立即进行修改,直到用户满意为止。3.根据建立原型的目的的不同,通常分为以下三种类型的原型:(1)渐增式原型。听取用户意见需求分析快速构造原型用户运行测试原型修改原型不满意实现最终原型满意二、快速原型模型(2)用于验证软件需求的原型。往往用后就丢弃。(3)用于验证设计方案的原型。将原型作为新设计思想的实现工具,开发软件部分原型。三、增量模型1.增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。增量开发:按一定的时间间隔开发部分软件增量提交:软件分多个部分逐步提交给用户使用三、增量模型图1.6风险更大的增量模型一旦确定用户需求后,分构件进行需求规格说明编写、设计、编码等工作。三、增量模型2.优点:(1)能在较短的时间内向用户提交可完成部分工作的产品。(2)逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。3.缺点:要求软件体系结构必须是开放式的。否则会造成整个软件无法集成。四、螺旋模型在瀑布模型和原型模型的基础上加入风险分析。图1.7简化的螺旋模型四、螺旋模型四、螺旋模型优点:有利于软件重用,提高软件质量减少了过多测试或测试不足带来的风险适用场合:用于内部开发的大规模软件项目五、喷泉模型1.是典型的面向对象软件开发模型,是一种以用户需求为动力,以对象作为驱动的模型,适合面向对象的开发方法,着重强调不同阶段之间的重叠,不需要或不应该严格区分不同的开发阶段。2.喷泉模型将软件开发过程划分为系统分析、系统设计、对象设计与实现、测试和系统组装集成五个阶段。四、喷泉模型六、统一过程1.指使用统一建模语言UML,采取用例驱动和架构优先的策略。采用迭代增量建造方法。2.RUP把软件开发过程划分为多个循环,每个循环生成产品的一个新版本。每个循环都由初始阶段、细化阶段、构造阶段和提交阶段四个阶段组成。每个阶段是一个小的瀑布模型,要经过分析、设计、编码、集成和测试等阶段。结论:结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;面向对象方法学可采用快速原型、喷泉模型和统一过程进行开发。七、敏捷过程与极限编程1.敏捷过程价值观(1)个体和交互胜过过程和工具团对成员的合作、沟通以及交互能力要比单纯的软件编程能力更重要(2)可以工作的软件胜过面面俱到的文档(3)客户合作胜过合同谈判能指导开发团队和客户合作的的合同才是最好的合同(4)响应变化胜过遵循计划应该有足够的能力及时响应变化七、敏捷过程与极限编程2.极限编程极限:把好的开发实践运用到极致应用:需求模糊且经常改变的场合3.极限编程的有效实践客户作为开发团队的成员使用用户素材短交付周期验收测试结对编程测试先行:先编测试用例、再编程代码集体所有七、敏捷过程与极限编程3.极限编程的有效实践持续集成:在一天之内多次集成可持续的开发速度:不加班开放的工作空间:便于交流讨论及时调整计划简单的设计重构:不改变功能的前提下调整和优化系统内部结构使用隐喻:系统全局视图八、微软过程模型微软软件生命周期阶段划分和主要里程碑微软过程的生命周期模型本章小结了解:1.软件工程发展史2.软件工程学的内容理解:1.软件危机的主要表现;2.各种模型的工作过程;掌握:1.软件生存周期过程的阶段划分原则和每一阶段的任务划分;2.软件、软件危机和软件工程的概念;3.软件工程基本原理4.软件工程三要素作业补充作业:(1)软件工程学习网站软件工程专家网:中国UML:中国工程研究中心:UML软件工程组织:测试时代:测试管理中心:开放软件测试研究:硅谷动力:(2)CASE工具建模工具Rationalrose:Together:CASEstudio:microsoftvisio:软件测试工具:Robot:Junit:Dunit:sourceforge.net/projects/dunitWinRunner和Loadrunner:项目管理工具:Microsoftproject:RUP:到上述网站了解软件工程相关知识作业:P16:2、3、6、7、9
本文标题:第1章 软件工程学概述-2
链接地址:https://www.777doc.com/doc-3934405 .html