02 软件生命周期与开发模型

上传人:桔**** 文档编号:579121474 上传时间:2024-08-25 格式:PPT 页数:60 大小:400.52KB
返回 下载 相关 举报
02 软件生命周期与开发模型_第1页
第1页 / 共60页
02 软件生命周期与开发模型_第2页
第2页 / 共60页
02 软件生命周期与开发模型_第3页
第3页 / 共60页
02 软件生命周期与开发模型_第4页
第4页 / 共60页
02 软件生命周期与开发模型_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《02 软件生命周期与开发模型》由会员分享,可在线阅读,更多相关《02 软件生命周期与开发模型(60页珍藏版)》请在金锄头文库上搜索。

1、1软件生命周期模型概论软件生命周期模型概论2瀑布模型(瀑布模型(waterfall model)3增量模型(增量模型(incremental model)4原型模型(原型模型(prototyping model)5迭代模型(迭代模型(iterative model)6螺旋模型(螺旋模型(spiral model)7喷泉模型(喷泉模型(fountaiin model)8XP模型(模型(eXtreme Progamming model)1学习目标学习目标掌握软件生命周期的阶段掌握软件生命周期的阶段掌握常用的软件生命周期模型的掌握常用的软件生命周期模型的本意、特点、选用条件本意、特点、选用条件2一、

2、一、软件生命周期模型概论软件生命周期模型概论 1.生命周期生命周期2.软件生命周期软件生命周期3.软件生命周期模型软件生命周期模型3生命周期生命周期任何生命或事物从出现到消失的全过程。任何生命或事物从出现到消失的全过程。任何有生命的动物、植物和人,都有一个生命周期(Life Cycle)。例如,人的生命周期如表2-2 所示。 即使是没有生命的事物或实体,例如,PC机、路由器、家具、房子、汽车,它们也有一个生命周期,这个生命周期就是使用寿命,即使用周期。4软件生命周期软件生命周期软件开发过程软件开发过程有时称为软件生命周期有时称为软件生命周期(software life cycle),因为它描述

3、了一件),因为它描述了一件软件产品的生命:从它的概念到实现、交付、软件产品的生命:从它的概念到实现、交付、使用、维护、退役。使用、维护、退役。软件生软件生命命周期分为如下几个阶段周期分为如下几个阶段:立项与合:立项与合同、同、需求分析需求分析、软件、软件设计设计(概要设计详细(概要设计详细设计)、编码设计)、编码实现实现、软件、软件测试测试、软件发布与、软件发布与实施、软件实施、软件维护维护、版本更新或退役、版本更新或退役 5软件生命周期模型软件生命周期模型软件生命周期模型是指在整个软件生命周期软件生命周期模型是指在整个软件生命周期中,软件开发活动应遵循的开发路线图。或:中,软件开发活动应遵循

4、的开发路线图。或:软件生命周期模型是软件开发全部过程、活软件生命周期模型是软件开发全部过程、活动和任务的结构框架。动和任务的结构框架。描述描述软件开发的过程及其活动和任务软件开发的过程及其活动和任务。常见的软件生命周期模型:常见的软件生命周期模型:瀑布模型原型模型迭代模型增量模型6不同的软件生命周期模型,可能对应着不不同的软件生命周期模型,可能对应着不同的生命周期。为什么?同的生命周期。为什么?因为因为生命周期不同,该软件的开发阶段划生命周期不同,该软件的开发阶段划分、评审次数、基线标准、产品发布、维分、评审次数、基线标准、产品发布、维护方式都有所不同。护方式都有所不同。7二、瀑布模型二、瀑布

5、模型8 1970年年W.Royce提出瀑布模型提出瀑布模型1.模型的本意模型的本意:阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性l2.模型的模型的特点特点:文档驱动过程不可逆转l3.模型的模型的选择条件选择条件:(1)在开发时间内需求没有或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目(对目标、环境很熟悉)。(4)用户使用环境很稳定。(5)用户除提出需求以外,很少参与开发工作。94.模型的优点模型的优点 :开发阶段清晰,便于评审、开发阶段清晰,便于评审、审计、跟踪、管理和控制。审计、跟踪、管理和控制。 5.模型的缺点模型的缺点传统的项目组织方法是按顺序完成每个工作流程,即瀑

6、布式生命周期。瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错误的传递会采取发散扩大的方式。 106.改进措施改进措施为了克服该模型的缺陷,微软采取严格的里程碑管理制度。CMM/CMMI则采取阶段评审和不符合项(Noncompliance Items)的动态跟踪制度,只有前一阶段的不符合项全部改正后,才允许开发人员进入后一阶段的工作。所谓不符合项,就是在评审中发现的问题项,它与所谓不符合项,就是在评审中发现的问题项,它与Bug既有联系,又有区别。对于这些不符合项,软既有联系,又有区别。对于这些不符合项,软件管

7、理部门要列出表格,记录在案,确定责任人,件管理部门要列出表格,记录在案,确定责任人,限定改正时间,动态跟踪到底。限定改正时间,动态跟踪到底。 11三、增量模型三、增量模型第第1次次集成集成第第1块积木木第第2次次集成集成第第1块积木木第第2块积木木第第3次次集成集成第第1块积木木第第2块积木木第第3块积木木第第4次次集成集成第第1块积木木第第2块积木木第第3块积木木第第4块积木木第第N次次集成集成第第1块积木木第第2块积木木第第3块积木木第第4块积木木第第N块积木木121模型的本意模型的本意要开发一个大的软件系统,先开发其中的要开发一个大的软件系统,先开发其中的一个一个核心模块核心模块(或子系

8、统),然后再开发(或子系统),然后再开发其他模块(或子系统),这样一个个模块其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就像搭积木一(或子系统)地增加上去,就像搭积木一样,直至整个系统开发完毕为止。样,直至整个系统开发完毕为止。在每增加一个模块前,先要对该模块进行在每增加一个模块前,先要对该模块进行模块测试模块测试。通过后再将此模块加入到系统。通过后再将此模块加入到系统中,然后还要进行中,然后还要进行系统集成测试系统集成测试。系统集。系统集成测试成功后,再增加新的模块。成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。这样多次循环,直到系统搭建完毕为止。 132

9、模型的特点模型的特点(1)任务或功能模块驱动任务或功能模块驱动,可以分阶段提,可以分阶段提交产品。交产品。(2)有)有多个任务单多个任务单,这些多个任务单的集,这些多个任务单的集合,构成项目的一个总合,构成项目的一个总任务书任务书,或总,或总用户需求报告用户需求报告/需求规格说明书需求规格说明书。 143选择模型的条件选择模型的条件(1)在整个项目开发过程中,)在整个项目开发过程中,需求需求都可能都可能发生发生变化变化,客户接受分阶段交付。,客户接受分阶段交付。(2)分析设计人员对应用领域)分析设计人员对应用领域不熟悉不熟悉,难,难以一步到位。以一步到位。(3)中等或高)中等或高风险风险项目(

10、工期过紧且可分项目(工期过紧且可分阶段提交的系统或目标、环境不熟悉)。阶段提交的系统或目标、环境不熟悉)。(4)用户可参与用户可参与到整个软件开发过程中。到整个软件开发过程中。(5)使用面向对象语言或第四代语言。)使用面向对象语言或第四代语言。(6)软件公司自己有较好的类库、构件库。)软件公司自己有较好的类库、构件库。154模型的优点模型的优点(1)由于将一个大系统分解为多个小系统,)由于将一个大系统分解为多个小系统,这就等于将一个大这就等于将一个大风险分解风险分解为多个小风险,为多个小风险,从而降低了开发难度。从而降低了开发难度。(2)人员分配灵活人员分配灵活,刚开始不用投入大量,刚开始不用

