简体版  |  繁体版   推荐信息: 阅读排行 | 滚动 | 微软SOA高峰会 | 中型企业创新社区 | 随心所欲发新闻
软件与服务

软件开发方法比较评估框架

出处:软件世界 作者:王晓毅 2008-02-19 16:58 评论
字体大小: | |
传统的结构化开发过程方法描述了从软件需求分析定义到软件经过运行维护废止的跨越整个生存期的全部过程、活动和任务的结构框架。

  结构化开发过程方法

  传统的结构化开发过程方法描述了从软件需求分析定义到软件经过运行维护废止的跨越整个生存期的全部过程、活动和任务的结构框架。结构化的开发方法的每项开发活动一般有以下特征:

  活动拥有严格的入口条件和出口条件定义,一般为接受上一项活动的一些经过评审的工作结果或工作对象,作为该项活动的入口条件;而将该项活动结束时输出的评审通过的工作成果或工作对象,作为该项活动的出口条件;一般上一活动的出口条件即是本次活动的输入条件。

  明确的活动的操作过程规则定义,说明该项活动要完成的任务以及如何完成。

  活动和工作可输出物必须经过评审通过确认,才可继续进行下一项活动。

  瀑布开发模型

  瀑布型是最常见的结构化开发方法。瀑布型规定了需求分析定义、设计、编码、测试的自上而下、相互衔接的结构化的开发过程。

  瀑布方法把测试推迟到项目生命周期的最后阶段进行,当系统出现严重错误并且修改代价很大时,推迟发布日期在所难免了。而且瀑布模型使得开发中的很多关键成员例如开发、测试长期处于长期空闲状态,例如在紧张项目时期,测试人员最后阶段才开始介入测试,因为前期没有介入而学习和熟悉时间都不够,造成测试的缺失和不够深入。如何降低系统中的隐性bug,而使得开发人员更有自信的面对出产的代码呢?如何使测试人员能更快地熟悉系统,更有效的进行测试?“V模型“可以称为瀑布型的变形模式,它提出了测试提前的理念,测试在需求阶段就已经开始介入,以下是V模型的结构体系:

  V模型

  V模型提出了测试提前的理念,并给了大家带来了更加明晰的过程结构、完善严格的可输出物的评审体系来保障开发质量。但是“七过程十步骤“的过程的严谨性和复杂性也势必加长了开发周期。在实际使用中,V模型的变型模型经常使用,即概要设计不必等到系统测试计划(包含用例)完成并评审后再进行,而是可以和系统测试计划同步进行。此时两者依据的入口条件均是需求规格说明书。同样集成测试计划和详细设计也可以同步进行,如果单元测试计划和编码不是同一个人或者角色完成的化,也可以同步进行。V变型模型使得几个步骤可以同步进行,在实际开发项目使用中大大缩短了了开发周期。参见下面的“V”变形模型。

  V模型的测试提前的理念和严谨质量保证体系使得V模型在实际项目中应用甚广,很多欧美、日本、中国等著名公司的外包业务中均要求合作方采用V模型作为其开发过程体系。

  的确,瀑布模型和V模型为我们软件开发提供了有效的管理模式,结构化的开发过程比较严谨,并且以项目的阶段评审和文档控制方式对整个开发过程进行指导,从而保证软件产品可以及时交付,并且达到预期的质量要求。如果软件开发人员对所开发的项目需求已有了较好的理解或有较大的把握时,瀑布模型非常实用。

  但是最为突出的缺点是该模型缺乏灵活性,特别是无法解决因为软件需求不准确而直接导致最后一些致命性后果出现,因为这些致命性的后果问题在瀑布型模型中直到开发过程最后快完成时才会被人察觉到。对开发人员而言,经常会有这种无意义的返工,而对用户而言,开发出的软件并不是他们真正需要的,甚至不可用或者用户根本用不上。

  原型及螺旋模型

  为弥补瀑布模型的不足,原型及螺旋模型法应运而生。

  原型法中,开发人员并不是一上来就开始根据需求规格进行设计和代码开发,而是通过制作原型进行试验性开发,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。在实际中原型经常在需求分析定义的过程进行。原型法减少了瀑布模型中因为软件需求不明确而给开发工作带来的风险,因为在原型基础上的沟通更为直观,也为需求分析和定义,提供了新的方法。原型法的应用意义很广,瀑布和“V”模型而将原型法的思想用于需求分析环节,来解决因为需求不明确而导致产品出现严重后果的缺陷。

  对于复杂的大型软件,开发一个原型往往达不到要求,为减少开发风险,在瀑布模型和原型方法的基础上的演进,出现了螺旋模型和以及大量使用的RUP。

  敏捷方法

  结构化的方法给了我们众多的规范,为了保障质量也需要我们产生很多过程文档作为阶段性评审的对象。结构化的开发方法更多的考虑了做事的流程和规范,而没有考虑人的因素,原则规范、模式、和实践都是非常重要的,但是我们知道开发过程是由人去实施的,使他发挥作用的也是人。人的重要性不言而喻,而且团队开发是由人组成的团队去完成的,人与人的交互是复杂的,并且效果也非常难以预期。敏捷方法近来得到了大量推广,敏捷组织也兼容并蓄,现在敏捷开发拥有众多的方法,最重要最有影响力的首推极限编程XP了,它是由一系列简单却互相依赖的实践组成,这些实践结合在一起形成了一个胜于部分结合的整体。极限编程涉及到的实践领域包括12个核心实践:现场客户和团队整体、规划策略和计划的制定、小发行版本计划、简单设计、客户测试、持续整合、重构、结对编程、代码共享、每周工作40小时、隐喻(用普通的语言和术语的集合用来预见和描述项目的功能)、编码标准和可持续步伐。这些实践也是XP的核心价值,所以敏捷开发并不是简陋粗糙作坊制开发的代名词。

  但敏捷开发以降低结构规范程度和严格程度,来使得更能满足不断变化的商业环境的需要,适应性更强。

  开发方法评估、比较、应用

  二维的开发过程方法评估框架,横坐标是方法的结构规范度,低规范度代表产生最少的文档且开发过程不是拘泥于工作规范,高规范度代表产生全面的文档且保持对制品的可追溯性并已建立变更控制委员会,纵向垂直坐标是瀑布模型和迭代模型。瀑布模型是一线形的开发方法,在项目后期进行集成和测试;迭代开发模型是风险驱动的开发方法,在项目早期实现架构并进行集成和测试。

  敏捷开发方法使用文档和规范度较低的高迭代方法,这使得它更适用于小型的,不很复杂的需要快速投入市场的项目。但是现在敏捷开发过程还附加提供了对开发复杂项目的指导,使得这些过程的规范度更高。一些敏捷开发方法,例如XP和crystal的现在也开始应用到了一些大型而且较复杂的项目。随着项目规模的不断增大,需要对实践过程提供约来越多的指导。可以在开发方法比较评估框架图中看到,随着项目规模的不断增大,需要提供更多的指导、更高的规范度,这样就会使敏捷开发方法移向规范度更高的坐标系的右方。

共2页。 1 2 :
  • 本文关键字:
  • 应用(2162)
  • 奥运嘉年华
    网友关注
    热门产品
    编辑推荐
    推荐专题
    更多
    思科
  • 打开网络创新之门
  • 思科公司于北京嘉里中心饭店成功举办了主题为“创新网络,绿色引擎”的思科创新日暨思科新品发布会。
  • 论坛热贴
    更多
    博客精选
    更多
    视频推荐
    更多
  • 杜青松:对IT人员要求别具一格
  • 在对杜青松的采访中,他透露出目前在中粮包装有限公司信息化建设的工作中的一个难点——IT人力资源短缺。
  • TMG

    Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络

    渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868

    版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i

    经营性网站备案信息 网警备案 中国网站排名