软件开发过程模型概述

一、什么是软件开发过程模型?

     软件开发模型是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。主要规定了软件开发过程中需要完成的活动和任务,是开发软件项目的基础。

二、为什么要使用软件开发过程模型?

     我们知道,软件开发从来就不是一个人的事情,通常是一个团队的事情(除非你非常大神,或者整个公司就你一个人)。而100个读者就有100个哈姆雷特,团队里的每个人掌握的技术不同,想法不同,如果直接一群人凑在一起,随便商量一下产品需求和简单分工就开始敲代码,我想原定一个月的项目时间,或许一年都还不能达到用户需求。

    而软件开发过程模型就是为了解决这样的不统一而存在的。从你拿到用户需求并开始分析就已经开始进入软件生命周期,从需求分析到软件开发完成后的测试维护,它能清晰、直观地表达软件开发的全过程,明确规定每个阶段该做什么,需要完成什么任务,并产生相关的规范文档。开发人员就可以根据这些文档和过程,高效、合理的进行软件开发。大家都遵循相同的流程和文档,就不会出现由于每个人对需求的理解不同而导致的项目管理不一致问题了。

三、传统的软件模型

     随着历史的演变和发展,软件开发过程所使用的模型也在不断演变。下面就几种典型的软件过程开发模型进行分析。 

  1.边做边改模型

    顾名思义,边做边改模型就是在项目开发过程中,多次修改需求。这种模型,没有经过详细的设计,也没有规格说明。有点像前面提到的一群人大致商量需求及分工之后就开始盲目地写代码。在开发过程中,可能由于用户需求改变,或者技术难度等问题导致需求功能多次发生改变。或者在生成第一个版本之后,发现需求不对或者功能模块不齐全,又要全部重新规划项目。这就要求程序员不断地修改代码,并且这种模型没有规范的文档,软件结构会越改越混乱。使用这样的开发模型,项目经理估计早就死无葬身之地了。

  2.瀑布模型

    瀑布模型是1970年Winston Royce的,它一直是唯一被广泛采用的软件开发模型。
    从这个模型的生存时间就可以很明显地看到这个模型的合理之处。它瀑将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。在这种模型中,软件开发的各项活动个任务按照严格的线性方式进行,每个活动之间环环相扣。并且当前活动的工作结果通常为下一项活动的输入。除此之外,瀑布模型特别强调文档的作用,并且要求对每个阶段的结果进行验证。这个过程看似严谨有序,但是由于各环节之间的联系过于紧密,每个环节的结果互相影响,并且这种线性过程太理想化,也已不太适合现代的软件开发模式。
  3.原型化模型

    原型化通常是首先建造一个快速原型,实现客户或未来的用户与系统的交互,通过与用户的沟通交流,借助一些工具(通常是UI来完成),得到一个大致的软件成形后的原型图。通俗一点就是,了解用户需求后,画出一个原型图,描述软件开发完成后是个什么样子的,充分了解后,程序员就可以通过原型图开发出让用户满意的产品。

    这种模型减少了瀑布模型中因为软件需求不明确给开发带来的风险,并且因为通过产品原型图与客户沟通时更直观,也能极大地避免用户不断更改需求的风险。

 

 

posted @ 2017-09-25 09:58  W_Juan  阅读(1573)  评论(0编辑  收藏  举报