软件生存周期模型的总结软件工程导论第六版
软件生存周期模型的总结(《软件工程导论(第六版)》)
这篇博客是对《软件工程导论(第六版)》中软件过程的总结,对应书上内容的第14页。
目录
软件生存周期模型(也称软件开发模型)
存在的意义
,软件生存周期过程介绍的是 软件的开发逻辑——软件开发中到底有哪些开发活动 。
相应的,软件生存周期模型的作用就是: 对这些活软件动进行组织和划分的框架 。
我们把一些不同的组织框架进行进一步地细化,从而形成了不同的开发模型。不同的模型适用于不同的系统开发,以及在软件开发过程中应使用哪些方法。所以才会有不同的存周期模型,如,瀑布模型,增量模型,快速模型等。 下面是对各种模型的介绍。
1-瀑布模型
特点:
阶段具有顺序性和依赖型:前一个阶段结束,后一个阶段开始;前一个阶段输出的文档是下一个阶段的输入文档。
推迟实现观点:尽量地让编码靠后,保证前期设计工作做充分。
质量保证:一,每个阶段都必须完成完整,准确的文档;二,每个阶段结束前对文档进行评审。
优点 :提高软件质量、降低维护成本、缓解软件危机。
缺点 :
模型缺乏灵活性(下个阶段出现的问题不能回到上个阶段去解决。带反馈环的瀑布模型解决了这点问题)。
无法解决需求不明确的问题(用户不可能一下子把功能和需要扩展的地方一下子想出来。更有些用户连自己想要什么都不知道)。
适用于:需求明确的软件。
图片:
2-快速原型模型
概念:先建立一个软件原型,然后根据用户的评价(挑毛病)去获得更多的需求,从而完善该软件。
优点 :
确定需求上由于瀑布模型(通过原型与用户交互)。
提供学习手段:通过开发原型和演示原型,使开发者和使用者对系统有更多的了解。
有的软件原型可以成为最终产品的一部分。
缺点 :对软件原型的修改可能导致 产品质量低下,原型软件的内部结构不好。
适用于:需求不明确的软件。
图片:
3-增量模型
概念:把软件分为若干个构件,哪个构件做好就拿给用户试用。(1,2模型都是一次性把满足所有需求的产品提交给用户,而增量模型是分批向用户提交陈品)
优点 :
能够在较短的时间向用户提交完成可用的工作产品。
用户有充裕的时间适应产品。
软件结构必须开放,方便向现有产品加入新构件。
缺点 :
做到3比较困难。
较1,2来说风险更大——合并构件时易出现问题。
适用于:开发时间较短的软件。
图片:
4-螺旋模型
概念:在软件设计过程中 加入了风险分析 (突然发现超时了;超预算了;行业竞争)。
螺旋模型下软件开发的过程:
制定计划:确定目标、选定方案、设定条件约束。
风险分析:评估方案,识别和消除风险(能消除就进入下一阶段;不能的话就停止软件项目或削减软件功能)。
实施工程:与瀑布模型的过程相同。
客户评估:修改或添加需求。
螺旋模型每次进行的都是这四项工作。如果发现这四项没有问题的话,它就会像螺旋一样向外面扩一圈 去完成一个更完整地版本,以此类推直到软件通过风险分析。
主要优点:对于大型的软件开发项目有非常好的风险控制。
缺点 :
开发人员需要有风险评估的经验(没有风险以为有;有风险以为没有)。
契约开发通常会事先指定过程模型和产品。
适用于:大型软件开发。
图片:
5-喷泉模型
特点:面向对象方法的过程模型,此模型体现了面向对象方法的两个重要特性——迭代和无缝。
优点 :无缝。可同时开发、提高效率、节省开发时间、适应面向对象软件。
缺点 :因为此模型能多次迭代,所以我们可以随时向模型中添加各种信息、需求、资料,这样就会导致 文档管理和审核的难度增加。
适用于:面向对象软件。
图片:
6-Rational统一过程
特点:强调以迭代和渐增的方式开发软件,它是一个二维的生命周期过程。
如图:纵轴代表核心工作流,横轴代表时间。纵轴的9个工作流中,前6个为核心过程工作流,后三个为核心支持工作流。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3uSONT6-1585827781100)(img/2-5.jpg)]
优点 :
因为此模型是通过不断的迭代来完成软件开发的(不断地发布新版本),新的需求可以放入下一个版本当中。
降低风险。
有开发相应的配套工具(同样也是Rational公司开发的)。
缺点 :因为此模型能多次迭代,所以我们可以随时向模型中添加各种信息、需求、资料,这样就会导致文档管理和审核的难度增加。
适用于:大小软件均可。