软件工程之开发模型

惯用过程模型

A. 瀑布模型
定义:也称为经典生命周期。是一个系统,顺序的软件开发方法。从用户需求规格说明开始,通过计划,建模,构建
和部署的过程。
特点:需求必须准确定义和相对稳定。
缺点:
1. 实际开发中,很少遵守瀑布模型的开发顺序。随着项目推进,如果中途事先确定的需求变更的话可能会导致
混乱。
2. 客户通常不好明确描述所有的需求。这导致需要明确需求的瀑布模型在开始阶段肯定会存在很多不确定性。
3. 客户需要有耐心,因为瀑布模型在项目交付的尾声时才能得到可执行的程序。而如果开发的系统存在重大
缺陷,而程序评审时没有被发现,会造成很大损失。
综上,变化很快,开发快速进展的项目不适合使用瀑布模型。而需求确定,开发是线性方式时适合使用瀑布模型。

瀑布模型的图:

瀑布模型

像一个瀑布,一个线性,一步一步进行的过程。

瀑布模型的一个变种:V模型
软件团队沿着V模型左侧向下推进,然后需求逐步细化,当编码结束。然后沿着V模型右侧向上推进,进行一系列测试。
如果某一步测试出问题,回到左侧然后继续执行V模型左侧向下进行。
如下图:

V模型

B. 增量过程
定义:开发过程不宜单纯使用线性模型。可能是迫切为客户提供一个功能有限的软件产品,在后续版本中继续扩展
用户新增的需求和功能完善。
特点:
1. 第一个增量往往是核心产品,也就是可以满足基本的需求。然后进行评审,评审后制定下一个增量的特性 和功能。
2. 每一个增量提交的产品都是可运行的。
优点:
1. 适用是项目开发阶段开发人员不足时。
2. 因为增量模型是逐渐增加需求,可以有效规避技术风险。
举个例子:
相信大家都有使用微信。如果你有留意的话,你会发现微信的产品是一个增量模型。刚开始,微信第一版是只能发
文字和语音信息。然后第二版增加其他功能,比如公众号,还有后续的微信支付功能,发红包功能。现在还在更新,
它的每一个增量都是可以运行的产品。它不会一次性把几乎所有功能都开发出来,而是逐渐添加的。
增量模型的图:
增量模型

C.演化过程模型(有两个)

  1. 原型开发
    定义: 这个模型开始于沟通,软件相关利益方(比如用户和开发工程师)进行会晤,明确已知的需求,然后快速设计出用户能够看到的界面,一些输入输出的格式,在不断交流中明确用户的需求。
    存在的缺点:
    1. 利益相关者看到软件的工作版本,但是不能察觉到软件是随机搭建,软件的质量和长期维护性不能得到很好的保证。
    2. 为了快速开发出一个原型给客户,工程师可能会出现对实现过程采用折衷的手段,而这个是不好,但是为了按时交付,会导致开发人员适应了这种选择。比如:一些排序,为快速达到效果,可能会采用低效的排序,或者不对排序算法做优化。

  2. 螺旋模型
    定义: 是一个风险驱动型的过程模型生成器。
    特点:
    1.采用循环的方式逐步加深系统定义和实现的深度,降低风险。
    2.确定一系列里程碑,确保利益相关的人都支持可行和令人满意的系统解决方案。
    3.产品可以经过一系列迭代,永远保持可操作性,直到生命周期结束。
    4.过程经常会处于休止状态,当有变更需求或者其他时,过程总能在合适的入口点启动。
    5.在项目的所有阶段始终考虑技术风险,很难说服客户演进的方法是可控的。需要大量的风险评估专家来保证成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值