软件开发模型1:边做边改模型/瀑布模型/快速原型模型


转载自博文:
软件开发的11种模式
https://blog.csdn.net/xi_gua_gua/article/details/53107283
软件开发流程与模式
https://blog.csdn.net/oscar999/article/details/79168778

1 边做边改模型(即兴模型)(Build-and-Fix Model)

最基本也是最常用的一种模型,在这种模式下,当开发人员与需求方进行交流后,立马进行开发,然后进行调试生成软件版本。如果客户有新的需求,就需要将代码进行修改,直到满足客户的需求为止。

下图来自:https://blog.csdn.net/xi_gua_gua/article/details/53107283
在这里插入图片描述

1.1 优点:

适用于一些较小的程序开发,可以快速实现功能

1.2 缺点:

①没有对客户的需求进行分析以及对客户的需求进行挖掘(有时候可能客户也不太清楚自己的真正需求),会造成后期不断根据客户需求进行修改,效率低下。
②没有一些整体设计以及规划的过程,随着软件复杂度的增加,会造成代码臃肿,耦合性增大,增加或者修改一些功能可能会影响另外的功能。这时候,要么进行重构,要么继续现有的代码架构进行编码,无论哪一种方法,都会造成效率的低下。
③没有相关的开发文档、需求文档、接口文档等,会造成可维护性比价差。

2 瀑布模型(Waterfall Model)

将软件生命周期划分为:制定需求、需求分析 —> 软件设计 —> 程序编写 —> 软件测试 —> 发布等六个基本流程。并且规划了他们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。

2.1 优点

①严格遵循预先计划的步骤顺序进行,一切按部就班比较严谨。
②为项目提供了按阶段分的检查点
③当完成一个阶段后,只需要去关注后续阶段
④可在迭代模型中应用瀑布模型

2.2 缺点

①缺乏灵活性,太过线性理想化,不适合现代软件开发;
②各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量(阶段之间产生大量的文档,虽然增加了工作量,但是会使整个流程有据可依,方便整理与构思整个过程,也方便维护);
③由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
④早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果;
⑤各个软件生命周期衔接花费时间较长,团队人员交流成本大;
⑥瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

3 快速原型模型(Rapid-Prototype-Model)

快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。

快速原型模型有点整合“边做边改”与“瀑布模型”优点的意味。
在这里插入图片描述

3.1 优点

①生命周期短
②整合“边做边改”与“瀑布模型”优点
③减少软件需求不明确带来的开发风险
④适用于小型、交互型的系统,大型系统的某些部分

3.2 缺点

①可能导致系统设计差、效率低、难以维护

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是五种常见的软件开发过程模型: 1. 瀑布模型瀑布模型是一种线性的软件开发过程模型,它的特点是按照顺序依次完成需求分析、设计、编码、测试和维护等阶段。每个阶段的输出文档就是下一个阶段的输入文档。这种模型适用于需求明确、稳定的项目,但缺点是不够灵活,无法适应需求变化。 2. 快速原型模型快速原型模型是一种快速构建原型的软件开发过程模型,它的特点是在需求分析和设计阶段,通过快速构建原型来验证需求和设计方案的正确性。这种模型适用于需求不明确或者需要快速验证设计方案的项目,但缺点是原型可能无法满足所有需求,需要不断迭代。 3. 增量模型: 增量模型是一种逐步增量构建系统的软件开发过程模型,它的特点是将系统分为多个模块,每个模块都是一个增量,逐步构建整个系统。这种模型适用于大型、复杂的项目,可以提高开发效率和质量,但需要进行严格的模块化设计和管理。 4. 螺旋模型: 螺旋模型是一种风险驱动的软件开发过程模型,它的特点是将风险管理贯穿于整个软件开发过程中,通过不断迭代来降低风险。这种模型适用于大型、复杂、风险较高的项目,但需要进行严格的风险管理和控制。 5. 喷泉模型: 喷泉模型是一种基于组件的软件开发过程模型,它的特点是将系统分为多个组件,每个组件都是一个独立的喷泉,可以独立开发、测试和维护。这种模型适用于组件化程度高、可重用性强的项目,可以提高开发效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值