11、投入大量人力资源。如果核心模块产品很受欢迎,人力资源。如果核心模块产品很受欢迎,则可增加人力实现下一个增量。当配备的则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。即可提供了一种先推出核心产品的途径。即可先发布部分模块给客户,对客户起到镇静先发布部分模块给客户,对客户起到镇静剂的作用。剂的作用。 165模型的缺点模型的缺点如果软件系统的组装和拆卸性不强,或开如果软件系统的组装和拆卸性不强,或开发人员全局把握水平不高(没有数据库设发人员全局把握水平不高(没有数据库设计专家进行系统集成),或者客户不同意计专

12、家进行系统集成),或者客户不同意分阶段提交产品,或者开发人员过剩,就分阶段提交产品,或者开发人员过剩,就不宜采用这种模型。不宜采用这种模型。 17原型原型的解释的解释:预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建。四、原型模型四、原型模型部署交付和部署交付和反馈反馈构建原型构建原型交流交流快速设计方式快速设计方式建模建模快速计划快速计划18原型模型原型模型 许多软件公司在生产软件产品与实施软件项许多软件公司在生产软件产品与实施软件项目时,经常采用一种目时,经常采用一种“原型法原型法”,它来源于

13、,它来源于原型模型,下面就介绍这种模型。原型模型,下面就介绍这种模型。1模型的本意模型的本意原型模型(原型模型(Prototype Model)的本意是:)的本意是:在初步在初步需求分析之后需求分析之后,马上向客户,马上向客户展示展示一个一个软件软件产品原型产品原型(样品样品),对客户进行培训,让,对客户进行培训,让客户试用,在试用中收集客户意见,根据客客户试用,在试用中收集客户意见,根据客户意见立刻户意见立刻修改原型修改原型,之后再让客户试用,之后再让客户试用,反复循环几次,直到客户确认为止。反复循环几次,直到客户确认为止。 19原型模型很适合于企业资源规划原型模型很适合于企业资源规划ERP

14、(Enterprise Resource Planning)系)系统,尽管市场上推出了许多公司的分行业统,尽管市场上推出了许多公司的分行业ERP“产品产品”,但是这些,但是这些“产品产品”的产品化的产品化程度相当低,都必须在实施中做大量的客程度相当低,都必须在实施中做大量的客户化工作。户化工作。有些公司的分行业有些公司的分行业ERP“产品产品”称作称作“分行分行业解决方案业解决方案”,这个,这个“分行业解决方案分行业解决方案”就是分行业的原型,即快速原型法中的原就是分行业的原型,即快速原型法中的原型。型。 202模型的特点模型的特点原型驱动原型驱动。因此,开发者必须先有一个原。因此,开发者必须

