集成团队软件开发过程(ITSP)

类别:Java 点击:0 评论:0 推荐:
 

集成团队软件开发过程(ITSP)

       “商场如战场”,当今世界软件公司多如牛毛,如果公司本身缺乏足够的战斗力,根本不可能在经济大潮中立足。软件开发早就越过了个人英雄主义时代,可以说正处于大规模集团军作战年代。因此一个公司的战斗力主要就取决于公司内部各个团队以及组合团队(多个团队的组合)的综合实力。

Harlan Mills提供了一个崭新的、创造性的解决方案。Mills建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。也就是说,同每个成员截取问题某个部分的做法相反,由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。 在“外科手术式”队伍中,团队的各种职责被人为的分成了不同的角色。

如今比较受推崇的开发过程主要有两种:RUP和XP。RUP突出理论,提出了一整套的过程框架,是重型的开发过程;而XP则更倾向于实践,本身就是从实践的基础上总结出来的,属于轻型开发过程。无论哪种开发过程,基本忽略个人与团队开发的区别,而当今又处于团队开发时期,因此总结出了集成团队软件开发过程(ITSP)。当然,本过程不是凭空捏造的,而是提取了上面两种过程的若干优点,组合后形成的,可以说是上面两者过程优化结合后产生的一个过程实例。

集成团队软件开发过程(ITSP)的定义:受角色控制的,规范化的工具、输入和输出相集成的类流水线式开发过程,并可扩展成复杂网状过程。ITSP中包括四类元元素,即角色、工具、输入和输出。

见(图一)所示:

图一

 

根据团队开发过程的定义,下面介绍相关的概念。

       角色

       在一般的开发团队中,基础角色主要有项目经理(PM)、项目组成员(TM)、配置管理员(CMO)、风险管理员(RO)、测试协调员(TC)、度量管理员(MC)、质保(QA)等(详细的角色划分需要更深一步的讨论)。

       见(图二)所示(此图得自网上,如有问题,与我联系):

图二

       各种角色都会有多种工作职责,随着信息化的高速发展,大多数的工作可以在计算机上来完成。也就是说:执行某项工作即操作某些软件。例如:配置管理员(CMO)使用配置管理软件来执行配置工作,因为配置工作中大部分作业由软件来完成了。在这基础上,我们就可以制定各个角色所需要使用的工具。因此划分团队角色是团队化开发的第一步,也是建立团队的前提。

       当然,计算机不能代替人脑的思考,因此可以把思考的结果作为工具软件的输入。排除了人脑的思考以后,工作的其它部分由电脑来完成就更合适了(此乃废话 ^_^)。

      

       工具

       既然把执行工作看成操作工具,我们就可以把注意力集中到工具上。工具的选择和使用是其中最主要的两个问题。

1、工具选择

一般面向一个领域的工具有很多,选择适合自己的工具成了一个棘手的问题。工具的选择主要遵循以下几条规则:使用方便,功能强大;容易集成,便于团队开发;属于同一公司的产品则更好。譬如:面向对象分析和设计的软件就有Rose、TogetherControlCenter等,为了便于集成开发,我们可以选择Rose。因此在开发中,首先就应该选择自己合适的工具。根据图二所提出的角色,我们大致可以选出一些好的工具。譬如:对于项目经理,我们可以选择Microsoft Project2000;对于配置管理员,我们可以选择ClearCase、CVS、JBCM等;

 

2、工具使用

熟练的使用工具是每个团队成员必须具备的,这是前提条件。但是应该在熟练使用的基础上,摸索出一整套工具集成开发方法。当开发集成度越高,开发的效率也越高。

 

       输入+输出

       在每个工具使用前后,都会有一定的输入和输出,如:对于Rose,其输入就是项目的详细需求,输出就是用例图、设计文档等;对于JBCM,其输入就是开发过程中的各种文档和程序,输出可以是整个产品。对每一种工具而言,其输入和输出都是不同的,但是,开发过程中所用到的工具并不多,因此我们可以把过程中所有的输入和输出规范化。

      

       规范化

       无论是工具,还是输入和输出,都必须是规范化的,当然也是比较容易规范的。因为按照团队开发过程,我们可以把过程中使用的工具、输入和输出一一规范化。譬如:规范设计文档,生成一个设计文档的模板,我们就可以用Rose直接生成设计文档。

 

当然,集成团队开发过程(ITSP)有利也有弊,

优点主要有四点:

1、过程支持团队开发。

2、过程的各个步骤都是可视的,因此对开发过程的管理比较简单。

3、过程的开发效率是随着集成度的提高而提高的,因此应该尽快摸索出适合团队的具体开发过程。

4、过程支持扩展,按照需要增加过程中的元素,能集成则更佳。

弱点主要有两点:

1、各种工具集成以后,牵一发而动全身,稳定性不足。

2、各种工具都会有一定的版本,可能会出现版本兼容性的问题。

 

最后,我用一个采用Java技术来开发J2EE应用的开发过程范例来结束文章。

见(图三)所示:

 

 

参考文献:

·《THE MYTHICAL MAN-MONTH》    FREDERICK P. BROOKS

 

 

Befresh

2003-01-22

本文地址:http://com.8s8s.com/it/it18042.htm