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