`
阅读更多
软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。

软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。

最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。但计算拓广到统计分析、商业事务等领域时,大多数程序采用高级语言(如FORTRAN、COBOL等)编写。瀑布模式模型也存在着缺乏灵活性、无法通过并发活动澄清本来不够确切的需求等缺点。

典型的开发模型有:①瀑布模型(waterfall model);②渐增模型/演化/迭代(incremental model);③原型模型(prototype model);④螺旋模型(spiral model);⑤喷泉模型(fountain model);⑥智能模型(intelligent model) ; 7. 混合模型(hybrid model)

1. 边做边改模型(Build-and-Fix Model)
  遗憾的是,许多产品都是使用"边做边改"模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改.

在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。 
  这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:
  (1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
  (2) 忽略需求环节,给软件开发带来很大的风险;
  (3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

2. 瀑布模型(Waterfall Model)
1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 
  瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
  瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
  (1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
  (2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
  (3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

  我们应该认识到,"线性"是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的"非线性"问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子。

3. 快速原型模型(Rapid Prototype Model)
  快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
  显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

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

相关推荐

    软件开发模式(繁体)

    “软件开发模式”是指一系列用于指导软件开发过程的步骤和执行顺序的框架。这种模式有助于系统化、逻辑化地进行开发,确保标准化、规范化,并提高效率,保证质量,便于管理。不同的软件开发模式适用于不同的系统开发...

    模型驱动的软件开发模式研究.pdf

    模型驱动的软件开发模式研究 模型驱动的软件开发模式是指在软件开发过程中,使用模型来描述软件系统的结构、行为和功能,通过模型转换和代码生成来自动产生软件代码的开发模式。该模式的研究旨在探讨模型驱动的软件...

    论软件开发模型及应用

    论软件开发模型及应用 软件开发模型是软件开发全过程、活动和任务的框架,是软件系统开发的重要基础。在软件工程发展历程中,出现了线性开发模型(如瀑布模型)和迭代开发模型(如螺旋模型、统一过程和敏捷开发模型...

    1.软件开发模型有 、 、第四代技术模型、 、构件组装模型、混合模型。

    1.软件开发模型有 、 、第四代技术模型、 、构件组装模型、混合模型。 2.可行性研究一般可以从 可行性、 可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年...

    软件开发模式软件开发模式

    本文将详细介绍CMMI(能力成熟度模型集成)、RUP(统一软件开发过程)、MSF(微软解决方案框架)以及敏捷开发这四种主流的软件开发模式,并探讨它们各自的优点和不足。 #### 二、CMMI(能力成熟度模型集成) CMMI...

    软件工程-软件开发模型比较分析.doc

    软件工程-软件开发模型比较分析 1.2 常用软件开发模型比较分析 正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称 其为"软件生命周期"。软件生命周期一般分为6个阶段,即制定计划、需求...

    软件开发模型-瀑布模型

    总之,瀑布模型作为一种传统的软件开发模型,在软件工程领域具有重要的地位和作用。其清晰的阶段划分、强调文档化和质量保证等特点,对于维护项目稳定性和提高产品质量有着积极的影响。然而,随着市场和技术的不断...

    Visual FoxPro 软件开发模式与应用案例

    《Visual FoxPro软件开发模式与应用案例》是张洪举编著的一本指导软件工程师们使用Visual FoxPro软件进行开发的专业参考书籍。该书涵盖了多种使用Visual FoxPro开发应用程序的方法,包括单用户应用程序模式、多用户...

    软件开发模式-PPT.pptx

    瀑布模型是最早期的软件开发模型之一,其核心理念是按照一定的顺序和阶段来进行软件开发。该模型的特点包括: 1. **自上而下的开发方式**:整个开发过程分为若干明确的阶段,如需求分析、设计、编码、测试等。 2. *...

    软件开发模型的种类!

    软件开发模型是软件工程中的一种方法论,用于指导软件项目的执行和管理,确保软件产品的质量和效率。瀑布模型是最早被广泛采用的模型之一,由Winston Royce在1970年提出。它将软件开发过程划分为多个连续的阶段,如...

    《软件工程》第二章软件生命周期及软件开发模型.pptx

    软件生命周期及软件开发模型知识点 软件生命周期是指软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。软件生命周期模型是从软件...

    软件开发模型.zip

    "软件开发模型.zip"这个压缩包中可能包含了一份详细的文档,如"软件开发模型.docx",该文档可能详细介绍了多种常见的软件开发模型。下面,我们将深入探讨一些关键的软件开发模型及其特点。 1. **瀑布模型**:这是最...

    软件工程软件开发各模型详解

    在软件工程领域,软件开发模型是指导项目团队按照一定顺序和结构进行软件开发的方法论。这些模型定义了软件生命周期中的各个阶段以及它们之间的关系,帮助团队有效地管理风险、提高产品质量和开发效率。以下是对几种...

    常用软件开发模型比较分析

    软件开发模型是软件工程中用于指导软件开发过程的一种结构框架,它描述了从需求收集到软件维护各个阶段之间的关系和流程。本文将对比分析三种常见的软件开发模型:瀑布模型、螺旋模型和变换模型。 1. 瀑布模型...

Global site tag (gtag.js) - Google Analytics