15、先有一个原型型(样品样品),至少要有一个原型的核心。,至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循环原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。不同点是:原几次,直到客户确认为止。不同点是:原型模型事先有一个展示性的产品原型型模型事先有一个展示性的产品原型(样品样品),而迭代模型可能没有。,而迭代模型可能没有。 213选择模型的条件选择模型的条件(1)已有产品或产品的原型已有产品或产品的原型(样品样品),只需,只需客户化的工程项目。客户化的工程项目。(2)简单而熟悉简单而熟悉的行业或领域。的行业或领域。(3)有快速原型开发)有快速原型开发工具工具。(4)进行产品)

16、进行产品移植或升级移植或升级。由于上述条件不太苛刻,所以凡是有软件由于上述条件不太苛刻,所以凡是有软件产品的产品的IT企业,在他们熟悉的业务领域内,企业,在他们熟悉的业务领域内,当客户招标时,他们都会以原型模型作为当客户招标时,他们都会以原型模型作为软件开发模型,去制作投标书,去讲解标软件开发模型,去制作投标书,去讲解标投标。投标。 224模型的优点模型的优点开发速度快,用户意见反馈实时开发速度快,用户意见反馈实时,有利于,有利于开发商在短时间内推广并实施多个客户。开发商在短时间内推广并实施多个客户。正因为原型模型具有这些优点,所以它一正因为原型模型具有这些优点,所以它一直是软件企业界的主流开

17、发模型。凡是有直是软件企业界的主流开发模型。凡是有软件产品积累的软件公司,他们在投标、软件产品积累的软件公司,他们在投标、开发、实施项目的过程中,都非常喜欢用开发、实施项目的过程中,都非常喜欢用原型模型。原型模型。5模型的缺点模型的缺点因为事先有一个展示性的产品原型,所以因为事先有一个展示性的产品原型,所以在在一定程度上,不利于开发人员的创新一定程度上,不利于开发人员的创新。 236快速原型法快速原型法由于原型模型的开发速度较快,有时也将它称作快由于原型模型的开发速度较快,有时也将它称作快速原型法(速原型法(Rapid Prototyping)。)。在开发工具和开发环境迅速发展的今天,在信息系

18、在开发工具和开发环境迅速发展的今天,在信息系统开发中,原型法和快速原型法又被赋予新的内容:统开发中,原型法和快速原型法又被赋予新的内容:事先没有原型产品,也可以采取这种办法事先没有原型产品,也可以采取这种办法。基本思路是:采用以面向元数据为主的方法,在需基本思路是:采用以面向元数据为主的方法,在需求分析的基础上,利用求分析的基础上,利用Power Designer等数据库等数据库分析和设计工具,快速建立信息系统的概念数据模分析和设计工具,快速建立信息系统的概念数据模型型CDM和物理数据模型和物理数据模型PDM;然后利用面向对象;然后利用面向对象的编程工具,快速地实现需求分析中确认的流程、的编程

19、工具,快速地实现需求分析中确认的流程、功能、性能和接口;之后交付给用户试用,反复循功能、性能和接口;之后交付给用户试用,反复循环几次,直到客户确认满意为止。环几次,直到客户确认满意为止。 24【例例2-1】 1996年年8月,当时的某高级工程师,月,当时的某高级工程师,带领一个熟练的程序员,来到营口港务局通信中带领一个熟练的程序员,来到营口港务局通信中心,开发该中心的电话业务信息管理系统。心,开发该中心的电话业务信息管理系统。当时,虽然这两个人手中并无什么当时,虽然这两个人手中并无什么“原型原型”,但,但是他俩一个是数据库设计高手,一个是编程高手,是他俩一个是数据库设计高手,一个是编程高手,所

20、以俩人分工负责,一人设计数据库,一人编写所以俩人分工负责,一人设计数据库,一人编写程序,双方配合默契,只用一个多月时间,就圆程序,双方配合默契,只用一个多月时间,就圆满地完成了开发任务,收回了全部开发费用,获满地完成了开发任务,收回了全部开发费用,获得了客户的好评。得了客户的好评。这是一个典型的这是一个典型的“快速原型法快速原型法”例子。例子。 25快速原型法选择的条件之一快速原型法选择的条件之一是:项目组中是:项目组中有有数据库分析和设计的专家数据库分析和设计的专家,有,有面向对象面向对象编程的专家编程的专家,文档制作有成熟的模板,而,文档制作有成熟的模板,而且系统或项目又不是非常大。且系统

