TSP 群组软件过程TSP(Team Software Process)指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以非常好的状态来完成工作。TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。
TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。 图三 CMM、PSP和TSP框架图
CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。
PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过PSP学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用PSP,从而有助于CMM目标的实现。
TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与 组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项 目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。
总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSP和TSP有机地结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP/TSP的有机集成。
实施CMM的必要性
软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术起不到预期的作用。而且项目的成功也是通过工作组的杰出努力,所以仅仅建立在可得到特定人员上的成功不能为全组织的生产和质量的长期提高打下基础,必须在建立有效的软件如管理工程实践和管理实践的基础设施方面,坚持不懈地努力,才能不断改进,才能持续地成功。
软件质量是一模糊的、捉摸不定的概念。我们常常听说:某某软件好用, 某某软件不好用;某某某软件功能全、结构合理, 某某某软件功能单一、操作困难……这些模模糊糊的语言不能算作是软件质量评价,更不能算作是软件质量科学的定量的评价。软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。产品质量,包括软件质量,是人们实践产物的属性和行为,是可以认识,可以科学地描述的。可以通过一些方法和人类活动,来改进质量。
实施CMM是改进软件质量的有效方法:控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法软件工程和很多研究领域及实际问题有关,主要相关领域和因素有:需求工程(RE:REQUIREMENTS ENGINEERING)。理论上,需求工程是应用已被证明的原理、技术和工具,帮助系统分析人员理解问题或描述产品的外在行为。软件复用(SR:SOFTWARE REUSE)。定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。这种技术,可改进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。
CMM与ISO 9001的比较
前面提到软件过程的三个流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE)。这里主要比较一下CMM和ISO 9000质量标准体系中的9001的异同。
ISO 9000族国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO 9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了ISO 9001认证。
在基本原理方面,ISO 9001和CMM都十分关注软件产品质量和过程改进。尤其是ISO 9000:2000版标准增加持续改进、质量目标的量化等方面的要求后,在基本思路上和CMM更加接近。它们之间的主要的差别是状态上的差别。ISO 9001侧重于"机构保证在设计、开发、生产、安装及服务过程中与指定的要求一致"。而CMM侧重于"支持一个机构评估及改进他们的系统的工程能力"及"指出机构选择的模型的不足之处"。
CMM和ISO 9001阐述了一个机构应该将他们如何做的观点写下来,然后去做,最后检查他们是否按照他们说的去做了。ISO 9001所关注意的是确保合格的人员所作的过程记录是有效的,并且开发生产出满足质量要求的产品。CMM在能力层次概念之间切开,作一件事情是第1级层次的概念,写下所做的事情是第2级层次的概念,有一定组织水平的写作是第三级层次的概念,等等。SE-CMM同样衡量管理能力,如第四级层次,连续处理问题的能力,第五级层次的概念。
这两个标准都涉及了产品的开发和产品的质量,但CMM在产品的设计和开发的细节作了较多要求,而ISO 9001在产品的开发过程和产品本身的质量细节作了较多要求。CMM 建立了系统工程能力模型第三级模型,而ISO 9001则无此内容。CMM没有对产品存储设备的测试作出要求,而ISO 9001则有此要求。
ISO 9001要求与质量管理体系相关的所有工作人员的经过授权并签字的质量记录(见条款4.1.2.1)。它还要求足够的资源,包括提供必要的员工培训等(见条款4.1.2.2)。第四节要求对机构的每个过程都要有记录。这是SE-CMM第2级的基本要求。从ISO 9001的角度来看SE-CMM,至少SE-CMM的第二级及以上级别才能和ISO 9001相提并论。
由以上可以得出ISO 9001和CMM既有区别又相互联系,两者不可简单的互相替代;取得ISO 9001认证并不意味着完全满足CMM某个等级的要求 ;取得CMM第2级(或第3级)不能笼统的谈可以满足ISO 9001的要求 。