软件过程以及常见模型

Posted mengxiaoleng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件过程以及常见模型相关的知识,希望对你有一定的参考价值。

软件过程

什么是软件过程

软件过程的目的

软件过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤

软件过程描述了什么

软件过程描述了为了开发出客户满意的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎么做(how)这些事以实现某一个特定的具体目标。

生命周期模型

生命周期模型规定了把生命周期划分成哪些阶段及各阶段的执行顺序,也称为软件过程模型。

瀑布模型

提出

1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”(Waterfall Model),也称为传统生存周期模型或线性顺序过程模型。

20世纪80年代之前,它一直是唯一被广泛采用的软件开发模型,现在它仍然是软件工程中应用最广泛的过程模型之一。

传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。

瀑布模型组成

瀑布模型将软件生命周期划分为软件计划、需求分析、系统设计、软件编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

技术图片

瀑布模型的特点

主要特点

  • 在瀑布模型中,软件开发的各项活动严格按照线性方式进行
  • 只有前一项活动的任务完成才能进行下一项活动,前一项活动的工作结果是后一项工作的依据
  • 前一项活动的工作结果需要进行验证,验证通过的结果作为下一项活动的输入,继续进行下一项活动,否则返回修改

缺点:

1.阶段间具有顺序性和依赖性
2.推迟实现的观点。过早的进行了程序的实现,往往会导致大量的返工,有时甚至会导致项目开发失败。
3.质量保证的观点。瀑布模型在实现之前无法了解项目的实际情况,只有实现了才知道项目的情况。及时验证是保证软件质量、降低软件成本的重要措施。

实际的瀑布模型-带反馈环

传统的瀑布模型过于理想化,实际上,在设计活动中可能会发现需求分析中存在的错误,而设计中的缺陷和错误可能在实现的过程中发现,在综合测试中又可能发现需求分析、系统设计或编码活动中的错误。因此,实际的瀑布模型是带反馈环的

技术图片

瀑布模型的优缺点对比

优点

1.严格地规定了每项活动必须提交的文档。可以强迫开发人员采
用规范的开发方法。
2.为项目提供了按活动划分的检查点。每项活动交出的产品必须
经过质量保证小组的仔细验证,这样可以保证软件的开发质量。
3.当前阶段完成后,只需关注后续阶段。

缺点

1.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2.由于开发模型是线性的,用户只有等到整个过程的末期才能见
到开发成果,从而增加了开发的风险。
3.早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

快速原型模型

什么是快速原型模型

1.第一步是根据用户提出的需求,由用户与开发者共同确定系统的基本要求和主要功能,并在较短时间内建立一个实验性的、简单的小型系统,称作“快速原型

2.第二步是将原型交给用户使用,用户在使用原型的过程中会产生新的需求,开发人员依据用户提出的评价意见对快速原型进行不断的修改、补充和完善。如此不断地迭代,直至开发出客户满意的软件产品。

快速原型的好处

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

2.快速原型的关键在于尽可能快速的建造出软件原型,一旦确定了客户的真正需求,所建造的原型可能会被丢弃。因此,原型的内部结构并不重要,重要的是必须迅速建立原型。

技术图片

增量模型

什么是增量模型

1.增量模型(Incremental Model)又称为演化模型。
2.融合了瀑布模型的基本成份和快速原型的迭代特征。
3.软件被作为一系列的增量构件来设计、实现、集成和测试,每个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成

技术图片

增量模型应用场景

增量模型(Incremental Model)采用随着日程的进展而交错进行的线性序列,每一个序列会产生软件的一个可发布的增量,增量模型本质上是迭代的,可以用在需求不确定、需求变化大的软件项目开发。

增量模型的特点

1.增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。

2.整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好的适应变化,客户可以不断的看到所开发的软件,从而降低开发风险。

3.当使用增量模型时,第一个增量模型往往是核心产品,即第一个增量实现了基本需求,其他的是补充的特征。

增量模型的缺点

1.由于各个构件是逐渐并入已有的软件体系结构中的,要求加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

2.在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性 。

螺旋模型

什么是螺旋模型

1988年Barry Boehm正式提出了软件系统开发的“螺旋模型(Spiral Model)”,将瀑布模型和快速原型模型结合起来。

螺旋模型的应用场景

1.它强调了其它模型所忽视的风险分析,特别适合于大型复杂的系统。

2.螺旋模型支持需求不明确,特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法。

3.螺旋模型由风险驱动,强调可选方案和约束条件,从而支持软件的重用,有助于将软件质量最为特殊目标融入产品开发之中
技术图片

螺旋模型的活动

1.制定计划:指定软件目标,选定实施方案,弄清项目开发的限制条件。
2.风险分析:分析评估所选方案,考虑如何识别和消除风险。
3.实施工程:实施软件开发和验证。
4.客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型的限制

1.螺旋模型强调风险分析,但要求客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
2.如果执行风险分析会大大影响项目的利润,那么进行风险分析就毫无意义,因此,螺旋模型只适合于大规模软件项目。
3.软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。

喷泉模式

什么是喷泉模型

1.喷泉模型(fountain model)也称面向对象的生存期模型,OO模型

2.喷泉模型与传统的结构化生存期模型比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。

技术图片

智能模型

和其他模型一样,4GT(第4代技术)模型也是从需求收集这一步开始的,要将一个4GT实现最终编程产品,开发者还必须要进行彻底的测试、开发有意义的文档,并且同样要完成其他模型中要求的所有集成活动。

技术图片

V模型

什么是V模型

V模型是瀑布模型的变种,主要反映测试活动与分析和设计的关系。V模型把测试过程作为需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证,一直到后期的验收测试才被发现。

技术图片

V模型的特点

1.在实际使用中,V模型的变型模型经常使用
2.即概要设计不必等到系统测试计划完成并评审后再进行,而是可以和系统测试计划同步进行
3.同样集成测试计划和详细设计也可以同步进行

  1. 如果单元测试计划和编码不是同一个人或者角色完成的话也可以同步进行
    5.V变形模型使得几个步骤可以同步进行,在实际开发项目使用中大大缩短了开发周期。

以上是关于软件过程以及常见模型的主要内容,如果未能解决你的问题,请参考以下文章

软件过程模型

[项目管理-1]:软硬件项目管理 - 总体概述框架实践活动常见工具软件研发过程软件开发周期模型

软件测试模型以及测试方法

结课总结

软件工程过程 第7章 软件工程过程改进

软件过程