摘自www.computerworld.com.cn
左美云 李东 董小英等著
目前,人们对信息系统项目提出的要求往往只强调系统必须完成的功能、应该遵循的进度计划以及开发这个系统所花费的成本,却很少注重在整个生命周期中信息系统应该具备的质量标准。这种做法导致系统维护费用增加,当需要把系统移植到另外的环境中或使系统与其他系统配合使用时,需要完成很多辅助工作,导致总拥有成本增加。
IS建设需要全面质量控制
信息系统的质量治理不仅仅是项目开发完成后的最终评价,还需要在信息系统开发过程中进行全面质量控制。也就是说,不仅包括系统实现时的质量控制,也包括系统分析、系统设计时的质量控制;不仅包括对系统实现时软件的质量控制,而且还包括对文档、开发人员和用户培训的质量控制。
之所以对信息系统采取全面质量控制,是因为在信息系统生命周期的各个阶段,对上一阶段的理解以及本阶段的设计与实现上都存在着这样那样的问题。在图1中,各阶段之间的接口至少存在列出来的9个问题,要想顺利解决每一个问题并非易事。
图2 软件质量与产品活动的关系
如何建立质量指标体系?
信息系统的质量比较难治理,原因之一是信息系统的质量指标难以定义,即使能够定义,也较难度量。由于信息系统的核心是软件,因此如何度量软件的质量成为解决问题的要害。这里介绍一种从治理角度度量软件质量的方法。
我们把影响软件质量的因素分成三组,分别反映用户在使用软件产品时的三种不同倾向或观点(图2)。这三种倾向是:产品运行、产品修改和产品转移。信息系统作为一个产品,也可以参照这三种倾向来定义。
我们可以采取以下步骤实施全面质量控制:
1.实行工程化开发
“信息系统开发方法”一词的广义理解是“探索复杂系统开发过程的秩序”;狭义理解是“一组为信息系统开发起工具作用的规程”,按这些规程工作,可以较合理地达到目标。规程由一系列活动组成,形成方法体系。信息系统是一项系统工程,必须建立严格的工程控制方法,要求开发组的每一个人都要遵守工程规范。
2.实行阶段性冻结与改动控制
信息系统具有生命周期,这就为我们划分项目阶段提供了参考。一个大项目可分成若干阶段,每个阶段有自已的任务和成果。这样一方面便于治理和控制工程进度,另一方面可以增强开发人员和用户的信心。
在每个阶段末要“冻结”部分成果,作为下一阶段开发的基础。冻结之后不是不能修改,而是其修改要经过一定的审批程序,并且涉及到项目计划的调整。
3.实行里程碑式的审查与版本控制
里程碑式审查就是在信息系统生命周期每个阶段结束之前,都正式使用结束标准对该阶段的冻结成果进行严格的技术审查,假如发现问题,就可以及时在阶段内解决。
版本控制是保证项目小组顺利工作的重要技术。版本控制的含义是通过给文档和程序文件编上版本号,记录每次的修改信息,使项目组的所有成员都了解文档和程序的修改过程。广义的版本控制技术称为软件配制治理,并已有功能完善的软件工具支持,如PVCS和Microsoft Visual SourceSafe。
4.实行面向用户参与的原型演化
在每个阶段的后期,快速建立反映该阶段成果的原型系统,通过原型系统与用户交互,及时得到反馈信息,验证该阶段的成果并及时纠正错误,这一技术被称为“原型演化”。原型演化技术需要先进的CASE工具的支持。
5.尽量采用面向对象和基于构件的方法
面向对象的方法强调类、封装和继续,能提高软件的可重用性,将错误和缺憾局部化,同时还有利于用户的参与,这些对提高信息系统的质量都大有好处。
基于构件的开发又被称为“即插即用编程”方法,是从计算机硬件设计中吸收过来的优秀方法。这种编程方法是将编制好的“构件”插入已做好的框架中,从而形成一个大型软件。构件是可重用的软件部分,构件既可以自己开发,也可以使用其他项目的开发成果,或者直接向软件供给商购买。当我们发现某个构件不符合要求时,可对其进行修改而不会影响其他构件,也不会影响系统功能的实现和测试,就似乎整修一座大楼中的某个房间,不会影响其他房间的使用。
6.全面测试
要采用适当的手段,对系统调查、系统分析、系统设计、实现和文档进行全面测试。
7.引入外部监理与审计
要重视信息系统的项目治理,非凡是项目人力资源的治理,因为项目成员的素质和能力以及积极性是项目成败的要害。同时还要重视第三方的监理和审计的引入,通过第三方的审查和监督来确保项目质量。
根据一些软件公司的统计资料,在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。因此,我们应该从信息系统开发的初始阶段就进行质量控制,以便尽量在早期发现错误,及早更正。