21、或项目又不是非常大。快速原型法选择的条件之二快速原型法选择的条件之二是:项目组的是:项目组的开发环境为开发环境为分行业的业务基础平台分行业的业务基础平台(比如比如Justep X3业务基础平台业务基础平台),该业务基础平,该业务基础平台又完全适合所需开发的系统或项目,而台又完全适合所需开发的系统或项目,而且系统或项目又不是非常大。且系统或项目又不是非常大。以上两个条件,只要符合一个,就可以采以上两个条件,只要符合一个,就可以采用快速原型法。用快速原型法。 26原型的类型:原型的类型:探索型探索型:弄清要求,确定特性,并探讨多种方:弄清要求,确定特性,并探讨多种方案的可行性案的可行性实验型实验型

22、:大规模开发和实现前,验证方案或算:大规模开发和实现前,验证方案或算法的合理性。法的合理性。演化型演化型:原型作为目标系统的一部分。:原型作为目标系统的一部分。原型的使用策略:原型的使用策略:废弃(废弃(throw away)策略策略:用于探索型和实验:用于探索型和实验型原型。型原型。追加(追加(add on)策略策略:用于演化型原型。:用于演化型原型。原型可作为单独的过程模型,也常被作为一原型可作为单独的过程模型,也常被作为一种方法或实现技术应用于其它过程模型中。种方法或实现技术应用于其它过程模型中。 27五、五、 迭代模型迭代模型 (Iterative Model)代表:代表:RUP(Ra

23、tional Unified Process)模型)模型28所谓所谓迭代,是指活动的多次重复迭代,是指活动的多次重复。从这个。从这个意义上讲,原型不断完善和增量不断产生,意义上讲,原型不断完善和增量不断产生,都是迭代的过程。但都是迭代的过程。但这里所讲的迭代模型这里所讲的迭代模型是是RUP推出的一种推出的一种“逐步求精逐步求精”的面向对的面向对象的软件开发过程模型象的软件开发过程模型,被认为软件界,被认为软件界迄迄今为止最完善的、商品化的开发过程模型今为止最完善的、商品化的开发过程模型。291模型的本意模型的本意多次执行各个开发工作流程多次执行各个开发工作流程,从而更好地理解需求,从而更好地理

24、解需求,设计出更为强壮的软件构架,逐步提高开发组织能设计出更为强壮的软件构架,逐步提高开发组织能力,最终交付一系列逐步完善的实施成果,这就是力,最终交付一系列逐步完善的实施成果,这就是迭代式生命周期模型迭代式生命周期模型。每次按顺序完成这一系列工作流程就叫做每次按顺序完成这一系列工作流程就叫做一次迭代一次迭代,每次迭代,均以次要里程碑结束,按照特定的迭代每次迭代,均以次要里程碑结束,按照特定的迭代成功标准,对迭代的结果进行评估。每个阶段都可成功标准,对迭代的结果进行评估。每个阶段都可以进一步细分为迭代。以进一步细分为迭代。迭代是产生可执行的产品发布的完整开发循环,所迭代是产生可执行的产品发布的

25、完整开发循环,所发布的产品是开发过程最终产品的发布的产品是开发过程最终产品的子集子集,它将通过,它将通过一次又一次的迭代,实现递增成长,最后形成最终一次又一次的迭代,实现递增成长,最后形成最终的软件系统或的软件系统或产品产品。 302模型的特点模型的特点迭代或迭代循环驱动迭代或迭代循环驱动,每一次迭代或迭代循,每一次迭代或迭代循环,均要走完初始(先启)、精化、构建、环,均要走完初始(先启)、精化、构建、产品化产品化(移交移交)这四个阶段。这四个阶段。RUP的主要特征的主要特征如下:如下:1.采用迭代的、增量式的开发过程采用迭代的、增量式的开发过程;2.采用采用UML语言描述软件开发过程语言描述

26、软件开发过程;3.有功能有功能强大强大的软件的软件工具工具Rational Rose支撑支撑。313模型的选取条件模型的选取条件 (1)项目组的管理人员和核心成员,)项目组的管理人员和核心成员,应对迭代的开发应对迭代的开发方式比较熟悉方式比较熟悉。(2)管理人员和核心成员)管理人员和核心成员应对软件工程的核心过程应对软件工程的核心过程:系统建模、需求分析、系统设计、系统实现、项目管系统建模、需求分析、系统设计、系统实现、项目管理、配置管理、测试等理、配置管理、测试等比较熟悉比较熟悉。(3) 采用面向对象技术(如采用面向对象技术(如OOA,OOD等)的项等)的项目组目组,建议使用迭代式生命周期。

