UML软件工程组织

配置管理——实施软件质量管理的关键
熊绳祖 (转载自amteam.org)

 

  质量,一直是企业生存的根本。软件作为一种高智力的创造活动,既具有制造业的一般特性,同时又由于其知识性强、创造性大,而具有一般制造业所没有的特点。所以软件质量管理既要秉承制造业质量管理的一般原则和思想,又要针对软件的特点,而具有自身的规范。制定出标准、有效、可操作性强的软件质量管理规范,对于实行软件产业化,提高生产效率,增强竞争力具有重要意义。
  近年来,国际上软件业按照ISO 9000体系框架和要素的要求,紧密结合软件的特点,制定出在软件设计、开发、供应、维护等各个方面的国际标准,来提高软件开发管理水平, 控制产品质量。各国企业把ISO 9000质量体系认证作为加强质量管理、提高企业竞争力的一张王牌。每个通过质量认证的企业都取得了意想不到的效果,产生了巨大的社会效益和经济效益。

  ISO900族标准的基本思想就在于一个组织要确定其质量目标,并按照其确定的质量目标建立并有效实施质量体系,确保影响产品质量的技术、管理和人的因素处于受控状态 ,所有的控制应针对减少和消除不合格,尤其是预防不合格,并建立和完善持续的质量改进机制。它由一系列规则和协议组成,由专门的组织机构以一系列的管理制度和工具来保证贯彻实施。

  根据《质量管理和质量保证标准第三部分:GB/T 19001-ISO 9001在软件开发、供应和维护中的使用指南》中规定,质量体系包括一系列的支持活动要素,同时这些支持活动也为质量体系的实施提供保证。

配置管理的作用

  在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。

  随着计算机应用的深入,软件项目的需求日益复杂及变更频繁,传统的一、二个人搞定一个项目的情况越来越少,稍大一点的项目已经不再是靠某个"高手"从头到尾包办。从整个公司的发展战略来说,如何在技术日新月异、人员流动频繁的情况下,建立本公司的知识库及经验库,把个人的知识及经验转变为公司的知识和经验,这对于提高工作效率,缩短产品周期,加强公司的竞争力具有至关重要的作用。采用科学的配置管理思想,辅之以先进的配置管理工具,这对国际知名软件大公司来说,已经是必不可少的手段。

  但同发达国家相比,我国的软件企业在开发管理上,过分依赖个人的作用,没有建立起协同作战的氛围,没有科学的软件配置管理流程;技术上只重视系统和数据库、开发工具的选择,而忽视配置管理工具的选择,导致即使有配置管理的规程,也由于可操作性差而搁浅。以上种种原因导致开发过程中普遍存在如下一些问题:

1、开发管理松散

  部门主管无法确切得知项目的进展情况,项目经理也不知道各开发人员的具体工作,项目进展随意性很大,可"左"可"右"。"左"时按领导下达的"期限"进行,到期时,似乎一切已顺利完成,大家一阵胡弄,交差完成,反正领导看的是界面,至于里面是什么,留到施工时再说。施工时的工作因此变成了无法汇报、无法理清的无休止的维护。"右"时则项目工期无休止地延期。对我们软件工程来说,总的特点是先"左"后"右"。在领导面前表现"左",在用户面前表现"右"。

2、项目之间沟通不够

  各个开发人员各自为政,编写的代码不仅风格各异,而且编码和设计脱节。本来开发中错误在所难免,但项目开发人员怕沟通,似乎那是针对自已的批斗会,互相推诿责任。开发大量重复,留下大量难维护的代码。

3、文档与程序严重脱节

  软件产品是公司的宝贵财富,代码的重用率是相当高的,如何建好知识库,用好知识库对公司优质高效开发产品,具有重大的影响。但开发人员的一句名口号是:"叫我干什么都可以,但别叫我看别人的程序"。当然,开发人员的工作态度要转变,但客观上有一个很重要的原因是:前人留下的程序既无像样的文档(即使留下了文档 ,其与源程序也严重脱节),开发风格又不统一,就像一堆垃圾,要开发人员到垃圾中去捡破烂,从这个角度上看,开发人员的要求是合理的。

4、测试工作不规范

  传统的开发方式中,测试工作只是人们的一种主观愿望,根本无法提出具体的测试要求,加之开发人员的遮丑,测试工作往往是走一走过场,测试结果既无法考核又无法量化,当然就无法对以后的开发工作起指导作用。

