摘要:实施有效的软件项目管理需涉及软件开发中的人员、资源、过程、变化等基本管理对象。软件配置管理、过程管理和变化管理是软件开发过程中的重要支撑活动,是实现项目管理和过程改善的基础。本文在介绍配置管理、过程管理、变化管理的有关概念及与项目管理、过程改善的关系后,以青鸟软件项目管理支撑工具体系为例作了详细的阐述。
软件工程的研究主要包括软件开发技术和管理方法两方面。自从1968年NATO(北大西洋公约组织)提出软件危机的概念以来,软件开发活动逐步由无序进入到有序的阶段。在软件开发模型(如瀑布式开发模型,迭代式开发模型等),软件开发方法(如结构化开发方法,面向对象的软件开发和基于构件的软件组装技术)等方面的发展均取得了良好的效果。在管理方面,CMM模型和ISO 9000-3标准系列对软件开发过程的管理提供了指导,这些质量保证体系从管理的角度对所有与软件开发过程相关的方面进行了研究。其中,主要的管理对象包括:软件资源、人员、软件变化、过程、组织结构等。在国家科技攻关项目——青鸟工程的研究中不仅关注于软件构件技术的发展与应用,同样对软件工程化管理方法进行了研究,开发了相应的支撑工具集,已形成了基本的软件项目管理支撑工具体系。
1.软件项目管理的基本对象
在大型软件的开发中软件项目管理占有重要的地位,是决定软件产品质量的关键因素之一。
软件项目管理指的是有明确、可度量的目标,同时在有限可分配的资源约束下,对当前的项目进行任务分解,资源分配和调度的过程。它包括项目的计划、项目组织、开发模型定义。监督和控制等主要活动。项目活动涉及人员、产品、资源和过程。其中,资源和产品的变化是软件演化性的必然结果,这些变化的管理也是项目实现有序化管理的关键。
软件配置管理、过程管理和变化管理分别是管理资源演化。过程进度和软件变化,构成了软件项目管理的基础功能集合,在此基础上可以进一步进行项目的度量和过程的持续改时。
配置管理 指的是一套按规则管理软件开发和软件维护以及其中各种中间软件产品的方法。配置管理可以有效地控制软件开发过程的资源。
过程管理 规定了软件开发过程中的活动及活动之间的时序关系,过程管理包含过程的定义和控制两部分,通过过程管理保证软件开发活动按照既定的方针持续地进行,同时又可以灵活地在不同的阶段和层次监督过程的进展。
软件变化管理 是指用于计划、实现、监测、控制、记录和报告软件变化的方法,软件变化管理可以保证软件开发只实现必要的变化,保持软件开发的持续性,确保软件演化的正确性。
2. 青鸟软件项目管理基本支撑工具体系
为实施有效的软件项目管理,青鸟工程研究了系列化的软件质量保证体系支撑工具,形成了基本的支撑工具体系,可以对软件开发中各方面关键因素实现大范围、细粒度的管理,支持企业能力提升和资质提高。
青鸟项目管理支撑工具(见图2)主要包括三方面,即配置管理工具JBCM、过程管理工具JBPM和变化管理工具JBCCM。
上述工具构成紧密结合的体系,可以单独使用管理相应的对象,也可以集成使用提供统一、协调的全面管理。其中,通过共享用户、组织结构数据库,可以保证配置管理工具、过程管理工具和变化管理工具的企业用户与组织结构保持一致性,从而简化了管理工作量。
下面分别介绍这三方面工具。
配置管理工具
青鸟配置管理工具JBCM采用基于构件的配置管理模型,支持Client/Server和Browser/Server模式两种模式, 直接支持基于构件的软件开发过程,为大规模、分布式、多层次的软件系统开发提供良好的管理能力。
版本管理 JBCM中,构件是CheckOut/CheckIn等各项操作的基本单位。构件所定义的一组文件集合作为一个整体进行演化,系统维护构件的演化版本树(包括版本与分支等)。同时,JBCM为并行开发提供了较好的支持。
用户管理与安全性 配置库是整个软件配置管理的核心,通过实现用户的分级管理和操作系统提供的资源保护功能相结合,和全面的日志管理功能可以实现较完善的安全管理和保护。
配置支持 JBCM中利用配置定义软件系统的组成结构,是实现系统演化和实现部署的基础。基线是配置的状态(版本),基线由构件版本集合组成。可以利用基线实现: 在构造中(Build)定义不同版本系统的构件组成如可以定义Window版本的系统和UNIX版本的系统和在系统部署级实现系统的体系结构。
审计统计 软件配置管理不仅能够收集和存储各种信息而且可以实现对信息的查询和分析,以利于软件项目管理员跟踪、分析和决策。JBCM实现了按照用户权限分级的基本信息如项目、构件和配置的查看功能,构件和配置的查询功能,系统用户的日志审计功能和完整的报告生成器工具。
过程管理工具
JBPM提供了灵活的过程定义机制和模板功能。JBPM将软件过程分为若干阶段,每个阶段由若干任务集合构成。为适应企业活动中任务复杂度的要求,可以将过程任务定义在简单任务定义、具有状态转换的散列的任务、相互之间存在关系的任务和对任务的系统支持四个级别上。JBPM采用扩展自动机模型定义软件过程,能够为企业中的任务分配、调度和进度规划、监测等提供良好的支持。JBPM提供了以下功能:
过程模板管理 通过事先定义有价值的过程模板,可以为企业选择、裁减和制定适合本项目的软件开发过程提供良好的指导,同时为纪录和存储良好的开发过程奠定了基础。
项目过程实例化 按照选择的过程模板可以进一步细化完成过程所需的任务集合。为任务集合的分配和调度提供准备。
过程任务分配与调度 结合配置库中的人员和资源,为任务指定完成所需要的角色或人员、构件及时间。通过观察和控制过程任务的完成实现过程执行的监督和调度。
变化管理系统
变化管理系统从另一个角度管理软件系统的演化过程。 JBCCM中可以定义软件变化生命周期,并由此进行相应的管理,基本的变化生命周期如图3 所示。
其中,将变化请求分为创建、批准、分配和实施等状态,每个状态由具有相应权限的人员负责状态的改变。主要包括变化跟踪与变化控制两方面。
变化控制是指对软件变化从提出变化申请到变化的具体实施,最后到变化实施结果的审核、控制过程。
变化跟踪(也称为问题、缺陷或错误追踪)则是指一个过程,该过程记录并追踪变化请求,决定对软件系统进行哪些变化,谁来完成变化,在变化中包含哪些任务,为完成任务哪些对象要被改变,以及描述变化的目的和结果的记录。
变化管理系统和配置管理系统、过程管理系统相结合可以有效解决多种变化请求生命周期模型定制和控制软件开发中的软件资源的问题。变化管理系统JBCM围绕基本的变化生命周期提供了创建变化请求、分配变化请求、审查变化、提交变化请求等功能。