1986年,美国卡内基-梅隆大学软件工程研究院应美国联邦政府评估软件供应商能力的要求,开始研究软件能力成熟模型—CMM,并于1991年推出其CMM1.0版,1993年推出CMM1.1版,CMM自问世以来备受关注,在一些发达地区和国家得到了广泛的应用,成为衡量软件组织管理软件产品开发能力的事实上的工业标准,并成为软件组织改善其生产过程提供了重要的依据。在CMM模型及其实践中,企业的过程能力被作为一项关键因素予以考虑,所谓过程能力,是指把企业从事软件开发和生产的过程本身透明化、规范化和运行的强制化。这样一来,就可以把软件开发及生产过程中成功或失败的经验教训变成今后可以借鉴和吸取的营养,大大提高了软件生产的成熟程度能力。
而今国内软件产业的共识是:走工业化生产的道路,实行软件开发生产组织的变革,实现软件开发的标准化、规范化和国际化。
落实到具体,一方面我们需要营造软件工程文化,培养大量既懂信息技术又懂企业管理的高级人才,建立必要的信息产业通用基础设施;另一方面还需要建立过程工程、系统工程、面向对象技术、软件过程以及软件质量工程这5个支持环境为主要特征的软件产业基础设施,从而全面支和促进软件产业国际化、标准化的建立与发展。
随着软件质量管理和认证工作在中国IT业的开展,其支撑技术的研究、支撑工具的开发也日益引起人们的重视,如何帮助软件企业的管理者和工程师理解ISO9000或CMM,引导企业建立标准化的生产过程和管理过程,进行工作流和文档流的控制和管理,以及软件过程和软件质量的度量技术等等,都是目前亟待解决的问题。
ISO9001和CMM并不是孤立或彼此矛盾的,ISO9001的每一个质量要素都可以对应到CMM2-3级中关键过程区域的特征上,而CMM在生产过程中的管理重点,又弥补了ISO9001在微观管理上的不足,所以,可以综合考虑ISO9000和CMM的质量管理要求,在建立企业的标准过程时,根据企业的商业目标,建立符合ISO9001或CMM的质量目标和管理体系,为企业通过ISO9000认证或CMM认证提供技术支持。就我国目前的状况来看,ISO9000的认证已普遍得到人们的认同,在经济和人力的投入上,也比较符合我国软件企业目前的状况。而CMM认证则相对困难和昂贵。
中国科学院软件研究所集多年的软件开发经验和软件开发管理经验,提供了一个基于ISO9000的软件质量保证模型与框架。该模型主要从软件过程管理的角度出发,知道企业导入ISO9000并建立符合ISO9000的软件质量保证体系。辅助企业进行过程和通过ISO9000认证,其主要内容有以下几方面:
(1)帮助企业建立ISO9000要求的质量方针、手册和程序文件;
(2)指导企业建立符合ISO9000的过程流管理以及必要的操作手册;
(3)指导企业扩展项目层面上的设计活动,并根据项目选用的生命周期模型,建立项目定义的软件过程;
(4)建立企业的过程数据库,收集和分析企业的过程活动数据,为企业进行过程改进和提高成熟度能力提供基础;
(5)提供强大的文档流管理系统,方便、有效地管理企业的过程产品和最终产品,提高阶段成果和成功经验的复用程度。
软件过程的定义和描述
现代质量管理理论的核心内容是过程的管理,ISO9000定义的所谓过程就是“将输入转化为输出的一组彼此相关的资源和活动”。在软件企业中我们将过程分为两类:即管理过程和软件工程过程,管理过程一般是企业级的过程,如质量体系的评审过程、培训过程等等。而软件工程过程一般是指软件生命周期的活动,如系统分析、设计、编码等等。有些过程是一个单纯的活动。而有些过程则可能是一系列离散的活动,并于其他过程的活动有着时序或谓词条件的关系。在这里,我们关心的是对过程的管理,而不是过程本身的事实方法。所以我们的重点是描述过程及过程间的关系。我们采用了模板的方法来描述过程,其内容包括以下几个方面:
(1)目的:描述该过程的功能和责任;
(2)属性:描述过程需要的资源,如人员、资金、时间、设备、方法和支持工具等;
(3)前置条件:描述过程的激活条件和输入条件;
(4)过程产品:描述过程的输出结果及结果形式;
(5)后置条件:描述过程结果可能导致的后续过程。
过程模板为过程的定义和建立奠定了基础,也为本模型的建立奠定了基础。
企业的过程数据库的定义和管理
过程数据、工作产品是企业的财富,也是企业进行过程评价和改进的依据,必须定义科学、合理的过程数据库和数据库管理策略,才能提高企业的管理能力,保证企业高效地运转,并为企业管理者保持清醒的头脑、作出科学准确的决策提供支持,过程数据库包括:
(1)所有的策划信息;
(2)所有策划的执行信息,包括状态、实际执行数据和评价等等;
(3)所有的质量记录;
(4)所有的软件过程统计信息。
过程流的管理
过程流的企业质量管理体系的具体体现,也是企业质量保证的核心内容。从管理者的角度来看,企业必须支持和协调其各种商业活动,通过软件工具自动安排和协调企业各环节的工作流程,控制和管理各角色的作用和地位,是推进企业现代化生产的重要手段,也是企业重要保障的重要的环节。过程流的建立要体现企业采用的质量体系标准,也要符合企业的商业目的和商业环境。
主动的过程流驱动是本框架系统的一个重要特点,尤其是项目层面上的软件过程活动和与之相关的审查、培训等活动。通过企业的策划信息、过程的前置条件和时序条件以及过程数据库的支持,本系统可以主动激活活动序列,及时通知有关人员按时完成自己负责的任务,这对提高企业的工作效率非常重要,尤其是对那些工作繁忙,有负责审查可监控的管理人员。
文档流的管理
文档,尤其是软件开发文档,是维护软件生命周期的重要依据,所以,文档流的控制和管理对于企业的质量保障体系而言是非常重要的。本框架设计的文档是广义的文档,它包括:
(1)质量体系文件;
(2)所有的过程工作产品,包括软件工程文档、审核报告、测试报告等等。
文档是企业的财富和成果,文档流的管理一方面要便于软件工程师和管理人员使用,提高他们的工作效率,同时又要建立完善的安全保密机制,保证企业的机密不外泄,企业的成果不会流失。
日前,国际上软件加工出口的国际市场发展空间很大,我国软件技术人员既具有良好的业务素质,又有相对低廉的劳务成本,只要组织得法,迅速发展软件加工出口,就会有良好的发展前景。然而承揽海外软件加工任务,首先要解决的问题是软件过程的国际标准化过程。软件企业首先应通过国际标准化组织ISO9000系列的质量保证体系认证,有条件的企业还应通过国际流行的软件企业能力成熟度CMM资格认证。毋庸置疑,上述两种质量认证证书是软件企业进入国际市场的“通行证”。较之软件产业的高速发展,我国软件企业的管理还相对薄弱,与软件质量有关的软件过程和软件产品的管理不尽如人意。企业缺乏科学、规范的质量管理体系。所以,在软件企业倡导和推行ISO9000或CMM,建立规范的质量保证体系,提高软件企业的竞争能力,这也是发展民族软件企业的重要环节。