螺旋模型

软件设计——软件过程模型

假装没事ソ 提交于 2019-11-30 03:51:39
软件过程模型 分类: 瀑布模型、 增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型、形式化方法模型 瀑布模型: 优点: 容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。 不足之处是,客户必须能够完整、正确和清晰地表达他们的需要;在开始的两个或3个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作:直到项目结束之前,都不能演示系统的能力。 在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。 缺点: (1)开发过程一般不能逆转,否则代价太大; (2)实际的项目开发很难严格按该模型进行; (3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。 (4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 适用于: (1)用户的需求非常清楚全面,且在开发过程中没有或很少变化; (2)开发人员对软件的应用领域很熟悉; (3)用户的使用环境非常稳定; (4)开发工作对用户参与的要求很低。 它是以文档作为驱动、适合于软件需求分明的软件项目的模型 增量模型: 优点: 作为瀑布模型的一个变体,具有瀑布模型的所有优点。此外,它还有以下优点: (1)第一个可交付版本所需要的成本和时间很少; (2

架构杂谈《十》

六眼飞鱼酱① 提交于 2019-11-27 10:44:18
架构杂谈《十》 常用开发模式 一、瀑布式开发   瀑布式开发是在1970年提出的软件开发模型,是一种较老的计算机软件开发模式,也是典型的预见性的开发模式,在瀑布式开发中,开发严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤进行,步骤的成果作为衡量进度的方法。瀑布式开发最早强调系统开发应有完整的周期,且必须完成完整地经历每个周期内的每个阶段,并系统化地考量分析所设计的技术、时间与资源等。   瀑布式开发的主要问题是它严格分级导致自由度降低,在需求不明确并且在项目进行过程中可能有变化的情况下基本上是不可行的。 (瀑布式开发模式图) 二、迭代式开发   迭代式开发也称迭代增量式开发,是一种与瀑布式开发相反的软件开发过程,它弥补了瀑布式开发方式的一些弱点,有更高的成功率。在迭代式开发中,整个开发工作被组织成一系列短小的、固定长度的小项目,每次迭代都包括需求分析、设计、实现与测试。采用迭代式开发时,工作可以在需求被确定之前启动,并在一次迭代中完成系统的一部分功能或业务,再通过客户的反馈来细化需求,并开始新一轮的迭代。 (迭代式开发模式图)   迭代式开发有以下的特点:     1)每次只设计和实现产品的一部分     2)一步一步地完成     3)每次设计和实现一个阶段,这叫作迭代 三、螺旋式开发   螺旋式开发兼顾了快速原型的迭代特征及瀑布模型的系统化和严格监控

软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型

為{幸葍}努か 提交于 2019-11-26 23:47:19
一、瀑布模型 1.1 什么是瀑布模型 1970年温斯顿.罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型 瀑布模型将 软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动 ,并且规定了它们 自上而下、相互衔接 的固定次序,如同瀑布流水,逐级下落 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动 从本质来讲,它是一个软件开发架构 ,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生 循环反馈 ,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来 对于经常变化的项目而言,瀑布模型毫无价值 1.2 特点 1、阶段间具有顺序性和依赖性 该阶段具有两重含义 必须等前一阶段的工作完成后,才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2、推迟实现的观点 对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长