软件生命周期与开发模型.ppt
《软件生命周期与开发模型.ppt》由会员分享,可在线阅读,更多相关《软件生命周期与开发模型.ppt(60页珍藏版)》请在三一办公上搜索。
1、1,软件生命周期模型概论瀑布模型(waterfall model)增量模型(incremental model)原型模型(prototyping model)迭代模型(iterative model)螺旋模型(spiral model)喷泉模型(fountaiin model)XP模型(eXtreme Progamming model),软件生命周期与开发模型,2,学习目标,掌握软件生命周期的阶段掌握常用的软件生命周期模型的本意、特点、选用条件,3,一、软件生命周期模型概论,生命周期软件生命周期软件生命周期模型,4,生命周期,任何生命或事物从出现到消失的全过程。任何有生命的动物、植物和人,都有
2、一个生命周期(Life Cycle)。例如,人的生命周期如表2-2 所示。即使是没有生命的事物或实体,例如,PC机、路由器、家具、房子、汽车,它们也有一个生命周期,这个生命周期就是使用寿命,即使用周期。,5,软件生命周期,软件开发过程有时称为软件生命周期(software life cycle),因为它描述了一件软件产品的生命:从它的概念到实现、交付、使用、维护、退役。软件生命周期分为如下几个阶段:立项与合同、需求分析、软件设计(概要设计详细设计)、编码实现、软件测试、软件发布与实施、软件维护、版本更新或退役,6,软件生命周期模型,软件生命周期模型是指在整个软件生命周期中,软件开发活动应遵循的
3、开发路线图。或:软件生命周期模型是软件开发全部过程、活动和任务的结构框架。描述软件开发的过程及其活动和任务。常见的软件生命周期模型:瀑布模型原型模型迭代模型增量模型,7,不同的软件生命周期模型,可能对应着不同的生命周期。为什么?因为生命周期不同,该软件的开发阶段划分、评审次数、基线标准、产品发布、维护方式都有所不同。,8,二、瀑布模型,9,1970年W.Royce提出瀑布模型1.模型的本意:阶段间具有顺序性和依赖性2.模型的特点:文档驱动过程不可逆转3.模型的选择条件:(1)在开发时间内需求没有或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目(对目标、环境很熟悉)。(4)用户使
4、用环境很稳定。(5)用户除提出需求以外,很少参与开发工作。,10,4.模型的优点:开发阶段清晰,便于评审、审计、跟踪、管理和控制。5.模型的缺点传统的项目组织方法是按顺序完成每个工作流程,即瀑布式生命周期。瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错误的传递会采取发散扩大的方式。,11,6.改进措施为了克服该模型的缺陷,微软采取严格的里程碑管理制度。CMM/CMMI则采取阶段评审和不符合项(Noncompliance Items)的动态跟踪制度,只有前一阶段的不符合项全部改正后,才允许开发人员进入后一阶段
5、的工作。所谓不符合项,就是在评审中发现的问题项,它与Bug既有联系,又有区别。对于这些不符合项,软件管理部门要列出表格,记录在案,确定责任人,限定改正时间,动态跟踪到底。,12,三、增量模型,13,1模型的本意要开发一个大的软件系统,先开发其中的一个核心模块(或子系统),然后再开发其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就像搭积木一样,直至整个系统开发完毕为止。在每增加一个模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试。系统集成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。,14,2模型的特点(1)任务或功能模块驱
6、动,可以分阶段提交产品。(2)有多个任务单,这些多个任务单的集合,构成项目的一个总任务书,或总用户需求报告/需求规格说明书。,15,3选择模型的条件(1)在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付。(2)分析设计人员对应用领域不熟悉,难以一步到位。(3)中等或高风险项目(工期过紧且可分阶段提交的系统或目标、环境不熟悉)。(4)用户可参与到整个软件开发过程中。(5)使用面向对象语言或第四代语言。(6)软件公司自己有较好的类库、构件库。,16,4模型的优点(1)由于将一个大系统分解为多个小系统,这就等于将一个大风险分解为多个小风险,从而降低了开发难度。(2)人员分配灵活,刚开始不
7、用投入大量人力资源。如果核心模块产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。即可先发布部分模块给客户,对客户起到镇静剂的作用。,17,5模型的缺点如果软件系统的组装和拆卸性不强,或开发人员全局把握水平不高(没有数据库设计专家进行系统集成),或者客户不同意分阶段提交产品,或者开发人员过剩,就不宜采用这种模型。,18,原型的解释:预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建。,四、原型模型,19,原型模型,许多软件公司在生产
8、软件产品与实施软件项目时,经常采用一种“原型法”,它来源于原型模型,下面就介绍这种模型。1模型的本意原型模型(Prototype Model)的本意是:在初步需求分析之后,马上向客户展示一个软件产品原型(样品),对客户进行培训,让客户试用,在试用中收集客户意见,根据客户意见立刻修改原型,之后再让客户试用,反复循环几次,直到客户确认为止。,20,原型模型很适合于企业资源规划ERP(Enterprise Resource Planning)系统,尽管市场上推出了许多公司的分行业ERP“产品”,但是这些“产品”的产品化程度相当低,都必须在实施中做大量的客户化工作。有些公司的分行业ERP“产品”称作“
9、分行业解决方案”,这个“分行业解决方案”就是分行业的原型,即快速原型法中的原型。,21,2模型的特点原型驱动。因此,开发者必须先有一个原型(样品),至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。不同点是:原型模型事先有一个展示性的产品原型(样品),而迭代模型可能没有。,22,3选择模型的条件(1)已有产品或产品的原型(样品),只需客户化的工程项目。(2)简单而熟悉的行业或领域。(3)有快速原型开发工具。(4)进行产品移植或升级。由于上述条件不太苛刻,所以凡是有软件产品的IT企业,在他们熟悉的业务领域内,当客户招标时,他们都会以原型模型作为软件开发模型,去制
10、作投标书,去讲解标投标。,23,4模型的优点开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户。正因为原型模型具有这些优点,所以它一直是软件企业界的主流开发模型。凡是有软件产品积累的软件公司,他们在投标、开发、实施项目的过程中,都非常喜欢用原型模型。5模型的缺点因为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新。,24,6快速原型法由于原型模型的开发速度较快,有时也将它称作快速原型法(Rapid Prototyping)。在开发工具和开发环境迅速发展的今天,在信息系统开发中,原型法和快速原型法又被赋予新的内容:事先没有原型产品,也可以采取这种办法。基本思
11、路是:采用以面向元数据为主的方法,在需求分析的基础上,利用Power Designer等数据库分析和设计工具,快速建立信息系统的概念数据模型CDM和物理数据模型PDM;然后利用面向对象的编程工具,快速地实现需求分析中确认的流程、功能、性能和接口;之后交付给用户试用,反复循环几次,直到客户确认满意为止。,25,【例2-1】1996年8月,当时的某高级工程师,带领一个熟练的程序员,来到营口港务局通信中心,开发该中心的电话业务信息管理系统。当时,虽然这两个人手中并无什么“原型”,但是他俩一个是数据库设计高手,一个是编程高手,所以俩人分工负责,一人设计数据库,一人编写程序,双方配合默契,只用一个多月时
12、间,就圆满地完成了开发任务,收回了全部开发费用,获得了客户的好评。这是一个典型的“快速原型法”例子。,26,快速原型法选择的条件之一是:项目组中有数据库分析和设计的专家,有面向对象编程的专家,文档制作有成熟的模板,而且系统或项目又不是非常大。快速原型法选择的条件之二是:项目组的开发环境为分行业的业务基础平台(比如Justep X3业务基础平台),该业务基础平台又完全适合所需开发的系统或项目,而且系统或项目又不是非常大。以上两个条件,只要符合一个,就可以采用快速原型法。,27,原型的类型:探索型:弄清要求,确定特性,并探讨多种方案的可行性实验型:大规模开发和实现前,验证方案或算法的合理性。演化型
13、:原型作为目标系统的一部分。原型的使用策略:废弃(throw away)策略:用于探索型和实验型原型。追加(add on)策略:用于演化型原型。原型可作为单独的过程模型,也常被作为一种方法或实现技术应用于其它过程模型中。,28,五、迭代模型(Iterative Model),代表:RUP(Rational Unified Process)模型,29,所谓迭代,是指活动的多次重复。从这个意义上讲,原型不断完善和增量不断产生,都是迭代的过程。但这里所讲的迭代模型是RUP推出的一种“逐步求精”的面向对象的软件开发过程模型,被认为软件界迄今为止最完善的、商品化的开发过程模型。,30,1模型的本意多次执
14、行各个开发工作流程,从而更好地理解需求,设计出更为强壮的软件构架,逐步提高开发组织能力,最终交付一系列逐步完善的实施成果,这就是迭代式生命周期模型。每次按顺序完成这一系列工作流程就叫做一次迭代,每次迭代,均以次要里程碑结束,按照特定的迭代成功标准,对迭代的结果进行评估。每个阶段都可以进一步细分为迭代。迭代是产生可执行的产品发布的完整开发循环,所发布的产品是开发过程最终产品的子集,它将通过一次又一次的迭代,实现递增成长,最后形成最终的软件系统或产品。,31,2模型的特点迭代或迭代循环驱动,每一次迭代或迭代循环,均要走完初始(先启)、精化、构建、产品化(移交)这四个阶段。RUP的主要特征如下:1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 生命周期 开发 模型
链接地址:https://www.31ppt.com/p-6206967.html