【从瀑布到敏捷——漫画解读软件开发模式变迁史】

从瀑布到敏捷——漫画解读软件开发模式变迁史

1913 年,美利坚工业之神——亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大
规模生产的时代。丰田公司提出的丰田生产系统(Toyota Production System)又为汽车
工业带来了很多先进的生产和管理理念。

首先放上漫画

请添加图片描述

- 瀑布模型

适用于已经充分了解其需求,功能不多的小型程序。

瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。
1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
请添加图片描述

1. 阶段间具有顺序性和依赖性

这个特点有两重含义
一、必须等前一阶段的工作完成之后才能开始后一阶段的工作。
二、前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。

2. 推迟实现的特点

瀑布模型在编码之前设置了系统分析和系统设计的各个阶段分析与设计阶段的基本任务规定在这两个阶段主要考虑目标系统的逻辑模型不涉及软件的物理实现.

3. 质量保证的观点

一,每个阶段都必须完成规定的文档,没有交出合格的文档,就是没有完成该阶段的任务。
二,每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

- 快速原型模型

请添加图片描述

所谓快速原型是快速建立起来的可以在算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
快速原型模型是不带反馈环的,这正是这种过程模型的主要优点,软件产品的开发基本上是线性顺序进行的。
快速原型的本质是快速。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦确定了圆形将被抛弃,因此原型系统的内部结构并不重要,重要的是必须迅速的构建原型,然后根据用户意见迅速的修改原型。
当快速原型的某个部分是利用软件工具由计算机自动生成的时候,可以把这部分用到最终的软件产品中。

-增量模型

后期会增加新功能,如notepad++。

请添加图片描述

使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计,编码,集成和测试。每个构建由多个相互作用的模块构成,并且能够完成待定的功能。使用增量模型时,第一个增量构建往往实现软件的基本需求,提供最核心的功能。
优点:

1.能在较短时间内向用户提交可完成部分工作的产品是增量模型的第一个优点。
2.逐步增加产品功能,可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

从某种意义上说,增量模型本身是自相矛盾的,他一方面要求开发人员把软件看做一个整体,另一方面又要求开发人员把软件看做构建序列,每个构建本质上都独立于另一个构建,除非开发人员有足够的技术能力,一些跳好这一明显的矛盾,否则用增量模型开发出的产品可能并不令人满意。

-螺旋模型

适用于大型程序,事前无经验

请添加图片描述

软件开发几乎总要冒一定的风险,软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件越复杂。承担该项目所冒的风险也越大,软件风险可能在不同程度上损害软件开发过程和软件产品质量,因此在软件开发过程中必须及时识别和分析风险。并适当采取措施以消除或减少风险的危害。

构建原型是一种能让某些风险降低至最低的方法。螺旋模型的基本思想是使用原型及其他方法来降低风险。理解这种模型的一个简便方法是把它看作在每个阶段之前都增加了风险分析的过程的快速原型模型。

螺旋模型的主要优势在于它是风险驱动的,但是这也可能是他的一个弱点,除非软件开发人员具有丰富的风险评估经验和这方面专门知识,否则将出现真正的风险:当项目实际正在走向灾难时,开发的人员可能还认为一切正常。

-喷泉模型

请添加图片描述

喷泉模型是典型的面向对象的软件过程模型之一,该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值