技术开发 频道

Rational开发过程

    2.3. 迭代

    从技术的角度来看,软件开发可以视为一连串的迭代过程,通过这些迭代被开发的软件得以增量演进。 每次迭代都以一个可执行的产品的发布而结束, 该产品可能是完整版本的一个子集,但从工程的或用户的角度来看是有用的。 每次发布都伴随一些支持性工件:版本描述、用户文档和计划等。

     


    一次迭代包括以下活动: 计划、分析、设计、实施和测试。 根据迭代在开发周期中所处位置的不同,这些活动分别占不同的比例。

    管理角度和技术角度之间是协调的, 而且各个阶段的结束还和各次迭代的结束保持同步。

    换句话说,每个阶段可以分为一次或多次迭代过程。

    (注意:本图中每阶段的迭代数目仅为示意)

   
    但是,这两个角度(管理角度和技术角度),不仅仅只是保持同步,它们还具有一些完全相同的里程碑,它们共同贡献出一些随时间演进的产品和工件。 一些工件更多地处于技术方面控制之下,另一些工件更多地处于管理方面的控制之下。见第五节。

    这些工件的可用性、工件是否满足所建立的评估标准,是构成里程碑的主要具体元素,比日历牌上的日期提供了多得多的内容。

    像周期一样,迭代之间也会有轻微重叠。即第N次迭代的计划和构架在第N-1次迭代还未结束时就开始了。有时候,迭代也会平行进行:一个工作于系统某一部分的小组,可能在某个迭代内没有可交付的工件。

    2.4.区别

    对于不同的项目而言,每个阶段的侧重点,入口和出口准则,一个开发周期的各个工件,以及各次迭代的数目和长度都会不同。这主要取决于作为过程判别式的的四个主要项目特征。按照影响程度降序排列,它们是:

    . 业务环境

        契约性工作,开发者基于给定的客户规格说明只为该客户开发软件。
        推测性开发或商业开发,开发者开发软件以推向市场。
        内部项目, 开发者和客户在同一个机构中。

    . 软件开发工作量的规模:

        按照一些度量标准来确定,比如 Delivered Source Instructions,或功能点、人-月数,或者只按照成本。

    . 新颖程度:

    对于软件开发组织,这个软件新颖程度如何有多新,尤其是该软件是否为第二次或更后面的周期。这项区别包括了组织和过程的成熟度、资产、技术水平,当前的技状况,以及诸如组建并培训团队、获取工具及其他资源这样的问题。

    . 应用类型,目标领域:

    MIS,命令和控制系统, 嵌入式实时系统, 软件开发环境工具等等, 尤其时具体的应用领域会给开发提出特殊的约束条件:安全性、性能、国际化、内存限制等。

    本文首先描述适用所有类型软件开发的通用过程,然后描述了一些有区别价值的特定过程实例,并列举了几个例子。

    2.5工作量和日程安排

    各阶段在工作量和时间安排上是不同的。尽管由于不同项目类型之间相差会很大,一个典型的中等规模项目的最初开发周期可以预计为下面的比率:

   


    可以用下图表示:

     

    但是对于一个演进周期来说,起始阶段和细化阶段可能大大缩减。使用特定工具和技术(如应用程序构建器),构建阶段可以远远小于起始阶段和细化阶段的总和。

0
相关文章