质量,一直是企业生存的根本。软件作为一种高智力的创造活动,既具有制造业的一般特性,同时又由于其知识性强、创造性大,而具有一般制造业所没有的特点。所以软件质量管理既要秉承制造业质量管理的一般原则和思想,又要针对软件的特点,而具有自身的规范。制定出标准、有效、可操作性强的软件质量管理规范,对于实行软件产业化,提高生产效率,增强竞争力具有重要意义。

     近年来,国际上软件业按照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其它各项支持活动,保证在质量体系的各生存周期活动中全面实施有效的质量管理,实现我国软件产业的标准化、产业化。