27、,建议使用迭代式生命周期。(4)项目组的)项目组的核心设计人员,应具备一定程度的软件核心设计人员,应具备一定程度的软件架构的知识,并熟练掌握软件架构设计技能架构的知识,并熟练掌握软件架构设计技能。(5)项目组全体成员应)项目组全体成员应熟悉熟悉UML,并能利用建模工,并能利用建模工具(如具(如Rational Rose等)等)进行分析、策划、设计、测进行分析、策划、设计、测试等。试等。(6)项目组的)项目组的管理人员应具备风险管理的知识和技能管理人员应具备风险管理的知识和技能。(7)拥有实施软件产品开发、组装的软件组织拥有实施软件产品开发、组装的软件组织。324模型的四个阶段模型的四个阶段(1

28、)初始阶段初始阶段。本阶段主要工作是确定系。本阶段主要工作是确定系统的业务用况和定义项目的范围。统的业务用况和定义项目的范围。(2)精化阶段精化阶段。本阶段主要工作是分析问。本阶段主要工作是分析问题域、细化产品定义,定义系统的构架并题域、细化产品定义,定义系统的构架并建立基线,为构建阶段的设计和实施工作建立基线,为构建阶段的设计和实施工作提供一个稳定的基础。提供一个稳定的基础。(3)构建阶段构建阶段。本阶段主要工作是反复地。本阶段主要工作是反复地开发,以完善产品,达到用户的要求。开发,以完善产品,达到用户的要求。(4)产品化产品化(移交移交)阶段阶段。本阶段主要工作。本阶段主要工作是将产品交付

29、给用户,包括安装、培训、是将产品交付给用户,包括安装、培训、交付、维护等工作。交付、维护等工作。 335模型的九个核心流程模型的九个核心流程 (1)业务建模。)业务建模。 (2)需求获取。)需求获取。 (3)分析设计。)分析设计。 (4)实施。)实施。 (5)测试。)测试。 (6)部署。)部署。 (7)配置与变更管理。)配置与变更管理。 (8)项目管理。)项目管理。 (9)环境。)环境。 346模型的优点模型的优点在开发早期或中期,在开发早期或中期,用户需求可以变化用户需求可以变化;在迭代在迭代之初,它不要求有一个相近的产品原型之初,它不要求有一个相近的产品原型;模型的;模型的适用范围很广适用

30、范围很广,几乎适用于所有的项目开发。,几乎适用于所有的项目开发。7模型的缺点模型的缺点传统的项目组织方法是按顺序(一次且仅一次)传统的项目组织方法是按顺序(一次且仅一次)完成每个工作流程,即瀑布式生命周期。迭代模完成每个工作流程,即瀑布式生命周期。迭代模型是采取循环的工作方式,每次循环均使工作产型是采取循环的工作方式,每次循环均使工作产品更靠近目标产品一次,这就品更靠近目标产品一次,这就要求项目组成员具要求项目组成员具有很高的水平并掌握先进的开发工具有很高的水平并掌握先进的开发工具。 35六、六、 螺旋模型螺旋模型 1模型的本意模型的本意螺旋模型螺旋模型将瀑布模型和快速原型模型结合将瀑布模型和

31、快速原型模型结合起来起来,强调了其它模型所忽视的,强调了其它模型所忽视的风险分析风险分析,特别适合于大型复杂的系统。特别适合于大型复杂的系统。螺旋模型基本做法是在瀑布模型的螺旋模型基本做法是在瀑布模型的每一个每一个开发阶段前,引入一个非常严格的风险识开发阶段前,引入一个非常严格的风险识别、风险分析和风险控制别、风险分析和风险控制,它把软件项目,它把软件项目分解成一个个小项目。每个小项目都标识分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风一个或多个主要风险,直到所有的主要风险因素都被确定。如图险因素都被确定。如图2-4所示。所示。 3637螺旋模型沿着螺线顺时针方向进行

32、若干次螺旋模型沿着螺线顺时针方向进行若干次迭代,图中的迭代,图中的四个象限四个象限代表了以下迭代活代表了以下迭代活动:动:(1)制定计划:确定软件目标,选定实施)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑)风险分析:分析评估所选方案,考虑如何识别和消除风险;如何识别和消除风险;(3)实施工程:实施软件开发和验证;)实施工程:实施软件开发和验证;(4)客户评估:评价开发工作,提出修正)客户评估:评价开发工作,提出修正建议,制定下一步计划。建议,制定下一步计划。 382模型的特点模型的特点(1)把软件开发过程组

33、成为一个)把软件开发过程组成为一个逐步细化逐步细化的螺旋周期的螺旋周期,每经历一个周期,系统就得,每经历一个周期,系统就得到进一步的细化和完善;到进一步的细化和完善;(2)整个模型紧密)整个模型紧密围绕围绕开发中的开发中的风险分析风险分析,推动软件设计向深层扩展和求精;推动软件设计向深层扩展和求精;(3)强调)强调持续的判断、确定和修改用户的持续的判断、确定和修改用户的任务目标任务目标,并按成本、效益来分析候选的,并按成本、效益来分析候选的软件产品对任务目标的贡献。软件产品对任务目标的贡献。 393选择模型的条件选择模型的条件螺旋模型强调风险分析,使得开发人员和用户对螺旋模型强调风险分析,使得

34、开发人员和用户对每个演化层出现的风险有所了解,继而做出应有每个演化层出现的风险有所了解,继而做出应有的反应,因此的反应,因此特别适用于庞大、复杂并具有高风特别适用于庞大、复杂并具有高风险的系统险的系统。404模型的优点模型的优点(1)与瀑布模型相比,螺旋模型)与瀑布模型相比,螺旋模型支持用户需求的支持用户需求的动态变化动态变化,为用户参与软件开发的所有关键决策提,为用户参与软件开发的所有关键决策提供了方便,从而降低了软件开发风险。供了方便,从而降低了软件开发风险。(2)螺旋模型对可选方案和约束条件的强调,)螺旋模型对可选方案和约束条件的强调,有有利于已有软件的重用利于已有软件的重用,也有助于把

