软件工程——2.软件过程模型.ppt

上传人:精*** 文档编号:1152709 上传时间:2024-11-18 格式:PPT 页数:83 大小:1.38MB
下载 相关 举报
软件工程——2.软件过程模型.ppt_第1页
第1页 / 共83页
软件工程——2.软件过程模型.ppt_第2页
第2页 / 共83页
软件工程——2.软件过程模型.ppt_第3页
第3页 / 共83页
软件工程——2.软件过程模型.ppt_第4页
第4页 / 共83页
软件工程——2.软件过程模型.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、软件工程Software Engineering(AnIntroduction)Chapter 2Process&Process Models回回 顾顾l克服软件危机的途径克服软件危机的途径研究软件开发的本质,消除研究软件开发的本质,消除错误的错误的认识、概念和做法;认识、概念和做法;研究先进的软件开发技术和方法,研究先进的软件开发技术和方法,推广推广使用成功的开发技术和方法;使用成功的开发技术和方法;研制使用研制使用软件工具和软件工程支持环软件工具和软件工程支持环境;境;加强软件加强软件管理管理。回回 顾顾l【IEEE】“软件软件”的定义为:计算机程的定义为:计算机程序、方法、规则、相关的文

2、档资料以及在序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。计算机上运行时所必需的数据。虽然表面上看来在这个定义中列出了软件的虽然表面上看来在这个定义中列出了软件的5个配置成分,但是,方法和规则通常是在文个配置成分,但是,方法和规则通常是在文档中说明并在程序中实现的。档中说明并在程序中实现的。l【ISO】软件是与计算机系统操作有关的软件是与计算机系统操作有关的程序、过程、规划及任何有关的资料。程序、过程、规划及任何有关的资料。l【SEI】软件是程序及其支持该程序的安软件是程序及其支持该程序的安装,操作,修复和加强所需的各种信息和装,操作,修复和加强所需的各种信息和资料。资料。回

