版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件生命周期模型软件生命周期模型 软件过程与生命周期模型软件过程与生命周期模型 建造修补模型建造修补模型 瀑布模型瀑布模型 快速原型快速原型 极限编程极限编程 同步同步-稳定模型稳定模型 螺旋模型螺旋模型 面向对象的生命周期模型面向对象的生命周期模型 软件过程与生命周期模型软件过程与生命周期模型 软件产品发展过程中的一系列步骤称为软件产品发展过程中的一系列步骤称为“生命周期模型生命周期模型”(life-cycle model),),主要的模型有:瀑布模型、快速原型开发主要的模型有:瀑布模型、快速原型开发模型、螺旋模型等模型、螺旋模型等 生命周期模型规定了软件过程的各个阶段,生命周期模型规定了软
2、件过程的各个阶段,如需求、规格说明、设计、实现、集成和如需求、规格说明、设计、实现、集成和维护阶段,以及这些阶段完成的维护阶段,以及这些阶段完成的顺序顺序 每一种模型的主要内容、优点、缺点每一种模型的主要内容、优点、缺点 建造建造修补模型修补模型 构建产品不使用规格说明、或者不进行构建产品不使用规格说明、或者不进行设计;开发者只是简单地建造了一个软设计;开发者只是简单地建造了一个软件产品,为满足客户的要求,多次改写件产品,为满足客户的要求,多次改写该软件该软件 建造建造修补模型修补模型(续续) 优点:对于优点:对于100行或行或200行的短程序可以做得很好行的短程序可以做得很好 缺点:对于任何
3、规模的软件产品来说,建造缺点:对于任何规模的软件产品来说,建造修修补模型的缺点有:补模型的缺点有: (1) 对没有规格说明和设计文档的产品进行维护相对没有规格说明和设计文档的产品进行维护相当困难,而且发生回归错误的机会也相当大。当困难,而且发生回归错误的机会也相当大。 (2) 从整个软件过程来说(特别是考虑到维护阶从整个软件过程来说(特别是考虑到维护阶段),实际上建造段),实际上建造修补模型的花费远远大于有修补模型的花费远远大于有正规的规格说明、经过详细设计的产品所需要的正规的规格说明、经过详细设计的产品所需要的花费花费 瀑布模型瀑布模型 Royce于于1970年提年提出出 各阶段工作及发现各
4、阶段工作及发现错误回溯错误回溯 关键点是:在该阶关键点是:在该阶段的文档已经完成段的文档已经完成并且该阶段的产品并且该阶段的产品得到得到SQA小组的认小组的认可之前,没有一个可之前,没有一个阶段是完整的,这阶段是完整的,这将导致反复修改将导致反复修改 瀑布模型瀑布模型( (续续) ) 当产品移交给客户后,对产品的修改和当产品移交给客户后,对产品的修改和加强都构成了维护,维护可能修改从需加强都构成了维护,维护可能修改从需求开始的所有阶段的文档,瀑布模型是求开始的所有阶段的文档,瀑布模型是一个动态的模型,反馈环在这个动态过一个动态的模型,反馈环在这个动态过程中起着重要的作用程中起着重要的作用 文档
5、的维护必须和代码的维护同步文档的维护必须和代码的维护同步 瀑布模型瀑布模型( (续续) ) 优点优点 (1)强制性原则:阶段产品与文档确认强制性原则:阶段产品与文档确认之前不进入下一个阶段之前不进入下一个阶段 (2)2)文档驱动:文档与产品的同步,维文档驱动:文档与产品的同步,维护的重要依据,许多瀑布模型的成功归护的重要依据,许多瀑布模型的成功归功于它本质上是一个文档驱动的模型功于它本质上是一个文档驱动的模型 瀑布模型瀑布模型( (续续) ) 缺点缺点 由文档驱动原则引起,由文档驱动原则引起,客户只能在整客户只能在整个产品完成编程之后才首次能够看到工个产品完成编程之后才首次能够看到工作的产品,
6、说明文档的描述所理解的产作的产品,说明文档的描述所理解的产品与实际的产品有很大的差距,规格说品与实际的产品有很大的差距,规格说明文档只存在于纸面上,客户因而不能明文档只存在于纸面上,客户因而不能真正理解产品本身会是什么样子。真正理解产品本身会是什么样子。 举例:建筑合同与裁缝方式举例:建筑合同与裁缝方式 快速原型开发模型快速原型开发模型 快速原型是一个与快速原型是一个与产产品子集品子集功能相同的工功能相同的工作模型。建立快速原作模型。建立快速原型的第一步是建造一型的第一步是建造一个快速原型,并让客个快速原型,并让客户和未来的用户试用户和未来的用户试用该原型,直到客户认该原型,直到客户认为快速原
7、型确实满足为快速原型确实满足了大多数要求为止了大多数要求为止 快速原型开发模型(续)快速原型开发模型(续) 优点:优点: (1)产品的开发从快产品的开发从快速原型到交付的产品速原型到交付的产品基本上是线性的基本上是线性的 (2)开发进度快开发进度快 缺点:缺点:没有经过长时没有经过长时间验证间验证 快速原型和瀑布模型快速原型和瀑布模型结合,快速原型可以结合,快速原型可以用作需求分析技术用作需求分析技术 增量模型增量模型 软件在工程上渐增实现,产品以一系列增软件在工程上渐增实现,产品以一系列增量构件的形式设计、实现、集成和测试,量构件的形式设计、实现、集成和测试,每个构件(每个构件(builds
8、builds)由一些代码块组成,由一些代码块组成,这些代码块来自多个相互作用的模块,完这些代码块来自多个相互作用的模块,完成特定的功能成特定的功能 在增量模型的每一个阶段,编写出一个新在增量模型的每一个阶段,编写出一个新的构件的代码后,集成到结构中,作为一的构件的代码后,集成到结构中,作为一个整体进行测试,当产品达到功能目标时,个整体进行测试,当产品达到功能目标时,即满足了规格说明进,这个进程停止即满足了规格说明进,这个进程停止 增量模型(续)增量模型(续) 开发者可以将目标产品分成构件,只是必开发者可以将目标产品分成构件,只是必须服从以下约束:须服从以下约束: 由于每个构件都集成到目前的软件
9、中,生由于每个构件都集成到目前的软件中,生成的产品必须是可测试的。如果将产品分成的产品必须是可测试的。如果将产品分成太少的构件,则增量模型退化成建造成太少的构件,则增量模型退化成建造修补模型;相反,如果产品由太多的构件修补模型;相反,如果产品由太多的构件组成,则在每个阶段将在大量的时间花费组成,则在每个阶段将在大量的时间花费在少量增加功能的集成测试上在少量增加功能的集成测试上 增量模型(续)增量模型(续) 优点优点: (1)增量模型在每个阶段交付一个可用的产品增量模型在每个阶段交付一个可用的产品,从第一个构件交付开始,客户即可开始工作从第一个构件交付开始,客户即可开始工作(瀑布模型最后一次性交
10、付)(瀑布模型最后一次性交付) (2 2)减少一个全新产品对客户组织所带来的心)减少一个全新产品对客户组织所带来的心理上的影响理上的影响 (3)分阶段交付产品不需要客户大的资金支出,分阶段交付产品不需要客户大的资金支出,特别是当基于投资的高回报而选择最早的构件特别是当基于投资的高回报而选择最早的构件 (4)客户可以在任何时候停止产品的开发客户可以在任何时候停止产品的开发 增量模型(续)增量模型(续) 缺点:缺点: (1)增量模型面临的困难是每个增加的增量模型面临的困难是每个增加的构件必须能合并到已有的结构中去,却不构件必须能合并到已有的结构中去,却不破坏原来的结构,因此破坏原来的结构,因此软件
11、设计必须是可软件设计必须是可扩充的(硬件:插卡)扩充的(硬件:插卡)良好的可维护性良好的可维护性 (2)增量模型容易退化成建造增量模型容易退化成建造修补模修补模型,型,必须必须处理整体性与可扩充性:增量模处理整体性与可扩充性:增量模型是一个矛盾的术语型是一个矛盾的术语 增量模型(续)增量模型(续) 并存增量模型:并存增量模型:当设计小组设计第一个构件的当设计小组设计第一个构件的同时,规格说明小组转向第二个构件的规格说同时,规格说明小组转向第二个构件的规格说明明 极限编程极限编程 由增量模型发展而来由增量模型发展而来 根据效益分析,确定所需特性根据效益分析,确定所需特性 测试驱动测试驱动 成对编
12、程成对编程 每日构建每日构建极限编程(续)极限编程(续) XP的特性的特性(1 1)XPXP小组的计算机设置在一个大房间中,大房小组的计算机设置在一个大房间中,大房间中有许多彼此相边的小隔间间中有许多彼此相边的小隔间(2 2)一个客户代表始终和)一个客户代表始终和XP小组一起工作小组一起工作 (3)没有一个人能连续两周超时工作没有一个人能连续两周超时工作 (4)没有规格说明,而是没有规格说明,而是XP小组的所有成员一小组的所有成员一起完成规格说明、设计、代码和测试过程起完成规格说明、设计、代码和测试过程 (5)建造出各种构件之前没有概要设计阶段。建造出各种构件之前没有概要设计阶段。建造产品的过
13、程中设计在不断地调整,这个过建造产品的过程中设计在不断地调整,这个过程称为重整程称为重整 极限编程(续)极限编程(续) 优点:当客户的需要模糊或经常改动优点:当客户的需要模糊或经常改动 缺点:适用于小型项目,没有经过充分缺点:适用于小型项目,没有经过充分的验证的验证 极限编程的极限编程的12个最佳实践个最佳实践 现场客户现场客户( ( On-site Customer ) On-site Customer ) 要求至少有一名实际的客户代表在整个项目开要求至少有一名实际的客户代表在整个项目开发周期在现场负责确定需求、回答团队问题以发周期在现场负责确定需求、回答团队问题以及编写功能验收测试及编写功
14、能验收测试 代码规范代码规范( ( Code Standards ) Code Standards ) 强调通过指定严格的代码规范来进行沟通,尽强调通过指定严格的代码规范来进行沟通,尽可能减少不必要的文档可能减少不必要的文档 每周每周40小时工作制小时工作制( 40-( 40-hour Week )hour Week ) 要求项目团队人员每周工作时间不能超过要求项目团队人员每周工作时间不能超过4040小小时,加班不得连续超过两周,否则反而会影响时,加班不得连续超过两周,否则反而会影响生产率生产率极限编程的极限编程的12个最佳实践(续)个最佳实践(续) 计划博弈计划博弈 ( Planning G
15、ame ) 要求结合项目进展和技术情况,确定下一阶段要求结合项目进展和技术情况,确定下一阶段要开发与发布的系统范围要开发与发布的系统范围 系统隐喻系统隐喻 ( System Metaphor ) 通过隐喻来描述系统如何运作、新的功能以何通过隐喻来描述系统如何运作、新的功能以何种方式加入到系统。它通常包含了一些可以参种方式加入到系统。它通常包含了一些可以参照和比较的类和设计模式。照和比较的类和设计模式。XP不需要事先进不需要事先进行详细的架构设计行详细的架构设计 简单设计简单设计 ( Simple Design ) 认为代码的设计应该尽可能的简单,只要满足认为代码的设计应该尽可能的简单,只要满足
16、当前功能的要求,不多也不少当前功能的要求,不多也不少极限编程的极限编程的12个最佳实践(续)个最佳实践(续) 测试驱动测试驱动 ( Test-driven ) 强调强调测试先行测试先行。在编码开始之前,首先将测。在编码开始之前,首先将测试写好,而后再进行编码,直至所有的测试都试写好,而后再进行编码,直至所有的测试都得以通过得以通过 代码重构代码重构 ( Refactoring ) 强调代码重构在其中的作用,认为开发人员应强调代码重构在其中的作用,认为开发人员应该经常进行重构,通常有两个关键点应该进行该经常进行重构,通常有两个关键点应该进行重构:对于一个功能实现和实现后重构:对于一个功能实现和实
17、现后极限编程的极限编程的12个最佳实践(续个最佳实践(续) ) 代码共享(代码共享(Code sharing) 认为开发小组的每个成员都有更改代码的权利,认为开发小组的每个成员都有更改代码的权利,所有的人对于全部代码负责所有的人对于全部代码负责 成对编程成对编程 ( Pair Programming ) 认为在项目中采用成对编程比独自编程更加有认为在项目中采用成对编程比独自编程更加有效。成对编程是由两个开发人员在同一台电脑效。成对编程是由两个开发人员在同一台电脑上共同编写解决同一问题的代码,通常一个人上共同编写解决同一问题的代码,通常一个人负责写编码,而另一个负责保证代码的正确性负责写编码,而
18、另一个负责保证代码的正确性与可读性与可读性极限编程的极限编程的12个最佳实践(续)个最佳实践(续) 持续集成持续集成 ( Continuous Integration ) 提倡在一天中集成系统多次,而且随着需求的提倡在一天中集成系统多次,而且随着需求的改变,要不断的进行回归测试。因为,这样可改变,要不断的进行回归测试。因为,这样可以使得团队保持一个较高的开发速度,同时避以使得团队保持一个较高的开发速度,同时避免了一次系统集成的恶梦免了一次系统集成的恶梦 小型发布小型发布 ( Small Release ) 强调在非常短的周期内以递增的方式发布新版强调在非常短的周期内以递增的方式发布新版本,从而
19、可以很容易地估计每个迭代周期的进本,从而可以很容易地估计每个迭代周期的进度,便于控制工作量和风险;同时,也可以及度,便于控制工作量和风险;同时,也可以及时处理用户的反馈时处理用户的反馈同步同步稳定模型稳定模型 首先需要访问软件包的很多的潜在顾客,首先需要访问软件包的很多的潜在顾客,提取出由顾客的优先特性列表,拟制规提取出由顾客的优先特性列表,拟制规格说明文档格说明文档 接下来将工作分为接下来将工作分为3、4个构件,第个构件,第1个构个构件包含最重要的特性,第件包含最重要的特性,第2个构件包含次个构件包含次重要的特性;每个构件都由一些小组并重要的特性;每个构件都由一些小组并行地完成行地完成 同步
20、同步稳定模型稳定模型( (续续) ) 每天工作结束前,所有小组工作同步每天工作结束前,所有小组工作同步(Synchronize),即将部分完成的组件放在一即将部分完成的组件放在一起,对得到的产品进行测试和调试起,对得到的产品进行测试和调试 在每个构件结束时进行稳定化(在每个构件结束时进行稳定化(Stabilization)工作。检测到的遗留错误此时到修补,然后工作。检测到的遗留错误此时到修补,然后将该构件冻结(将该构件冻结(frozen),),即规格说明不会即规格说明不会再修改再修改 同步同步稳定模型稳定模型( (续续) ) 优点:优点: 重复的同步步骤保证各个组件总能一起重复的同步步骤保证各
21、个组件总能一起工作,部分地构建产品使开发者能早些工作,部分地构建产品使开发者能早些深入了解每个产品的工作状态,而且必深入了解每个产品的工作状态,而且必要时在构件生成的过程中修改规格说明要时在构件生成的过程中修改规格说明文档,甚至在最初的规格说明文档未完文档,甚至在最初的规格说明文档未完成前都可使用这个模型成前都可使用这个模型 缺点:缺点:对开发人员要求很高对开发人员要求很高 螺旋模型螺旋模型 软件开发中的风险:软件开发中的风险:(1)人员风险:离职,技术水平)人员风险:离职,技术水平(2)硬件风险:不再使用)硬件风险:不再使用(3)测试投入)测试投入(4)技术风险:技术的发展对当前开发产)技术风险:技术的发展对当前开发产品的影响。品的影响。(5)竞争对手)竞争对手 螺旋模型(续)螺旋模型(续) 构建一个原型构建一个原型(样机)是减小(样机)是减小某种风险的一个某种风险的一个途径,可以简单途径,可以简单地将这个生命周地将这个生命周期模型看作是每期模型看作是每个阶段之前带有个阶段之前带有风险分析的瀑布风险分析的瀑布模型模型 螺旋模型(续)螺旋模型(续) 在进入每在进入每个阶段前个阶段前努力控制努力控制(或排除)(或排除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代家居设计与生活品质的提升
- 现代办公环境中营销自动化策略的实施
- Unit2 An Accident(说课稿)-2024-2025学年北师大版(三起)英语六年级上册
- 3-1《百合花》(说课稿)高一语文同步高效课堂(统编版 必修上册)
- 2023二年级数学上册 七 分一分与除法第5课时 小熊开店说课稿 北师大版
- 3 天窗(说课稿)2023-2024学年部编版语文四年级下册
- 《8和9的加、减法的应用》(说课稿)-2024-2025学年一年级上册数学人教版
- Unit 1 Art Using language 2 说课稿 -2023-2024学年高中英语人教版(2019)选择性必修第三册
- Unit 5 Colours Lesson 1(说课稿)-2024-2025学年人教新起点版英语一年级上册
- 2023四年级数学上册 1 大数的认识第4课时 亿以内数的大小比较说课稿 新人教版
- 2024年全国高考新课标卷物理真题(含答案)
- 生鲜超市未来工作计划
- 劳动合同薪酬与绩效约定书
- 消除医疗歧视管理制度
- 柴油机油-标准
- 足疗店营销策划方案
- 《初三开学第一课 中考动员会 中考冲刺班会》课件
- 学校安全一岗双责
- 2024年全国版图知识竞赛(小学组)考试题库大全(含答案)
- 产后修复学习培训课件
- 高考志愿咨询培训课件
评论
0/150
提交评论