35、,也有助于把软件质量软件质量作为软作为软件开发的一个重要目标。件开发的一个重要目标。(3)减少了过多测试(浪费资金)或测试不足减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险(产品故障多)所带来的风险。(4)螺旋模型中维护只是模型的另一个周期,在)螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别维护和开发之间并没有本质区别。415模型的缺点模型的缺点(1)很难让用户确信这种演化方法的结果是可很难让用户确信这种演化方法的结果是可以控制的以控制的。由于建设周期长,而软件技术发展比。由于建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的较快,所以经

36、常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需技术水平有了较大的差距,无法满足当前用户需求。求。(2)采用螺旋模型)采用螺旋模型需要具有相当丰富的风险评需要具有相当丰富的风险评估经验和专门知识估经验和专门知识,在风险较大的项目开发中,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。如果未能够及时标识风险,势必造成重大损失。(3)过多的迭代次数过多的迭代次数会增加开发成本,延迟提会增加开发成本,延迟提交时间。交时间。 42七、七、 喷泉模型喷泉模型 431模型的本意模型的本意喷泉模型喷泉模型(Fountain Model)认为,软件开认为,软件开发过程

37、自下而上的发过程自下而上的各阶段是相互重叠各阶段是相互重叠和和多多次反复进行次反复进行的,就像喷泉中的水喷上去,的,就像喷泉中的水喷上去,又可以落下来,所以叫做喷泉模型。又可以落下来,所以叫做喷泉模型。各个开发阶段各个开发阶段没有特定的次序要求没有特定的次序要求,而且,而且可以交互进行,在每个开发阶段中,还可可以交互进行,在每个开发阶段中,还可以随时补充其它任何开发阶段中的遗漏。以随时补充其它任何开发阶段中的遗漏。采用喷泉模型的软件过程,如图采用喷泉模型的软件过程,如图2-5所示。所示。 442模型的特点模型的特点喷泉模型是一种以喷泉模型是一种以用户需求驱动用户需求驱动的模型,的模型,主要用于

38、描述面向对象的软件开发过程。主要用于描述面向对象的软件开发过程。由于由于各阶段的活动之间无明显界线各阶段的活动之间无明显界线,所以,所以喷泉模型也称为喷泉模型也称为“喷泉无间隙性模型喷泉无间隙性模型”。3选择模型的条件选择模型的条件喷泉模型喷泉模型主要用于面向对象的软件项目主要用于面向对象的软件项目,软件的某个部分通常被重复多次,相关对软件的某个部分通常被重复多次,相关对象在每次迭代中随之加入渐进的软件成分。象在每次迭代中随之加入渐进的软件成分。 454模型的优点模型的优点喷泉模型不像瀑布模型那样,需要分析活动结束喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始

39、编码后才开始设计活动,设计活动结束后才开始编码活动。活动。该模型的该模型的各个阶段没有明显的界限各个阶段没有明显的界限,开发人员可,开发人员可以同步进行开发。其优点是以同步进行开发。其优点是可以提高软件项目开可以提高软件项目开发效率,节省开发时间发效率,节省开发时间。5模型的缺点模型的缺点由于喷泉模型在各个开发阶段是重叠的,因此在由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中开发过程中需要大量的开发人员需要大量的开发人员,因此不利于项,因此不利于项目的管理。目的管理。这种模型这种模型要求严格管理文档要求严格管理文档,使得审核的难度加,使得审核的难度加大,尤其是面对可能随时加入各种信息。大

40、,尤其是面对可能随时加入各种信息。 46八、八、 XP模型模型 1模型的本意模型的本意XP模型,即极限编程模型,它本来是敏捷模型,即极限编程模型,它本来是敏捷企业文化现象,但是不少人将它当作一种企业文化现象,但是不少人将它当作一种软件开发模型。软件开发模型。 XP模型属于模型属于轻量级开发模型轻量级开发模型,它由一组简,它由一组简单规则单规则(需求、实现、重构、测试、发布需求、实现、重构、测试、发布)组成,既保持开发人员的自由创造性,又组成,既保持开发人员的自由创造性,又保持对需求变动的适应性,即使在开发的保持对需求变动的适应性,即使在开发的后期,也不怕用户需求的变更。后期,也不怕用户需求的变

41、更。XP模型的模型的迭代开发过程,如图迭代开发过程,如图2-6所示。所示。 47482模型的特点模型的特点在需求、实现、重构、测试、发布的迭代过程中,在需求、实现、重构、测试、发布的迭代过程中,XP模型有模型有四条核心原则:四条核心原则:“交流交流” 、“简单简单” 、“反馈反馈” 和和“进取进取” 。XP开发小组开发小组不仅包括开发人员,还包括管理人员不仅包括开发人员,还包括管理人员和客户。和客户。XP模型强调小组内成员之间要经常进行模型强调小组内成员之间要经常进行“交流交流”,结对编程,在尽量保证质量的前提下力求过程和,结对编程,在尽量保证质量的前提下力求过程和代码的代码的“简单简单”化。