3、回 顾顾lThereisnouniversalaccepted,definitionofSE.“SoftwareEngineerprogrammer,whattitledoyouwant”Computer,2001,34(5)l软件工程(软件工程(SEI):软件工程指规范:软件工程指规范地应用各种工程的科学的和数学的原地应用各种工程的科学的和数学的原理与方法以经济地生产高质量的软件。理与方法以经济地生产高质量的软件。软软软软件件件件生生生生命命命命周周周周期期期期(SDLDSDLDSDLDSDLD)是是指指从从软软件件开开始始开开发发到到报报废废的的全全过过程程,亦亦称称软软软软件生存期(件生

4、存期(件生存期(件生存期(life cyclelife cyclelife cyclelife cycle)。一般用经典的。一般用经典的瀑布模型瀑布模型来描述。来描述。GB 8567GB 8567中规定,软件生命周期分为中规定,软件生命周期分为7 7个阶段:个阶段:1 1、可行性研究和项目开发计划可行性研究和项目开发计划 2 2、需求分析需求分析3 3、概要设计、概要设计 4 4、详细设计详细设计5 5、编码、编码 6 6、测试测试7 7、维护、维护在在大大部部分分文文献献中中将将生生存存周周期期划划分分为为5 5个个阶阶段段,即即要要求求定定义义、设设计计、编编码码、测测试试及及维维护护。其

5、其中中要要求求定定义义阶阶段段包包括括可可行行性性研研究究和和项项目目开开发发计计划划、需求分析,设计阶段包括概要设计和详细设计。需求分析,设计阶段包括概要设计和详细设计。为了描述软件生存期的活动,提出了多种生存期模型:为了描述软件生存期的活动,提出了多种生存期模型:例如:例如:瀑布模型瀑布模型、循环模型循环模型、演化模型、演化模型、螺旋模型螺旋模型等。等。回顾:回顾:Software Life Cycle(维护报告维护报告)开发开发时期时期运行时期运行时期计划计划时期时期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(测试报告测试报告)(程序程序)(设计文档设计文档)(

6、需求说明书需求说明书)回回 顾顾回顾:回顾:Software Life Cycle(1)Requirements:Identify the needs of the users by interviewing them.(2)Specification or Analysis:Describe what the software system should do to meet the requirements.(3)Design:Describe how the system should perform the required tasks.回顾:回顾:Software Life Cycl

7、e(4)Implementation:Program various modules of the system.(5)Integration:Combine the modules and verify that the whole system works correctly.(6)Maintenance:Maintain the operation of the system,remove bugs as they are discovered.(7)Retirement:Migrate to a new system.回顾:回顾:Software Life CycleInputs/Ou

8、tputs of Each PhaseInputs/Outputs of Each Phase回回 顾顾可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程原则原则 目标目标 过过 程程支支持持过过程程组组织织过过程程u软件工程框架软件工程框架回回 顾顾l软件工程软件工程层次化技术层次化技术质量焦点质量焦点过程过程方法方法软件工程软件工程三要素:方法、工具、过程三要素:方法、工具、过程工具工具2.1 软件过程软件过程l软件过程是软件过程是“为了获得

9、软件所需要完成的为了获得软件所需要完成的一系列任务的工作步骤一系列任务的工作步骤”。l软件过程定义了运用方法的顺序、各阶段软件过程定义了运用方法的顺序、各阶段应交付的文档资料、为保证软件质量所要应交付的文档资料、为保证软件质量所要采取的管理措施,以及标志软件开发各个采取的管理措施,以及标志软件开发各个阶段任务完成的结果形式。阶段任务完成的结果形式。l通常用使用生命周期模型来简洁地描述软通常用使用生命周期模型来简洁地描述软件过程,也称为过程模型。件过程,也称为过程模型。2.1 软件过程软件过程l软件过程软件过程是软件工程人员为了获得软件产品而在软件是软件工程人员为了获得软件产品而在软件工具的支持

10、下实施的一系列软件工程活动。工具的支持下实施的一系列软件工程活动。l软件过程软件过程应该明确定义应该明确定义团队人员的工作和职责团队人员的工作和职责所执行的活动及其顺序关系所执行的活动及其顺序关系活动的内容和步骤活动的内容和步骤l软件过程的软件过程的目标目标标准化、预见性、生产率、高质量、计划进标准化、预见性、生产率、高质量、计划进度和预算的能力度和预算的能力2.1 Software ProcesseslStructured set of activities required to deve-lop a software systemSpecificationDesign and Devel

11、opmentValidationEvolutionlActivities vary depending on the organisation and the type of system being developedlMust be explicitly modelled if it is to be managed2.2软件开发模型软件开发模型软件开发模型是软件开发全部过程、活动和软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和过程,明确规定要完成的主要活动、任务和开发策略。开发策略。

12、软件开发模型也常称为:软件开发模型也常称为:软件过程模型软件过程模型软件生存周期模型软件生存周期模型软件工程范型软件工程范型2.2软件开发模型软件开发模型q软件开发模型(又称为软件生存周期模型)软件开发模型(又称为软件生存周期模型)软件项目开发和维护的总体过程思路的框架软件项目开发和维护的总体过程思路的框架。q它它指指出出了了软软件件开开发发过过程程各各阶阶段段之之间间的的关关系系和和顺顺序序,是是软软件件开开发发过过程程的的概概括括。它它为为软软件件开开发发过过程程提提供供原原则则和和方方法法,并并为为软软件件工工程程管管理理提提供供里里程程碑碑和和进进度度表表。因因此此,软软件件开开发发模

13、模型型也也是是软软件件工程的重要内容。工程的重要内容。l软件生存期模型软件生存期模型(也称软件开发模型、软(也称软件开发模型、软件过程模型、软件工程范型)件过程模型、软件工程范型)是跨越整个是跨越整个生存期的系统开发、运作和维护所实施的生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。全部过程、活动和任务的结构框架。l所谓模型就是一种开发策略,这种策略针所谓模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范型,对软件工程的各个阶段提供了一套范型,使工程的进展达到预期的目的。使工程的进展达到预期的目的。2.1软件生存周期模型软件生存周期模型2.2 Software

14、 Process Model(SPM)l软件过程模型是从特定角度呈现的对软件过程的软件过程模型是从特定角度呈现的对软件过程的简化描述。简化描述。l软件过程模型是对实际过程的抽象描述,包括软软件过程模型是对实际过程的抽象描述,包括软件过程的活动、软件产品以及参与人员的不同角件过程的活动、软件产品以及参与人员的不同角色。色。l即如何组织和实施软件过程中各种任务和活动的即如何组织和实施软件过程中各种任务和活动的一种模式。一种模式。l软件过程模型(软件生存周期模型),是把软件软件过程模型(软件生存周期模型),是把软件生存周期中软件生产活动的有序流程用一个合理生存周期中软件生产活动的有序流程用一个合理的

15、框架的框架开发模型规范描述。开发模型规范描述。2.2 软件过程模型软件过程模型l生命期模型:在软件生存期中,按照预定生命期模型:在软件生存期中,按照预定的模式或步骤,使用某些特定的规则和方的模式或步骤,使用某些特定的规则和方法,配以适当的软件工具,进行软件产品法,配以适当的软件工具,进行软件产品的开发、使用和维护;是的开发、使用和维护;是SLC中所实施的中所实施的全部过程、活动和任务的结构框架。全部过程、活动和任务的结构框架。lSPM:SPM即对即对SP的抽象描述,它可以是的抽象描述,它可以是形式化的,半形式的或非形式化的。可以形式化的,半形式的或非形式化的。可以通过人员或计算机系统(过程代理

16、者)的通过人员或计算机系统(过程代理者)的实施活动来完成过程模型所描述的软件过实施活动来完成过程模型所描述的软件过程。(人们对程。(人们对SP的一种认识观)的一种认识观)2.2 软件过程模型软件过程模型l软件过程模型主要是根据软件的类软件过程模型主要是根据软件的类型、规模,特别是软件的开发方法、型、规模,特别是软件的开发方法、开发环境等多种因素确立模型。开发环境等多种因素确立模型。l给出一种组织和开展给出一种组织和开展SLC中各种活中各种活动的方案,包括把动的方案,包括把SLC划分为那些划分为那些阶段,阶段间的关系,每阶段做什阶段,阶段间的关系,每阶段做什么,用什么方法来做,如何管理和么,用什

17、么方法来做,如何管理和检查等等。检查等等。2.2 软件过程模型软件过程模型2.2 软件过程模型软件过程模型l软件过程模型软件过程模型一个过程模型是一个一个过程模型是一个过程的抽象表示。过程的抽象表示。过程模型帮助我们更过程模型帮助我们更好地理解软件开发。好地理解软件开发。模型帮助我们解释事模型帮助我们解释事物如何工作。物如何工作。2.2软件开发模型软件开发模型q软件开发模型的几种类型:软件开发模型的几种类型:以软件需求完全确定为基础的瀑布模型;以软件需求完全确定为基础的瀑布模型;在开发初期仅给出基本需求的渐进式模型,如原型在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;

18、模型、螺旋模型、喷泉模型等;以形式化开发方法为基础的变换模型、基于四代技以形式化开发方法为基础的变换模型、基于四代技术的模型;术的模型;基于知识的智能模型等等。基于知识的智能模型等等。在实际开发时,应根据项目的特点和现有的条件选在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使用以取合适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。便充分利用各模型的优点。2.2 软件过程模型软件过程模型l典型的软件过程模型有:典型的软件过程模型有:瀑布模型(瀑布模型(waterfallmodel)原型模型(原型模型(prototypingmodel)增量模型(

19、增量模型(incrementalmodel)演化模型(演化模型(evolutionarymodel)螺旋模型(螺旋模型(spiralmodel)喷泉模型(喷泉模型(waterfountainmodel)基于构件的开发模型(基于构件的开发模型(component-baseddevelopmentmodel)形式方法模型(形式方法模型(formalmethodsmodel)智能模型智能模型(IntelligentModel)2.2.1瀑布模型瀑布模型瀑布模型(瀑布模型(waterfallmodel)是由是由W.Royce于于1970年提出来的。又称为软件生存周期模年提出来的。又称为软件生存周期模型

20、。型。q瀑布模型严格按照软件生存周期各个阶段来瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作下一阶段的工作。因此,它是一种以文档作为驱动的模型。为驱动的模型。开发开发时期时期运行运行时期时期

21、计划计划时期时期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(维护报告维护报告)(测试报告测试报告)(程序程序)(设计文档设计文档)(需求说明书需求说明书)2.2.1 瀑布模型瀑布模型图图1.3瀑布模型瀑布模型2.2.1 waterfall modellThe linear Sequential2.2.1 瀑布模型瀑布模型l传统的瀑布模型过于理想化,事传统的瀑布模型过于理想化,事实上,人在工作过程中不可能不实上,人在工作过程中不可能不犯错误,评审也并不能保证发现犯错误,评审也并不能保证发现所有错误,潜伏的错误将在后续所有错误,潜伏的错误将在后续阶段被陆续发现。在设计阶段

22、可阶段被陆续发现。在设计阶段可能发现规格说明文档中的错误,能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试现过程中显现出来,在综合测试阶段将发现需求分析、设计或编阶段将发现需求分析、设计或编码阶段的许多错误。发现错误就码阶段的许多错误。发现错误就必须及时改正,因此,实际的瀑必须及时改正,因此,实际的瀑布模型是带布模型是带“反馈环反馈环”的。(图的。(图中实线箭头表示开发过程,虚线中实线箭头表示开发过程,虚线箭头表示维护过程)。箭头表示维护过程)。2.2.1 瀑布模型瀑布模型1)1)把生存期划分成明确的、把生存期划分成明确的、严格的

23、顺序阶段;严格的顺序阶段;2)2)只有在前阶段的阶段性只有在前阶段的阶段性产品完成后,才能开始产品完成后,才能开始下一阶段的工作;下一阶段的工作;3)3)每一阶段都要配合生成每一阶段都要配合生成相应的具体文档;相应的具体文档;4)4)每个阶段的结束都要经每个阶段的结束都要经过严格的复审和确认。过严格的复审和确认。2.2.1 瀑布模型需求分析需求分析7%系统设计系统设计6%软件编程软件编程7%软件测试软件测试13%软件维护软件维护67%用户要求用户要求分析报告分析报告系统设计报告系统设计报告源程序源程序测试报告测试报告更改要求更改要求UAMATMMPUTPUAMPA A 系统分析员系统分析员M

24、M 项目管理员项目管理员P P 程序员程序员T T 高级程序员高级程序员U U 用户用户20%20%15%45%2.2.1 瀑布模型瀑布模型l瀑布模型要点瀑布模型要点把生存期划分成明确的、严格的顺序阶段;把生存期划分成明确的、严格的顺序阶段;只有在前阶段的阶段性产品完成后,才能只有在前阶段的阶段性产品完成后,才能开始下一阶段的工作;开始下一阶段的工作;每一阶段都要配合生成相应的具体文档,它每一阶段都要配合生成相应的具体文档,它们类似于其它工程中的图纸资料,是下一阶们类似于其它工程中的图纸资料,是下一阶段工作的依据,极为重要;段工作的依据,极为重要;每个阶段的结束都要经过一个定性或定量每个阶段的

25、结束都要经过一个定性或定量的复审和确认。的复审和确认。2.2.1 瀑布模型瀑布模型q瀑布模型优点瀑布模型优点q提供了软件开发的基本框架,有利于大型软件开发提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要工具的研究与使用,因此,在软件工程中占有重要的地位。的地位。q瀑布模型是软件工程中应用最广泛的过程模型。瀑布模型是软件工程中应用最广泛的过程模型。q严格规定了每一阶段必须提交的文档。严格规定了每一阶段必须提交的文档。q要求每一阶段交付之产品都必须经过质量保证小组要求每一

26、阶段交付之产品都必须经过质量保证小组的仔细审查。的仔细审查。2.2.1 瀑布模型瀑布模型l致命缺点致命缺点是只有做出精确的需求分析,才是只有做出精确的需求分析,才能取得预期的结果。由于各种客观、主观能取得预期的结果。由于各种客观、主观的原因,需求分析往往不很精确,常常给的原因,需求分析往往不很精确,常常给日后的开发带来隐患。日后的开发带来隐患。l项目开始阶段用户很难精确的提出产品需项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。解,修改需求十分普遍。l项目开发晚期才能得到程序的运行版本,项目开发晚期才能得到程序的

27、运行版本,这时修改软件需求和开发中的错误代价很这时修改软件需求和开发中的错误代价很大。大。2.2.2 瀑布模型瀑布模型的变形的变形u瀑布模型瀑布模型的变形:瀑布模型瀑布模型的变形:b 模型模型 为为为为了了了了描描描描述述述述软软软软件件件件开开开开发发发发过过过过程程程程中中中中可可可可能能能能的的的的回回回回溯溯溯溯,尤尤尤尤其其其其是是是是维维维维护护护护阶阶阶阶段段段段往往往往往往往往要要要要经经经经历历历历上上上上述述述述各各各各个个个个阶阶阶阶段段段段。采采采采用用用用循循循循环环环环模模模模型型型型描述。描述。描述。描述。需求分析需求分析设计设计编码编码测试测试运行运行评价评价计

28、划计划循环模型循环模型循环模型循环模型2.2.2 瀑布模型的变形瀑布模型的变形2.2.3原型模型原型模型q原原型型模模型型(prototypingmodel)的的基基本本框框架架是是软软件件开开发发人人员员根根据据用用户户提提出出的的软软件件基基本本需需求求快快速速开开发发一一个个原原型型/“样样品品”,以以便便向向用用户户展展示示软软件件系系统统应应有有的的部部分分或或全全部部功功能能和和性性能能,在在征征求求用用户户对对原原型型的的评评价价意意见见后后,进进一一步步使使需需求求精精确确化化、完完全全化化,并并据据此此改改进进、完完善善原原型型,如如此此迭迭代代,直直到到软软件件开开发发人人

29、员员和和用用户户都都确确认认软软件件系系统统的的需需求并达成一致的理解为止。求并达成一致的理解为止。快速分析快速分析快速快速设计设计建造建造原型原型运行运行评价原型评价原型对原型修对原型修改完善改完善产品样品产品样品(需求确认需求确认)开始开始停止停止使用原型的过程使用原型的过程2.2.3 快速原型模型快速原型模型l原型是软件的一个早期原型是软件的一个早期可运行可运行的版本,它的版本,它反映了最终系统的部分重要特性。反映了最终系统的部分重要特性。l原型化方法的基本思想是原型化方法的基本思想是花费少量代价快花费少量代价快速速建立一个可运行的系统,使用户及早获建立一个可运行的系统,使用户及早获得学

30、习的机会,原型化方法又称快速原型得学习的机会,原型化方法又称快速原型法(法(RapidPrototyping)。)。l强调的是软件开发人员与用户的不断交互,强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的通过原型的演进不断适应用户任务改变的需求。需求。1.1.快快速速分分析析 快快速速确确定定软软件件系系统统的的基基本本要要求求,确确定定原原型型所所要要体体现现的的特特征征(界界面面,总总体体结构,功能,性能结构,功能,性能)2.2.构构造造原原型型 在在快快速速分分析析的的基基础础上上,根根据据基基本本规规格格说说明明,忽忽略略细细节节,只只考考虑虑主主要要特特征征

31、,快速构造一个可运行的系统。快速构造一个可运行的系统。3.3.运运行行和和评评价价原原型型 用用户户试试用用原原型型并并与与开开发发者者之之间间频频繁繁交交流流,发发现现问问题题,目目的的是是验验证证原型的正确性。原型的正确性。4.4.修修改改与与改改进进 对对原原型型进进行修改,增删。行修改,增删。快速分析快速分析快速设计快速设计建造原型建造原型运行评价原型运行评价原型修改完善修改完善原型原型产品样品产品样品(需求确认需求确认)开开始始停停止止使用原型的过程使用原型的过程2.2.3 快速原型模型快速原型模型lThe Prototyping2.2.3 快速原型模型快速原型模型l快速原型的用途有

32、:快速原型的用途有:1)模拟软件系统的人机界面和人机交)模拟软件系统的人机界面和人机交互方式;互方式;2)开发一个工作原型,对软件系统中)开发一个工作原型,对软件系统中重要的或容易产生误解的功能和其他需重要的或容易产生误解的功能和其他需求进行验证;求进行验证;3)用于导出更多更准确的用户需求;)用于导出更多更准确的用户需求;4)对没有把握的技术、方案等进行验)对没有把握的技术、方案等进行验证。证。2.2.3 快速原型模型快速原型模型l原型的开发原型的开发/构造构造软件原型(软件原型(prototype)是可执行;)是可执行;强调强调“快速快速”和低成本。和低成本。因而因而l应尽量采用有效的软件