5、施工周期过长,且开发人员必须亲临现场

  传统的开发与施工是绝对统一的,别人无法接手也无意接手(因为这意味着看别人的程序)。由于应用软件的特点,各个不同的施工点有不同的要求,开发人员要手工地保持多份不同的拷贝,即使是相同的问题,但由于在不同地方提出,由不同人解决,其做法也不同,程序的可维护性越来越差。久而久之,最后连自已都分不清楚了,代码的相互覆盖现象时有发生,且这苦水还无法倾诉,因为怕别人笑话,甚至别人问起,还得想法搪塞,可谓费尽苦心。

  针对以上问题,国内很多软件企业已经逐渐认识到配置管理的重要性,在国外一些成熟的配置管理工具的辅助下,制定相应的配置管理策略,取得了很好的成效。

配置管理经验谈

  围绕配置管理,世界一些致力于软件工程研究的公司在深入理解ISO 9000的基础上, 推出了各种符合ISO 9000配置管理标准的工具软件,如INTERSOLV公司的PVCS,Rational公司的Clear Case等。这些配置管理工具面向软件规范化、工程化、自动化的需要,帮助开发团队提高科学管理水平,从而提高工程效率,降低工程成本。现以PVCS为例,结合我们的实际经验,谈谈我们实施配置管理的益处:

1. 节约费用

(1) 缩短开发周期

  利用PVCS的Version Manager对程序资源进行版本管理和跟踪,建立公司的代码知识库,保存开发过程中每一过程版本,这样大大提高了代码的重用率,还便于同时维护多个版本和进行新版本的开发,防止系统崩溃,最大限度地共享代码。同时项目管理人员可以通过Version Manager查看项目开发日志,测试人员可以根据开发日志和不同版本对软件进行测试,工程人员可以从Version Manager上得到不同的运行版本,并且Version Manager 可以安装在Web Server供外地施工人员存取最新版本,无需开发人员亲临现场。

  利用Tracker组建开发团体之间的问题跟踪及消息通迅,通过其Notify模块与电子邮件结合起来大大加强了开发团体之间的沟通,Reporter模块可对发现的问题进行整理、以报表方式分类报出,作为开发的指导。

  以上为PVCS的两个主要模块,科学地应用可以大大提高开发效率,避免了代码覆盖、沟通不够、开发无序的混乱局面,如果利用了公司原有的知识库,则更能提高工作效率,缩短开发周期。

(2) 减少施工费用

  利用PVCS进行软件配置管理后,建立开发管理规范,把版本管理档案挂接在公司内部的Web服务器上,内部直接通过Netscape访问Version Manager,工程人员通过远程进入内部网,获取所需的最新版本。开发人员无需下现场,现场工程人员通过对方系统管理员收集反馈意见,书面提交到公司内部开发组项目经理,开发组内部讨论决定是否修改,并作出书面答复。这样做,可以同时响应多个项目点,防止开发人员分配到各个项目点、分散力量、人员不够的毛病,同时节约大量的旅差费用。

2. 有利于知识库的建立

(1) 代码对象库

  软件代码是软件开发人员脑力劳动的结晶,也是软件公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件坯一样,是快速生成系统的组成部分。长期的一个事实是:一旦某个开发人员离开工作岗位,其原来所作的代码便基本成为垃圾,无人过问。究其原因,就是没有专门对各人的有用对象进行管理,把其使用范围扩大到公司一级,进行规范化,加以说明和普及。Version Manager为对象管理提供了一个平台和仓库,有利于建立公司级的代码对象库。

(2) 业务及经验库

  通过PVCS Version Manager的注释及Tracker,可形成完整的开发日志及问题集合,以文字方式伴随开发的整个过程,不依某个人的转移而消失,有利于公司积累业务经验,无论对版本整改或版本升级,都具有重要的指导作用。

3. 规范管理

(1) 量化工作量考核

  传统的开发管理中,工作量一直是难以估量的指标,靠开发人员自已把握,随意性相当大;靠管理人员把握,主观性又太强。采用PVCS管理后,开发人员每天下班前对修改的文件 Check In,其中记述当天修改细节描述,这些描述可以作为工作量的衡量指标。

(2) 规范测试

  采用PVCS以后,测试有了实实在在的工作,测试工作人员根据每天的修改细节描述对每一天的工作做具体的测试,对测试人员也具有可考核性,这样环环相扣,大大减少了其工作的随意性。

(3) 加强协调与沟通

  采用PVCS后,通过Version Manager文档共享及其特定锁机制、Tracker与电子邮件的集成,大大加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,但又不额外增加很多的工作量。

结束语

  众所周知,管理工具软件只是管理思想的载体,提供一个好的平台,而导演还是人,针对配置管理软件,我们应该根据ISO 9000各质量要素的要求,转变我们的观念及管理思维 ,制定科学的配置管理规程,结合ISO 9000其它各项支持活动,保证在质量体系的各生存周期活动中全面实施有效的质量管理,实现我国软件产业的标准化、产业化。



版权所有:UML软件工程组织