42、化。来自客户、开发人员和最终用户的具体来自客户、开发人员和最终用户的具体“反馈反馈”意意见,可以提供更多的机会来调整设计,保证把握正见,可以提供更多的机会来调整设计,保证把握正确的开发方向。确的开发方向。在在XP模型中,采取讲模型中,采取讲“用户场景故事用户场景故事”的方法,的方法,来代替传统模型中的需求分析。来代替传统模型中的需求分析。 493选择模型的条件选择模型的条件XP模型克服了传统模型不灵活机动的缺陷,是一模型克服了传统模型不灵活机动的缺陷,是一种面向客户场景的轻量级模型。它种面向客户场景的轻量级模型。它只适合于中小只适合于中小型开发小组型开发小组。实践表明,。实践表明,XP模型特别

43、适合于情投模型特别适合于情投意合的青年人群的小项目。意合的青年人群的小项目。4模型的优点模型的优点(1).由于采用简单策略,不需要长期计划和复杂由于采用简单策略,不需要长期计划和复杂管理,因而管理,因而开发周期短开发周期短;(2).由于采用迭代增量开发、反馈修正和反复测由于采用迭代增量开发、反馈修正和反复测试的方法,因而试的方法,因而软件质量有保证软件质量有保证;(3).由于适应用户需求的变化,因而由于适应用户需求的变化,因而与用户关系与用户关系和蔼和蔼。 505模型的缺点模型的缺点XP模型作为一种新的模型,在实际应用中模型作为一种新的模型,在实际应用中还还存在着一些问题存在着一些问题,引起了

44、许多争议。,引起了许多争议。它只适用于小型项目、小型项目组,它只适用于小型项目、小型项目组,不大不大适用于大型项目、大型项目组适用于大型项目、大型项目组。同时,它同时,它与与ISO9001、CMMI的精神也存的精神也存在冲突在冲突。 51八、八、 各种模型之间的关系各种模型之间的关系 1瀑布模型与迭代模型之间的关系瀑布模型与迭代模型之间的关系在宏观上,迭代模型是动态模型,瀑布模型是静在宏观上,迭代模型是动态模型,瀑布模型是静态模型。迭代模型的每一次迭代,实质上都是执态模型。迭代模型的每一次迭代,实质上都是执行一次瀑布模型,都要经历初始、精化、构造、行一次瀑布模型,都要经历初始、精化、构造、移交

45、四个阶段,走完瀑布模型的全过程。移交四个阶段,走完瀑布模型的全过程。在微观上,迭代模型与瀑布模型都是动态模型。在微观上,迭代模型与瀑布模型都是动态模型。迭代模型与瀑布模型在每一个开发阶段迭代模型与瀑布模型在每一个开发阶段(初始、初始、精化、构造、移交精化、构造、移交)的内部,都有一个小小的迭的内部,都有一个小小的迭代过程,只有经历这个小小的迭代过程,该阶段代过程,只有经历这个小小的迭代过程,该阶段的开发工作才能做细做好。的开发工作才能做细做好。可见:可见:迭代中有瀑布,瀑布中有迭代。迭代中有瀑布,瀑布中有迭代。即你中有即你中有我、我中有你。我、我中有你。522瀑布模型与增量模型之间的关系瀑布模

46、型与增量模型之间的关系增量模型首先开发核心模块,之后再开发其他模增量模型首先开发核心模块,之后再开发其他模块,这样一个一个地开发下去,直至所有模块开块,这样一个一个地开发下去,直至所有模块开发完毕为止。发完毕为止。在开发每一个模块时,开发者一般都是采用瀑布在开发每一个模块时,开发者一般都是采用瀑布模型,从需求、设计、编程、测试一个阶段接着模型,从需求、设计、编程、测试一个阶段接着一个阶段地实现。所以一个阶段地实现。所以增量模型中有瀑布模型思增量模型中有瀑布模型思想想,即宏观上是增量模型,微观上是瀑布模型。,即宏观上是增量模型,微观上是瀑布模型。增量模型也体现了迭代思想增量模型也体现了迭代思想,

47、每增加一个模块,每增加一个模块,就进行一次迭代,执行一次瀑布模型,所以,增就进行一次迭代,执行一次瀑布模型,所以,增量模型本质上是迭代的。量模型本质上是迭代的。 533瀑布模型与原型模型之间的关系瀑布模型与原型模型之间的关系原型模型开始有一个原型,在此基础上以原型模型开始有一个原型,在此基础上以后的每一次迭代,都可能是一次瀑布模型后的每一次迭代,都可能是一次瀑布模型的开发方式。的开发方式。原型模型中不但包涵了迭代模型的思想,原型模型中不但包涵了迭代模型的思想,而且包涵了瀑布模型的思想而且包涵了瀑布模型的思想。 544瀑布模型与螺旋模型之间的关系瀑布模型与螺旋模型之间的关系螺旋模型是瀑布模型和快