33、工具和环境。例如应尽量采用有效的软件工具和环境。例如采用软件重用技术、釆用基于构件的软件采用软件重用技术、釆用基于构件的软件开发方法。开发方法。l或利用一个或几个类似的正在运行的软件或利用一个或几个类似的正在运行的软件向用户展示软件需求中的部分或全部功能。向用户展示软件需求中的部分或全部功能。l其初始版本和中间版本在运行效率方面可其初始版本和中间版本在运行效率方面可做出让步,以便尽快提供。做出让步,以便尽快提供。用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户意见户意见?2.2.3 快速原型模型快速原型模型l原型模型原型模型(RapidPrototypeModel

34、)?2.2.3 快速原型模型快速原型模型l原型的使用策略:原型的使用策略:废弃(废弃(throwaway)/抛弃式策略抛弃式策略l主要用于探索型和实验型原型的开发。这些原型主要用于探索型和实验型原型的开发。这些原型关注于目标系统的某些特性,而不是全部特性,关注于目标系统的某些特性,而不是全部特性,开发这些原型时通常不考虑与探索或实验目的无开发这些原型时通常不考虑与探索或实验目的无关的功能、质量、结构等因素,这种原型通常被关的功能、质量、结构等因素,这种原型通常被废丢,然后根据探索或实验的结果用良好的结构废丢,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统。和设计思想重新设计目标

35、系统。追加追加(addon)策略;进化策略;进化/演化型演化型(evolutionary)l主要用于演化型原型的开发。这种原型通常是实主要用于演化型原型的开发。这种原型通常是实现了目标系统中已明确定义的特性的一个子集,现了目标系统中已明确定义的特性的一个子集,通过对它的不断修改和扩充,逐步追加新的要求,通过对它的不断修改和扩充,逐步追加新的要求,最后使其演化成最终的目标系统。最后使其演化成最终的目标系统。2.2.3 快速原型模型快速原型模型l抛弃式原型模型的特点抛弃式原型模型的特点抛弃式原型模型建立原型的目的是,评价目抛弃式原型模型建立原型的目的是,评价目标系统的某一个或某一些特性,以便更准确

36、标系统的某一个或某一些特性,以便更准确地确定需求,或者更严格地验证设计方案。地确定需求,或者更严格地验证设计方案。使用完之后就把该原型系统抛弃掉,然后再使用完之后就把该原型系统抛弃掉,然后再重新构造正式的目标系统。重新构造正式的目标系统。抛弃式原型模型本质上仍属于瀑布模型,建抛弃式原型模型本质上仍属于瀑布模型,建立原型系统只不过是立原型系统只不过是“需求分析需求分析”和和“有效有效性验证性验证”的一种辅助手段,需求分析阶段结的一种辅助手段,需求分析阶段结束时原型系统的生存周期也就终止。束时原型系统的生存周期也就终止。用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户

37、意见户意见2.2.3 快速原型模型快速原型模型u抛弃式原型模型抛弃式原型模型2.2.3 快速原型模型快速原型模型l抛弃式原型模型抛弃式原型模型需求分析需求分析软件维护(运行时期)软件维护(运行时期)抛弃式原型模型抛弃式原型模型退退役役原型开发原型开发原型评价原型评价软件设计软件设计软件实现软件实现用户反馈用户反馈2.2.3 快速原型模型快速原型模型l抛弃式原型模型抛弃式原型模型通常,用户试用原型系统之后会提出许多修通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用改原型系统,然后再次请用户试用。一。一

38、旦用户认为这个原型系统确实能做他们所需旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足文档,根据这份文档开发出的软件可以满足用户的真实需求。用户的真实需求。当快速原型的某个部分是利用软件工具由计当快速原型的某个部分是利用软件工具由计算机自动生成的时候,可以把这部分用到最算机自动生成的时候,可以把这部分用到最终的软件产品中。终的软件产品中。2.2.3 快速原型模型快速原型模型l进化式原型模型:进化式原型模型:目标系统是对实验性原型不断扩充、完目标系统是对实验性原型不断扩充、完善送代的结果。每次

39、迭代都要求再分析、善送代的结果。每次迭代都要求再分析、再设计、再实现以及再测试评价。当认再设计、再实现以及再测试评价。当认为问题求解基本满意时就可以交付系统为问题求解基本满意时就可以交付系统的初始版本了。演化原型法的实施要求的初始版本了。演化原型法的实施要求用户和开发人员在一个相当长的时期中用户和开发人员在一个相当长的时期中对信息交流和系统修改持一种开放的态对信息交流和系统修改持一种开放的态度。许多面向市场的软件产品采用所谓度。许多面向市场的软件产品采用所谓版发布,就是施行演化原型法开发的版发布,就是施行演化原型法开发的一种策略。一种策略。2.2.3 快速原型模型快速原型模型l进化式原型模型进

40、化式原型模型建建立立原原型系统型系统修改修改原型原型符符合合用用户户需需要要的的应应用用系统系统用用户户试用试用反反馈馈意见意见2.2.3 快速原型模型快速原型模型l进化式原型模型存在的问题:进化式原型模型存在的问题:要求软件具有开放的结构是这种模型固有的要求软件具有开放的结构是这种模型固有的困难。困难。1、没有考虑软件的整体质量和长期的可维护、没有考虑软件的整体质量和长期的可维护性。性。2、大部分情况是不合适的操作算法被采用目、大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工具被采用的为了演示功能,不合适的开发工具被采用仅仅为了它的方便,还有不合适的操作系统仅仅为了它的方便

41、,还有不合适的操作系统被选择等等。被选择等等。3、由于达不到质量要求产品可能被抛弃,而、由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计。采用新的模型重新设计。2.2.3 快速原型模型快速原型模型q原型模型的适应场合原型模型的适应场合q原型模型比瀑布模型更符合人们认识事物原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。的过程和规律,是一种较实用的开发框架。q它适合于那些不能预先确切定义需求的软它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)(包括分析员、设计员、程序

42、员和用户)不能很好交流或通信有困难的情况。不能很好交流或通信有困难的情况。q小型或中等规模的交互式系统,例如用户小型或中等规模的交互式系统,例如用户界面。界面。2.2.4 增量模型增量模型(incremental model)l增量模型也称为渐增模型。增量模型也称为渐增模型。l增量模型是一种非整体开发的模型。根据增量的增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为方式和形式的不同,分为基于瀑布模型的渐增模基于瀑布模型的渐增模型型和和基于原型的渐增模型基于原型的渐增模型。l该模型具有较大的灵活性,适合于软件需求不明该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险

