随着信息技术及软件技术的飞速发展,装备软件在武器装备的功能实现上所占比重越来越高,其复杂程度不断增加,规模也越来越大。与之相适应,军工企业在装备软件研制中自觉运用了软件工程技术, 但应当看到的是, 软件开发管理仍存在发展不平衡、注重结果忽视过程、软件产品不完整、更改控制混乱等诸多问题,实施软件配置管理的必要性日益突显。GJB9001B《质量管理体系要求》与GJB9001A相比,增加了落实软件配置管理的要求,由此可见,很有必要进一步深入认识和理解软件配置管理。
1 配置的概念
配置的概念源于制造业,起初就是材料清单的概念,目的是针对复杂系统的各个组成部分进行有效标识,例如,购买计算机时,通常被问到“你要什么样的配置”,回答往往是系统的CPU、磁盘以及外设配置及其相应的品牌、规格、型号等等。软件的复杂性日益增大,如果仍然把软件看成一个单一的整体,就无法解决所面临的多种产品开发维护、保证版本精确、对特殊版本需求的处理等问题,于是与制造行业复杂系统需要材料清单相类似,软件领域也需要引入配置的概念。
软件领域中的所谓配置项,是软件配置管理的对象,也就是在整个软件生命周期内产生的所有信息的集合,主要可分为三类:一是程序,含源代码和可执行程序;二是文档,包括针对开发者和用户的文件;三是数据,包含了程序内数据库和支持软件的外部环境等。复杂的配置项是分层次的,可以形象地以结构树表示,其分支由很多配置项组成,分支可以进一步包含子分支。配置项和配置管理工具、配置规范、配置管理人员等构成了整个配置管理体系。
2 软件配置管理的概念
对于软件配置管理,一个权威的定义是:“一套应用技术上和管理上的指导和监督的方法,用来:识别和记录配置项的功能特征和物理特征;控制这些特征的变更;记录和报告变更的处理和执行的状态;以及验证其符合特定的需求。”
简而言之,软件配置管理,就是管理软件的变更,对软件产品的配置项进行管理,在整个生命周期内尽量地减少技术状态方面的错误和混乱,保证软件产品的完整性、正确性和可追溯性。正如要保证一型装备的正确制造,就要保证选取了所有正确型号、编号、批次的零部件。那么,就需要明确某种规则,标明各零部件型号及其相互关系,并将这些配置信息形成文档。而当配置发生变更时,要及时更新这样的文档。并且,对这种变更进行控制,以保证其得到批准和相应的测试。这些都属于对配置的管理。
软件也是这么配置起来的,但还有其特点:第一,软件变化快,版本演进繁杂。一条语句,一个参数的改进,软件已经是不同的版本了;第二,装备软件的耦合性更高。当开发者为某个需求改动源代码的时候,通常会发现,要改动的不止一处,而且从目录结构上看,改动之处可能分布很广,若考虑不周,某个源代码的变化,常会影响到相关模块,甚至给整个软件带来灾难。基于上述特点,软件配置管理的主要内容包括:
1)制定项目的配置计划。为保证软件配置管理的及时有效,其主要内容包括:组织机构、职责权限、活动及流程的策划、采用的方法和工具等;2)建立组织机构。通常根据项目复杂程度,按总体、系统、子系统分级设置专门的配置管理员;3)对配置项进行标识。明确基线,并为每一个配置项赋予唯一的标识符,使所采用的配置标识易于理解、识别;4)对配置项进行控制。包括版本控制和变更控制,通过建立软件“三库”(开发库、受控库、产品库)对入库、出库和更改进行控制;5)进行配置审计。对配置项的管理是否切实有效并达到预期目的进行评价,确保配置项更改的正确性得到验证和批准、配置项已被保存而且安全以及软件产品的完整性;6)报告配置的状态。确保相关人员及时、准确地掌握配置管理的内容和状态。
3 软件配置管理的认识误区
随着软件工程化的不断深入,贯彻相关国军标已逐渐成为一种自觉行动,但同时也可看到,对于软件配置管理,有的军工企业对它的理解有偏差,或者在切实实现过程中存在着认识误区。
误区一:版本控制等于软件配置管理
版本控制是软件配置管理的核心功能。只有进行了版本控制,才有了其他的功能提升的基础,但仅有版本控制是不全面的。有的军工企业在具体实施配置管理的过程中,往往只注重版本控制,而没有落实真正的配置管理。常见的一个事实是:一旦某个开发人员离开工作岗位,其原来所编写的代码便基本成为垃圾,由于文档不全,无从考究,虽然其软件版本正确,但无法维护,若出现新的问题无法进行修复。这种问题,说明研制单位对软件配置管理在意识上不够重视,没有专门对每个开发人员的代码和文档进行科学的管理,将其放在研制单位一级,进行规范化,加以说明和存储。由此可见,关注版本控制只关注了结果,而真正的配置管理需要在关注结果的同时更注重过程。
真正的配置管理,其中心已从文件的版本控制转移到对开发活动的管理。基于文件的版本控制是面向机器、面向代码的。而所谓的活动就是各种各样的实际开发任务,或者变更请求,如增加新功能、已有功能的增强、软件错误的修复,等等。配置管理工具自动为每个活动维护一个“变更集”,即该开发活动改变了哪些文件,形成了哪些新版本。变更集作为一个单一的单元参与组织和集成,从而有效保证了版本之间的一致性。由工具自动实现开发活动与文件的版本变化之间的关系。
误区二:采用配置管理工具等于有效的配置管理
实施软件配置管理需要采用配置管理工具,没有工具的支持,进行有效的配置管理是难以想象的。出于对工具的迷信,很多研制单位以为只要配备了配置管理工具,就自以为建立了良好配置管理体系。但使用好的工具并不能代表就能实施好配置管理。成功地运行配置管理工具,需要规范的流程和合格的资源(包括了配置管理员、开发人员等)作为支撑。条件得不到保证的情况下,再强的工具也无法产生效益。比如利用工具执行修改工作的时,有人修改后马上check in;有人修改后,进行build,然后check in;有人修改后,进行build,并简单的测试再check in。由此可看出,使用同样工具的同一操作,不同的人、不同的操作流程有不同的后果。
工具和管理之间的关系是辨正的,只有当研制单位形成了一套有效的管理规范,参与人员具备了成熟的配置管理理念,工具才有了灵魂,采用工具就能够事半功倍。(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)