软件组织在进行软件过程改善(简称SPI)时,其核心工作之一就是建立和维护组织的软件过程财富。所谓软件过程财富,顾名思义,就是组织在SPI过程中通过积累而得到的用于指导软件项目的过程文档和数据等重要信息。
任何一项组织认为在进行过程定义和维护软件方面有用的实体均可成为过程财富的组成成分。软件过程财富能够为软件项目在制定、裁剪、维护和实施软件过程时提供了全面的指导。
总体上,组织的软件过程财富包括以下5个方面内容:
● 组织批准的软件生命周期;
● 组织标准软件过程;
● 裁剪指南;
● 组织的软件过程数据库;
● 组织的软件过程有关的文档库。
一般情况下,只有达到了CMM Level 3成熟度的组织,才会建立上述包括5个方面内容的、完整的软件过程财富。
由于CMM Level 2仅关注项目级的一些管理过程,因此组织通常在CMM Level 2时只实现了对特定类型项目的管理控制,实现了同类项目的可重复性。在持续的SPI工作中,组织会基于CMM Level 3的要求对特定项目的软件过程进一步升华,针对组织的所有项目建立一个共同的软件过程,并逐步建立其他的软件过程财富。
组织能够以多种方式来组织软件过程财富,具体取决于组织建立其标准软件过程的方法。例如,软件生命周期的描述可以是组织标准软件过程的一个组成部分。此外,软件过程有关文档库中的一些部分也可以存放在组织的软件过程数据库中。东软股份则是将软件生命周期的描述和裁剪指南作为组织标准软件过程的组成部分,对组织的程序文件进行统一管理。
本文结合东软股份在这方面的工作经验介绍软件过程财富的含义及其具体应用。
软件生命周期
软件生命周期是指一段时间,指从设想一软件产品开始到软件不再供使用为止的时间间隔。软件生命周期一般包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装和调整阶段、运行和维护阶段,有时还包括退役阶段。
选择一个适当的软件生命周期对项目来说至关重要。在项目策划的初期,就应该确定项目所采用的软件生命周期,统筹规划项目的整体开发流程。为了做好这项工作,组织需要预先识别并总结出可供项目选择的软件生命周期,同时,还需要提供指导原则(这部分通常在裁剪指南中)帮助项目选择适当的软件生命周期。
一个组织通常为多个客户生产软件,而客户的要求也是多样化的。一种软件生命周期往往不能适合所有的情况,因此组织可以规定多种软件生命周期供项目使用。这些软件生命周期一般从软件工程文献中获得,并可加以修改,使之适于组织的情况。在制定项目定义软件过程时,这些软件生命周期可以和组织标准软件过程结合在一起使用。
东软股份依据组织内各个项目的需求特点和开发周期等特征,总结了如下表所示的几种供不同项目选择的软件生命周期。
表 软件生命周期
东软股份在组织的程序文件中详细描述了每个软件生命周期,包括原理、优缺点、适合哪些类型的项目等,通过这些描述可帮助项目人员很好地理解和运用组织已批准的软件生命周期。
另外,如果在实际工作中,基于特定项目的经验积累和总结,可能需要形成新的软件生命周期,此时可依照一定的流程将其定义和描述加入到组织的软件过程财富中。
标准软件过程和裁剪指南
组织标准软件过程是组织中所有软件开发和维护项目共用的软件过程,是项目定义软件过程的基础。它保证组织过程活动的连续性,是组织软件过程的测量和长期改进的依据。
裁剪指南则用来指导项目对组织标准软件过程进行裁剪,以形成适合项目特征的项目定义软件过程。
下面是几个有关的基本概念:
● 组织标准软件过程
组织标准软件过程是基本过程的可操作的定义,基本过程指导在组织中建立一个针对所有软件项目的共用的软件过程。该软件过程描述预计每个项目的软件过程均会包含的基本的软件过程元素。
● 软件过程元素
软件过程元素是指一个软件过程描述的构成元素。每个过程元素包括一组妥善定义的、有限制的、紧密相关的作业(例如软件估计元素、软件设计元素等)。过程元素的描述可以是待填充的样板、待完成的片段、待精炼的抽象、待修改的完整描述,或已使用的无须修改的完整描述。
● 项目定义软件过程
项目定义软件过程是指对项目所用软件过程的可操作的定义。项目定义软件过程是一个已很好特征化的和已理解的软件过程,用软件标准、规程、工具和方法予以描述。通过裁剪组织标准软件过程以适合项目的具体特征的方法来制定它。
基于上面的定义,我们可以了解到:组织标准软件过程是由已定义的组织内所有项目通用的一些软件过程元素组成的。在进行具体描述时,可以首先依据这些过程元素的特点,按照一定的方式将这些“零散”的过程元素加以组织。
东软在SPI实践中将已识别的过程元素分成三类,主要内容如下:
● 主要的生命周期过程组:包括供应过程、开发过程、维护过程;
● 支持的生命周期过程组:包括配置管理、文档编制、问题解决、质量保证、同行评审、组间协调;
● 组织的生命周期过程组: 包括管理、基础设施、软件过程改善、培训。
要清晰地描述组织的标准软件过程,仅仅将过程元素分组还不够,还需要描述这些过程元素之间的联系,即软件过程体系结构。
软件过程体系结构是对组织标准软件过程的高层次(即概括的)描述。它描述组织标准软件过程中软件过程元素的排序、界面、相互依赖关系及其他关系。
图1为东软股份确定的软件过程体系结构。
组织标准软件过程是在通用的层次上予以描述的(有关组织标准软件过程的具体内容将在今后的连载中给出详细的论述),因此项目可能无法直接使用它,裁剪指南的目的就是帮助项目裁剪组织标准软件过程,形成项目定义软件过程(如图2所示)。
文章来源于领测软件测试网 https://www.ltesting.net/