您好,欢迎访问三七文档
2020/1/261鲁东大学信息科学与工程学院软件过程模型Slide1-2主要内容软件生命周期软件过程软件过程模型传统的过程模型演化的过程模型RUP统一过程敏捷过程Slide1-3学习目标了解软件过程掌握软件过程模型:瀑布模型、原型模型、增量模型、螺旋模型了解RUP了解XPSlide1-4过程过程就是针对某一给定目标的一系列运作步骤,是在过程环境下的一系列有序活动。它可能包括工具、方法、资料或人Slide1-5煮蛋的启示Slide1-6软件过程软件过程是将用户的需求转化成有效的软件解决方案的一系列活动。软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量的软件产品。许多软件组织无法正确定义和控制这一过程,但这恰恰是组织改进的关键。Slide1-7定义阶段开发阶段计划需求分析设计编码测试运行及维护维护阶段软件生存周期软件生存周期是指软件从产生到消亡的整个过程。Slide1-8软件生存周期11.软件定义问题定义要解决的问题是什么?系统分析员来完成。可行性研究对前一阶段确定的问题是否有可行的解决办法。Slide1-92.软件开发:需求分析:解决的问题是目标系统必须做什么,编写软件需求规格说明。概要设计:如何宏观解决问题。详细设计:如何具体实现这个系统。编码和测试:如何写出正确的容易理解、容易维护的程序模块。3.运行和维护:对软件产品进行修改或对软件需求变化作出反应的过程。软件生存周期2Slide1-10软件生存期模型软件开发的一种框架。说明了软件的活动和进行软件开发的过程。这个模型可以以活动为中心,也可以以产品为中心。Slide1-11软件过程模型传统开发模型瀑布模型(waterfallmodel)快速原型模型(rapidprototypemodel)演化开发模型增量模型(incrementalmodel)螺旋模型(spiralmodel)面向对象开发模型构件集成模型(componentintegrationmodel)形式化开发模型转换模型(transformationalmodel)净室模型(cleanroommodel)Slide1-12问题定义编码需求分析设计可行性研究维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型Slide1-13瀑布模型——特点简单易用,直观阶段的顺序性和依赖性没有反馈过程,需要严密控制。用户直到项目结束才能看到质量如何推迟实现的观点不允许或者限制变更Slide1-14瀑布模型--适合的项目项目的需求在项目开始前很明确解决方案在项目开始前也很明确类似的项目如:公司的财务系统库存管理系统短期项目Slide1-15思考????传统瀑布模型存在什么问题?Slide1-16传统的瀑布模型—存在什么问题???传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。实际项目很少按照该模型给出的顺序进行用户常常难以清楚地给出所有需求用户必须有耐心开发者常常被不必要地耽搁Slide1-17TomGilb:“假如你不积极地解决你项目中存在的风险,它们就会积极地解决掉你”瀑布方法会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。国际著名的软件工程和系统工程专家Slide1-18快速原型模型原型软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。Slide1-191、快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)2、构造原型在快速分析的基础上,根据基本规格说明,忽略细节,只考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3、运行和评价原型用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4、修改与改进对原型进行修改、增删。快速原型的工作模型快速原型法--工作步骤Slide1-21快速原型模型需求分析原型开发最终系统设计原型评价最终系统实现用户反馈快速原型法的生存期模型Slide1-22快速原型模型—特点特点快速开发工具过程可以循环低成本种类渐进型(RCP法)抛弃型(RSP法)Slide1-23快速原型模型—使用指南用户和开发人员根据初始需求共同开发一个项目规划用户和开发人员利用快速分析技术共同定义需求和规格设计者构建一个模型设计者演示这个模型,用户来评估性能标识问题,然后用户和设计者一起来解决他们循环这个过程,直到用户满意为止详细设计就可以根据这个原型进行原型可以用代码或者工具来实施Slide1-24快速原型模型—适合项目项目的需求在项目开始前不明确类似的项目如:明确显示界面开发新产品,验证技术可行性Slide1-25增量模型由Mills提出,是为了减少开发过程的返工,客户可以得到一些机会延迟对详细需求的决策。融合了瀑布模型的基本成分和原型的迭代特征,采用随着日程时间的进展而交错的线性序列。Slide1-26增量模型1需求分析验证规格说明验证设计验证维护针对每个构件完成详细设计、编码和集成,经测试后交付给用户Slide1-27增量模型2分析设计编码测试增量1分析设计编码测试增量2分析设计编码测试增量3分析设计编码测试增量4Slide1-28增量模型3核心功能核心功能112123第一增量第二增量第三增量核心功能112123……Slide1-29增量模型—举例增量模型融合了瀑布模型的基本成分和原型的迭代特性。例如,使用增量模型开发字处理软件1.基本的文件管理、编辑和文档生成功能。2.更完善的编辑和文档生成能力。3.实现拼写和文法检查功能。4.完成高级的页面布局功能。Slide1-30增量模型--特点第一个增量往往是核心产品每一个增量均发布一个可操作产品早期的增量是最终产品的“可拆卸”版本优点:客户无须等到整个系统的实现可以将早期的增量作为原型,获得对后面增量的经验。项目总体失败的风险比较低。最重要的系统服务接受了最多的测试。Slide1-31增量模型--使用指南首先构建整个系统的一部分然后逐步地增加功能和性能使用条件:用户的理解、支持和参与Slide1-32增量模型--适合的项目项目开始,明确了需求的大部分,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解具有复杂功能的大型系统进行功能改进Slide1-33在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。螺旋模型综合了传统的生存周期模型和原型开发模型的优点,同时增加了一个新元素——风险分析(riskanalysis)。螺旋模型瀑布模型+快速原型+风险分析Slide1-34螺旋模型Slide1-35螺旋模型螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划──确定软件目标,需求和选定实施方案,弄清项目开发的限制条件风险分析──评估所选方案,考虑如何识别和消除风险原型开发──实施软件开发,编码,测试等用户评审──评价开发工作,提出修正建议,规划下期任务Slide1-36螺旋模型--特点是瀑布模型的多次迭代阶段划分更细风险管理驱动用户可以不断对产品进行评估,给开发人员更多的反馈信息用户可以更早看到产品项目的投资不用一次投入Slide1-37螺旋模型--使用指南选择比较小的步伐循序渐进允许需求和设计的变动项目中有很多风险,注意风险控制。使用条件用户的充分理解和参与专门的风险评估技术支持Slide1-38螺旋模型--适合的项目风险是主要的制约因素项目中的不确定因素和风险限制了进度用户对自己的需求不是很明确需求可能会发生重大的变更项目规模很大采用了新技术或新概念,需要验证。Slide1-40现在软件产业界普遍认为,开发复杂软件项目必须采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开发过程,他是世界公认的开发复杂软件项目的最好过程,已经成为软件界的“圣经”。这一开发过程目前已经稳定、成熟。这就是:Slide1-41RUP—RationalUnifiedProcessSlide1-42RationalUnifiedProcess—RUPRational统一过程是由Rational软件公司开发和营销的一种软件工程过程,是开发组织用以分配与管理任务和职责的一种规范化方法。这个过程的目的是在预定的进度和预算范围内,开发出满足最终用户需要的高质量软件。Slide1-43RUPBestPracticesProcessMadePracticalDevelopIterativelyManageRequirementsUseComponentArchitecturesModelVisually(UML)ContinuouslyVerifyQualityManageChangeSlide1-45捕获了很多现代软件开发中的最佳实践(bestpractice)迭代地开发软件管理需求应用基于构件的构架为软件建立可视化的模型不断地验证软件质量控制软件的变更Slide1-52软件开发模型—实例假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?Slide1-53解:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时、应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。Slide1-54小结软件开发模型是不断发展的各种软件开发模型各有优缺点选用时不必拘泥于某种模型可组合多种模型也可根据实际创建新的模型Slide1-55作业习题3、6Slide1-56下课了。。。休息一会儿。。。追求
本文标题:原型模型增量模型
链接地址:https://www.777doc.com/doc-3312927 .html