43、的软件项目。确、设计方案有一定风险的软件项目。l增量模型和瀑布模型之间的本质区别是:瀑布模增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件。或所有阶段中的细节,从而较早地产生工作软件。2.2.3 增量模型增量模型l增量模型(增量模型(IncrementalModel)把软件把软件描述、设计、实现活动分解成一系列

44、相互描述、设计、实现活动分解成一系列相互有联系的增量构件的迭代开发,是瀑布模有联系的增量构件的迭代开发,是瀑布模型顺序特征和快速原型模型迭代特征相结型顺序特征和快速原型模型迭代特征相结合的一种软件构件化的模型。合的一种软件构件化的模型。l增量式的开发过程,首先根据客户需要提增量式的开发过程,首先根据客户需要提供的服务的优先次序,确定一系列交付增供的服务的优先次序,确定一系列交付增量,每个增量提供系统功能的一个子集。量,每个增量提供系统功能的一个子集。随着开发过程的进展,每次迭代产生一个随着开发过程的进展,每次迭代产生一个可发布的(可执行的)软件增量构件。可发布的(可执行的)软件增量构件。定定义

45、 设计 框架需求框架需求 体系体系结构构 增量增量1分析分析设计编码测试交付交付(核心(核心产品)品)增量增量2分析分析设计编码测试交付交付 增量增量n分析分析设计编码测试交付交付 最最终 软件系件系统 2.2.4 增量模型增量模型(incremental model)2.2.4 增量模型增量模型(incremental model)增量进化模型增量进化模型(Incremental Model)(Incremental Model)l软件被作为一系列的增量构件来设计、实现、集成软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形和测试,每一个构件是由多种相互

46、作用的模块所形成的提供特定功能的代码片段构成成的提供特定功能的代码片段构成l第一个增量往往是实现基本需求的核心产品。核心第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直的发布。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。到产生最终的完善产品。2.2.4 增量进化模型增量进化模型l增量模型融合了线性顺序模型的基本成分增量模型融合了线性顺序模型的基本成分(重复地应用)和原

47、型实现的迭代特征。(重复地应用)和原型实现的迭代特征。l增量模型采用随着日程时间的进展而交错增量模型采用随着日程时间的进展而交错的线性序列。的线性序列。l每一个线性序列产生软件的一个可发布的每一个线性序列产生软件的一个可发布的“增量增量”。l第一个增量往往是核心的产品。第一个增量往往是核心的产品。l客户对每一个增量的使用和评估,都做为客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能。下一个增量发布的新特征和功能。2.2.4 增量进化模型增量进化模型分析分析 设计设计 编码编码测试测试 分析分析 设计设计 编码编码测试测试 分析分析 设计设计 编码编码测试测试 分析分析 设计设计

48、 编码编码测试测试 增量增量1 1增量增量2 2增量增量3 3增量增量n n 增量增量1 1交付交付客户客户 增量增量2 2交付交付客户客户 增量增量3 3交付交付客户客户 增量增量n n交付交付客户客户日历时间日历时间.2.2.5 螺旋模型螺旋模型q螺螺旋旋模模型型(spiralmodel)是是B.Boehm于于1988年年提提出出的的。它它综综合合了了瀑瀑布布模模型型和和原原型型模模型型的的优优点点,即即将将两两者者结结合合,并并加加入入了了风风险分析险分析机制。机制。q进化进化(演化演化)软件过程模型软件过程模型2.2.5 螺旋模型螺旋模型p螺旋模型的应用螺旋模型的应用1四个组成部分,七

49、个步骤四个组成部分,七个步骤l5余金山,软件开发过程及其模型余金山,软件开发过程及其模型2适用于大型软件的开发;能结合多种适用于大型软件的开发;能结合多种软件开发方法,如面向规格说明的,面软件开发方法,如面向规格说明的,面向过程的和面向对象的。向过程的和面向对象的。3对模型图对模型图553的理解的理解 螺螺旋旋模模型型 螺螺旋旋模模型型将将瀑瀑布布模模型型和和增增量量模模型型结结合合起起来来,并并加加入入了风险分析。了风险分析。螺旋模型将开发过程螺旋模型将开发过程分为几个螺旋周期,分为几个螺旋周期,每个螺旋周期可分为每个螺旋周期可分为4 4个工作步骤:个工作步骤:1.1.确定目标、方案确定目标

50、、方案和限制条件;和限制条件;2.2.评估方案、标识评估方案、标识风险和解决风险;风险和解决风险;3.3.开发确认产品;开发确认产品;4.4.计划下一周期工计划下一周期工作。作。螺旋模型螺旋模型2.2.6 喷泉模型喷泉模型(Fountain(Fountain Model)Model)l由由B.H.Sollers和和J.M.Edwards于于1990年提年提出。出。l喷泉模型对软件复用和生存期中多项开发喷泉模型对软件复用和生存期中多项开发活动的集成提供了支持,主要支持面向对活动的集成提供了支持,主要支持面向对象的开发方法。象的开发方法。喷泉喷泉一词本身体现了迭一词本身体现了迭代和无间隙特性。系统

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档 > 其他

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922