在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于: (1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量; (2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; (3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。 显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。 与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成. 增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。但是,增量模型也存在以下缺陷: (1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。 (2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动: (1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件; (2) 风险分析:分析评估所选方案,考虑如何识别和消除风险; (3) 实施工程:实施软件开发和验证; (4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。 螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下: (1) 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。 (2) 如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。 (3) 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险 一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shijinabsj/archive/2008/07/12/2645003.aspx
分享到:
相关推荐
“软件开发模式”是指一系列用于指导软件开发过程的步骤和执行顺序的框架。这种模式有助于系统化、逻辑化地进行开发,确保标准化、规范化,并提高效率,保证质量,便于管理。不同的软件开发模式适用于不同的系统开发...
模型驱动的软件开发模式研究 模型驱动的软件开发模式是指在软件开发过程中,使用模型来描述软件系统的结构、行为和功能,通过模型转换和代码生成来自动产生软件代码的开发模式。该模式的研究旨在探讨模型驱动的软件...
论软件开发模型及应用 软件开发模型是软件开发全过程、活动和任务的框架,是软件系统开发的重要基础。在软件工程发展历程中,出现了线性开发模型(如瀑布模型)和迭代开发模型(如螺旋模型、统一过程和敏捷开发模型...
1.软件开发模型有 、 、第四代技术模型、 、构件组装模型、混合模型。 2.可行性研究一般可以从 可行性、 可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年...
本文将详细介绍CMMI(能力成熟度模型集成)、RUP(统一软件开发过程)、MSF(微软解决方案框架)以及敏捷开发这四种主流的软件开发模式,并探讨它们各自的优点和不足。 #### 二、CMMI(能力成熟度模型集成) CMMI...
软件开发模型-瀑布模型 瀑布模型是软件开发中的一种典型模型,它的主要特点是将开发过程分为六个阶段,即需求分析、软件设计、软件实现、软件测试、软件安装和软件维护。每个阶段都有明确的起点和终点,过程最终...
基于模型的设计(MBD)下的软件开发模式是一种现代的软件开发流程,它依赖于模型来描述系统的不同方面,如算法、行为、结构和需求,并使用这些模型作为主要的开发和验证工具。MBD是当前趋势中自动化和软件密集型产品...
软件工程-软件开发模型比较分析 1.2 常用软件开发模型比较分析 正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称 其为"软件生命周期"。软件生命周期一般分为6个阶段,即制定计划、需求...
《Visual FoxPro软件开发模式与应用案例》是张洪举编著的一本指导软件工程师们使用Visual FoxPro软件进行开发的专业参考书籍。该书涵盖了多种使用Visual FoxPro开发应用程序的方法,包括单用户应用程序模式、多用户...
瀑布模型是最早期的软件开发模型之一,其核心理念是按照一定的顺序和阶段来进行软件开发。该模型的特点包括: 1. **自上而下的开发方式**:整个开发过程分为若干明确的阶段,如需求分析、设计、编码、测试等。 2. *...
软件开发模型是软件工程中的一种方法论,用于指导软件项目的执行和管理,确保软件产品的质量和效率。瀑布模型是最早被广泛采用的模型之一,由Winston Royce在1970年提出。它将软件开发过程划分为多个连续的阶段,如...
软件生命周期及软件开发模型知识点 软件生命周期是指软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。软件生命周期模型是从软件...
"软件开发模型.zip"这个压缩包中可能包含了一份详细的文档,如"软件开发模型.docx",该文档可能详细介绍了多种常见的软件开发模型。下面,我们将深入探讨一些关键的软件开发模型及其特点。 1. **瀑布模型**:这是最...
在软件工程领域,软件开发模型是指导项目团队按照一定顺序和结构进行软件开发的方法论。这些模型定义了软件生命周期中的各个阶段以及它们之间的关系,帮助团队有效地管理风险、提高产品质量和开发效率。以下是对几种...