48、速原型模型的结螺旋模型是瀑布模型和快速原型模型的结合合,快速原型模型是原型模型的简化,原,快速原型模型是原型模型的简化,原型模型又是迭代模型和瀑布模型的组合,型模型又是迭代模型和瀑布模型的组合,这些模型之间是相互依存的、彼此有关的。这些模型之间是相互依存的、彼此有关的。螺旋模型每一次顺时针方向旋转,相当于螺旋模型每一次顺时针方向旋转,相当于顺时针方向迭代一次,都是走完一次瀑布顺时针方向迭代一次,都是走完一次瀑布模型,这就是它们之间的关系。模型,这就是它们之间的关系。555XP模型与迭代模型之间的关系模型与迭代模型之间的关系XP模型是一个自由式迭代模型模型是一个自由式迭代模型,它比传统的迭代模,

49、它比传统的迭代模型简单、自由,甚至毫无约束。船小好调头,这就型简单、自由,甚至毫无约束。船小好调头,这就是是XP模型。模型。6生命周期模型之间的关系总结生命周期模型之间的关系总结软件工程虽然来源于机器制造工程、建筑工程、计软件工程虽然来源于机器制造工程、建筑工程、计算机硬件工程,但是又与这些工程不完全相同。算机硬件工程,但是又与这些工程不完全相同。在软件开发的过程中在软件开发的过程中,软件工程不可能百分之百地,软件工程不可能百分之百地按照事先设计好的软件蓝图进行,而是一边施工、按照事先设计好的软件蓝图进行,而是一边施工、一边修改软件蓝图、一边再按照修改的软件蓝图继一边修改软件蓝图、一边再按照修

50、改的软件蓝图继续施工,即续施工,即按照按照“软件蓝图软件蓝图-软件开发软件开发-软件蓝图软件蓝图-软件开发软件开发”这个顺序多次循环,循环中又包涵着这个顺序多次循环,循环中又包涵着各种生命周期及开发模型各种生命周期及开发模型,最后才能到达胜利的彼,最后才能到达胜利的彼岸。岸。56本章小结本章小结 本章介绍了软件生命周期模型:瀑布模型、本章介绍了软件生命周期模型:瀑布模型、增量模型、迭代模型、原型模型、螺旋模增量模型、迭代模型、原型模型、螺旋模型和喷泉模型。型和喷泉模型。最常用的是瀑布模型和原型模型,其次是最常用的是瀑布模型和原型模型,其次是增量模型,最难掌握的是迭代模型。增量模型,最难掌握的是

51、迭代模型。七个模型的比较如表七个模型的比较如表2-4所示。所示。 57序号模 型 名 称优 点缺 点适 用 范 围1瀑布模型 简单好学逆转性差 面向过程开发2增量模型 可以分阶段提交有时用户不同意 系统可拆卸和组装3迭代模型 需求可变风险大 有高素质软件团队4原型模型 开发速度快不利于创新 已有产品的原型5螺旋模型需求可变建设周期长庞大、复杂、高风险项目6喷泉模型提高开发效率不利于项目的管理面向对象开发7XP模型提高开发效率不适合大团队、大项目小团队,小项目58软件企业选取软件生命周期模型的方法:软件企业选取软件生命周期模型的方法:软件企业在软件企业在创业时期创业时期,由于没有项目或产,由于没

52、有项目或产品的积累,所以他们品的积累,所以他们常常会选取瀑布模型常常会选取瀑布模型和增量模型和增量模型。一旦越过创业时期,由于积累了一些了项一旦越过创业时期,由于积累了一些了项目或产品,他们就会选取目或产品,他们就会选取原型模型原型模型。至于至于迭代模型迭代模型,只有当他们掌握了,只有当他们掌握了UML及及其工具其工具Rational Rose之后,才会加以考虑。之后,才会加以考虑。 59关于软件组织定制关于软件组织定制“软件生命周期模型裁剪指南软件生命周期模型裁剪指南”在一个成熟的在一个成熟的IT企业或软件组织内部,根据上述企业或软件组织内部,根据上述通用的六个模型的普遍原则,结合本单位的开

53、发通用的六个模型的普遍原则,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本经验和行业特点的具体实际,还需要定制适合本单位的单位的“软件生命周期模型裁剪指南软件生命周期模型裁剪指南”,有针对,有针对性地对选定模型中定义的生命周期,进行恰当的性地对选定模型中定义的生命周期,进行恰当的裁剪,使它完全适合于本单位的需求。裁剪,使它完全适合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进行增加、所谓裁剪,就是对原模型中定义的内容进行增加、修改、删除,去掉对本单位不适用的部分,增加修改、删除,去掉对本单位不适用的部分,增加对本单位适用的内容,同时进一步细化,从而构对本单位适用的内容,同时进一步细化,从而构成了完全适合本单位的成了完全适合本单位的“软件生命周期模型裁剪软件生命周期模型裁剪指南指南”。 60

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号