1、1企业软件项目配置管理中的问题与任务摘要:软件项目配置管理是软件项目管理的有效技术手段,它实现了对软件产品整个生命周期的配置控制。企业应正确理解软件配置管理的含义,并在软件开发过程中有效实施。 关键词:软件项目 配置管理 软件配置管理作为一项贯穿整个软件生命周期的技术,产生于八十年代初。它的目的是记录软件产品生命周期的演化过程,减少频繁修改所引起的混乱,确保精确的产品配置,提高软件生产率和产品质量。 一、配置管理的含义 软件配置管理简称 SCM,是软件开发过程中运用相应技术和管理手段对配置项的功能和物理特性进行识别和记录,并对其变更进行控制。配置管理的目的是有效管理工作产品,保证工作产品的有效
2、性;有效识别、合理控制和实施变更,保证项目范围与边界条件的一致性;最大限度地规避配置混乱,提高软件生产率。 从总体上来说,软件配置管理包括五个主要方面,即配置项的标识、对配置项修改的控制、向团队成员报告软件配置管理的状态、审计软件配置管理活动和实现自动化的构建与发布。 为了有效实施配置管理,还需要组织架构上的支持活动,这就需要具备一定的组织结构。视企业的规模以及实际应用开发时的情形,软件配置管理常常在三个级别上实施:项目级,应用级和组织级,不同级别2的软件配置管理需要履行不同的职责内容,因而也具有相应的组织结构。无论是组织还是个人,在实施软件配置管理时首先要清楚自己实施软件配置管理时的范围是在
3、项目级,还是应用级,或是组织级。不同级别的活动重心不一样,认识到这一点可以使得将有限的资源投入到关键的地方,从而确保成功。 二、实施配置管理存在的问题 1.没有专职的 SCM 人员;没有兼职的 SCM 人员;没有 SCM 人员 由于对配置管理的内容认识不清,组织常常不重视配置管理,项目组除了项目经理,常常是清一色的开发人员。缺乏配置管理人员或“凑合”的配置管理人员常常会造成项目的诸多问题,如版本丢失,问题的重复出现,并行开发力度不够等。 2.SCM 人员地位不高;团队整体 SCM 意识不够 地位不高的 SCM 人员缺乏推行 SCM 制度的力度,团队的 SCM 意识不够更是造成实施的难度加倍。
4、3.对 SCM 缺乏正确全面的认识及存在偏见 对 SCM 实施的范围缺乏全面的认识常常使得实施时一叶障目,将焦点集中在有限的几个点上,例如版本控制和 Bug 管理,而其他方面却成为了盲点,例如软件的构建与发布。在主观上对配置管理存在一些偏见,认为它过分强调过程与文档,过于繁琐,并且也解决不了项目中的最终问题。 4.忽视软件变更控制和管理 3软件开发过程中,各种原因导致的软件变更未得到有效控制和管理。如用户要求修改的工作范围和需求未执行审核和风险评估,就进行设计和开发,从而导致软件项目整体进度受影响,软件质量下降。开发人员为在规定期限内完成任务,敷衍了事,容忍部分缺陷存在,给后期施工留下隐患,造
5、成无休止的维护。 5.忽视配置审核 在实际操作过程中,配置审核往往被认为是事后活动而被忽视。殊不知该事后活动是相对的,在项目初期审核发现的问题,对项目中后期工作而言是有指导和参考价值的。 6.测试工作开展不规范 软件测试和配置管理密不可分,缺乏合理配置管理的软件测试只是形式主义。若测试人员仅凭主观意愿进行测试,未对测试配置项进行有效控制,会使得测试结果无法量化,无法考核;若开发人员仅对测试发现的问题进行修改,未与测试配置项进行关联和版本控制,会导致很多问题被重复修改或不断重现。测试环节形同虚设,当然就无法对以后的开发工作起指导作用。 三、软件配置管理的任务 软件配置管理的主要任务贯穿整个软件生
6、命周期,主要包括以下几个方面: 1.软件配置项标识 在软件开发过程中,应对配置项进行粒度划分,并按一定的方式对配置项进行命名和组织。对软件配置项的粒度进行划分时,应尽量细化。4配置项粒度越细,可视性越清晰,形成的基线相对越稳定。配置项进行标识时,需要考虑软件配置项之间的关系。 2.基于基线的软件配置项版本控制 在软件开发过程中,软件配置项的版本数目不断增多。软件配置项版本控制就是指按一定规则,对基于基线的软件配置项进行版本控制。其目的之一是实现开发团队并行开发,提高开发效率;其二是对软件开发过程中产生的配置项文件的发展过程提供有效的追踪手段,保证在需要时可回溯到旧基线版本;其三是避免未授权的访
7、问和修改,使软件资产和知识产权受到有效保护。 3.软件版本构建和发布 软件版本构建主要实现了源码到执行码,单元模块到集成系统的过程。软件版本发布则有效控制了测试版本和开发版本的一致性,确保不会出现版本混乱,保证其运行稳定性。 4.软件配置项修改和变更控制 在软件开发过程中,软件配置项修改及其频繁,需要结合配置管理工具,对其进行有意识,有机制地控制,以防止盲目修改造成的混乱。为了提高效率,当配置项状态为正式发布或已成为基线的配置项时,若要修改,则按照变更控制规则执行。 5.软件配置项的审计 软件配置审计主要是指在配置项标示、配置项修改和变更控制、配置项状态、配置项版本控制等基础上对所有配置项的功
8、能及其内容进行审查,以保证配置项的可追踪性和有效性。配置审计的目的是检查软件5产品和软件过程是否符合规定要求或规程,确保产品功能配置项(如配置项的实际工作性能是否符合它的需求规格说明的要求)和物理配置(如基线中的程序、数据、规程和文件等配置项)的完整性,以及软件生产过程的有效性。同时配置审计还是变更控制的补充手段,正式的技术复审的内容之一。在执行配置审计时需要做好4W1H(What、Why、When、Who、How) 。 6.配置状态报告 配置状况报告是对软件开发过程中配置项的不同状态信息进行记录和反馈,进而反映项目的进展状况,以便开发团队工作关系的分析。 四、结束语 软件项目管理过程中,应当尽量避免配置管理中存在的问题,全面完成配置管理的各项任务,实现有效的项目配置管理,能提高软件开发项目组的工作效率,减少配置混乱,及早发现风险并制定相应风险规避或应对措施,提高软件项目管理水平。 参考文献: 1周良源、夏卫民.软件配置管理概述J.计算机应用研究,1999, (11):85-87. 2毛新军,常志明,王戟.面向 Agent 的软件工程:现状与挑战J.计算机研究与发展,2006,43(10):1782-1789 作者简介: 李海星(1980-) ,女,浙江温州人,部门主管、助理工程师,从事软件项目管理工作。