- 软件过程改进案例教程
- 韩万江 张笑燕 陆天波编著
- 1800字
- 2025-02-17 21:25:20
1.1 软件过程
过程(Process)是为实现既定目标的一系列操作步骤,是人们使用相应的方法与规程、技术与工具等将原始材料(输入)转化成用户需要的产品的活动。过程的3个基本要素是:人、方法与规程、技术与工具,而且过程是在各种相关组织下展开的。
1.1.1 软件过程定义
软件过程(Software Process,SP)是人们建立、维护和演化软件产品整个过程中所有技术活动和管理活动的集合,是人们用来开发和维护软件及其相关产品的活动、方法、实践和改进的集合。其中相关产品是指项目计划、设计文档、代码、测试文档和用户手册等。当一个组织逐步走向成熟时,软件过程的定义也会日趋完善,其内部的过程实施将更具一致性。
过程与产品存在因果关系,好的过程才能得到好的产品,而差的过程只会得到差的产品。
目前,软件过程技术是一个非常活跃的研究领域,吸引了大批来自学术界和工业界的专家和学者。几乎每个国家都有自己的软件过程改进组织。软件过程技术的研究和实践主要有3个方向。
(1)软件过程分析和建模
软件过程建模方法是软件过程技术的起点,其中形式化和半形式化建模方法有基于规则的,或基于过程程序的,等等。过程分析和过程建模对于保证过程定义的质量、建立全面和灵活的过程体系具有重要的作用。软件过程的建模主要使用过程建模语言(Process Modeling Languages,PML)。PML最基本的功能是用于描述和定义过程,建立过程模型。PML的能力和表达方式直接影响着过程模型的质量和建模效率。所以,选择合适的PML,成为过程分析、过程建模和选择建模工具的关键。
(2)软件过程支持
软件过程支持主要是指研究和开发支持软件过程活动的计算机辅助软件工程(Computer-Aided Software Engineering,CASE)工具,过程支持工具作为一种技术基础设施,能够很好地支持、管理并规范化软件过程。它的使用使得软件过程的透明度更好,为项目的软件过程提供指导,使开发者和管理者都有据可依,便于更有效地管理软件过程。软件过程支持工具主要包括软件过程流程工具、过程文档工具、评审工具和人员管理工具。
(3)软件过程评估和改进
软件过程评估和改进是指根据某种模型对现有软件过程进行考核和评价,找出其中的不足之处,然后加以改进。改进对生产高质量软件产品和提高软件生产率的重要性已被越来越多的软件开发组织所认同。由美国卡内基·梅隆大学软件工程研究所(CMU/SEI)提出的软件能力成熟度模型除了用于软件过程评估外,还向软件组织提供了指导其进行软件过程管理和软件过程改进的框架。软件过程改进的基本原则是采用过去项目中成功的实践经验。因此,理解、记录和重用部分软件过程是软件过程改进研究的一个重要方向。
1.1.2 软件过程的分类和组成
软件过程包括各种活动、技术和用来生产软件的工具。因此,它实际上包括了软件生产的技术方面和管理方面。
根据ISO/UEC12207软件生命周期过程标准,软件过程可以分为基础过程、支持过程和组织过程(或者“管理过程”),如图1-3所示。

图1-3 ISO/IEC12207软件生命周期过程
其中:
(1)基础过程是软件项目实现过程需要的活动,包括获取过程、供应过程、开发过程(需求分析、软件设计、编码等)、运行过程和维护过程等子过程。
(2)支持过程是对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程等子过程。
(3)组织过程是对软件基础过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程等子过程。
而在ISO/IEC15504软件过程评估标准中,软件过程被分为5个过程组:工程过程、支持过程、管理过程、组织过程和客户—供应商过程,如图1-4所示。

图1-4 ISO/IEC15504中软件过程评估标准的组成
其中:
(1)工程过程包括软件系统分析、产品定义、设计、实现以及维护等许多内容,包含“系统需求和设计”、“软件需求分析”等子过程。
(2)支持过程是在软件生命周期中可以随时被其他过程所采用,起到辅助作用的过程,包含“文档编制”、“配置管理”等子过程。
(3)管理过程是为工程过程、支持过程和客户—供应商过程的实践提供指导、跟踪和监控的过程,包含“项目管理”、“质量管理”等。
(4)组织过程是用于建立组织商业目标和定义整个组织内部培训、开发活动和资源使用等规则的过程,有助于组织在实施项目时更好、更快地实现预定的开发任务和商业目标,包含“业务规划”、“定义过程”、“过程改进”等子过程。
(5)客户—供应商过程是那些直接影响到客户、对开发的支持、向客户交付软件以及软件正确操作与使用的过程,包含“软件获得”、“客户需求管理”等子过程。