基于CMMI的企业软件过程与质量管理平台设计
2014-08-31邓军
邓 军
(湖南科技职业学院,中国 长沙 410004)
基于CMMI的企业软件过程与质量管理平台设计
邓 军*
(湖南科技职业学院,中国 长沙 410004)
针对提高企业软件过程管理的需要,设计了一种企业软件过程与质量管理平台.采用三层模式结构设计出了平台系统架构,采取组件化的设计方式,在同一组件模块中进行纵向分层子模块设计,不同层子模块之间以及同层子模块之间通过规范的接口交互信息.根据平台的应用需求,采用了协同式方法,将平台分解成了企业软件过程管理子系统、企业软件过程资源库及过程改进子系统和企业软件质量评价及决策支持子系统,并对3个子系统分别进行了详细设计.
软件过程;软件能力成熟度模型集成;软件质量管理; 软件质量评价;过程改进
软件产业是信息产业的核心和国民经济信息化的基础,目前我国软件产业每年保持25%以上的高速增长速度,软件产品市场正由导入期走向成长期[1].但软件生产还处于模仿和加工阶段,究其原因主要存在如下不足:
(1) 软件过程不够成熟:由于软件的开发和维护过程不规范,没有统一的标准,互不兼容导致无法形成产业链,软件企业成本增加;达到CMMI3以上认证的企业数目较少.
(2) 企业规模普遍偏小[2]:由于软件的开发和维护过程不规范,没有统一的标准,仍停留在原始的、作坊式的加工阶段,从组织和管理上难以实现企业的不断发展,核心竞争力较缺乏.员工的分工(需求分析、系统设计、编码、测试、实施等)往往不能清晰界定,项目与项目或产品与产品之间不能达到有计划的流动,不能实现专业化和产业化,因此,人力成本居高不下,企业往往不堪重负.
(3) 企业出口能力很弱:企业没有完善的质量保障体系,对软件过程缺乏有效的管理机制,缺乏严格的质量认证和规范化管理,难以形成自主知识产权的拳头产品,无法与国外较强软件企业抗衡.
基于目前的形势,本文构建出一个组件化的、具体统一的、与国际接轨的、又能够灵活地为企业提供个性化服务的、适应软件企业提升软件质量的管理系统.帮助企业按照国内外权威标准和规范要求,如CMMI(软件能力成熟度模型集成)对软件过程进行有效改进、规范管理,协助软件企业本身建立较好的质量保证体系[3-4],有效解决目前制约软件企业普遍存在的瓶颈问题.
1 系统体系结构
本文以CMMI和ISO9000族[5]标准为基础,针对国内不同规模软件企业的软件过程模式,建立一个企业软件过程与质量管理平台,为软件企业的软件过程管理和质量保证提供有效方法和手段.
平台架构采用“三层模式”设计.从纵向层面上分为:系统应用层、安全管理层和系统扩展层.系统应用层为平台的核心部分,负责系统的所有业务功能;安全管理层负责平台的安全策略控制和网络管理;系统扩展层负责连接其他应用系统.三层的设计都采用组件化的设计思想,不同层次之间广泛采用各种标准的开放接口交互资源、控制以及承载业务等信息,如图1所示.
图1 系统体系结构图Fig.1 System structure diagram
系统应用层从横向也采用三层模式设计,分别是质量评价和过程管理层、组件层和数据访问层;层次之间信息交互也采用组件技术,将软件通过分层打包,开发系统化的组件模块.在同一组件模块中进行纵向分层子模块设计,不同层子模块之间以及同层子模块之间通过规范的接口交互信息.
根据CMMI,系统设计18个关键模块共同完成CMMI中的18关键过程域,如图2所示.
图2 系统模块与CMMI KPA映射关系图Fig.2 System module and CMMI KPA mapping diagram
18个模块并不是与CMMI的18个KPA一一对应,根据项目设计需要而是相互交叉实现的.系统架构图中的核心业务部分负责实现项目管理、产品管理、需求管理、计划管理、任务管理、配置过程管理、变更管理、缺陷管理、测试过程管理、培训管理、测量管理、工作技能管理、软件质量保证、合同管理和里程碑管理.决策分析、项目过程评价和软件质量评价由质量评价及过程改进子系统实现.核心业务部分与质量评价及过程改进子系统通过工作流引擎实现数据交互.
系统设计按照平台的功能予以实现.将系统分为下列3部分:企业软件过程管理子系统;企业软件过程资源库及过程改进子系统;企业软件质量评价及决策支持子系统.各子系统的功能模块按组件技术设计完成后,再将各组件放置到系统架构中规定的各自层次中.但是,各子系统之间都存在相互依赖和协同工作的关系.3个子系统的关系如图3所示.
图3 子系统关系图Fig.3 Relationship between sub systems diagram
由图3可知,3个子系统在实际使用过程中存在数据交互和相互依存,这样为软件企业提供一个能实现软件开发过程控制和资源积累的软件管理平台,有利于企业对长期积累的开发过程数据进行有效分析,使企业软件开发过程得到持续改进.
2 平台子系统设计
2.1 企业软件过程管理子系统设计
该子系统是平台3部份中的业务中心,对软件过程管理进行全面监控,为软件开发活动涉及的任务分配、信息定义和项目管理提供支持.该子系统构成整个平台的基础,并可独立运行.总体架构如图4所示.
图4 企业软件过程管理子系统的总体架构图Fig.4 The overall system architecture of software process management of enterprise digram
图5 改进型的企业标准软件过程管理流程图 Fig.5 Improved enterprise standard of software process management flow chart
由图4可见,企业软件过程管理子系统提供了一个集生产过程管理、质量保证、成本分析、业务活动处理于一体的综合管理平台,其功能模块涵盖了软件能力成熟度模型CMMI 5个等级和ISO9000族所要求的关键过程域和相关要素.功能模块包括:软件产品/软件项目管理、计划管理、问题管理、测试管理、任务管理、配置管理、软件质量保证,测量统计管理等一系列密切相关的功能组.
并且通过任务协同和工作流控制,支持CMMI所要求的机构级和项目级软件过程的功能,并能应用过程模板和裁减指南定制符合企业自身的软件过程[6-7].
2.2 企业软件过程资源库及过程改进子系统设计
该子系统是平台3部份中的政策中心,是将软件开发过程中的有关数据进行记录和管理,实现软件开发过程的资源优化和重复利用,并对其不断改进优化.与“企业软件过程管理子系统”共同构成“企业软件质量评估及决策支持子系统”的数据基础.主要进行以下两方面的设计.
2.2.1 企业标准软件过程改进设计 为软件项目提供在开发、维护、实施方面的基本准则,从组织层明确规范软件开发的标准过程,完成可重复利用、有价值的“软件过程资产”.它需要依照一定的规则和方法进行改进和优化,企业标准软件过程改进有一套对标准过程的开发和维护的过程体系[6-7],为企业标准过程的改进提供操作平台.当然,这个过程与其他过程一样,都可以根据不同企业的改进模型进行流程自定义.图5是一个改进模型的流程图示.
2.2.2 企业软件生命周期和过程裁剪设计 企业软件生命周期和过程裁剪指南功能模块实现的目标是:指导软件过程管理和实施者选择出符合企业要求的软件开发过程和软件生命周期模型,裁减符合项目要求的项目软件过程,并应用于软件项目的开发,确保软件开发过程质量得到控制和跟踪.
建立和维护软件过程中常用的、符合企业软件过程特点的软件过程模型库,如常用的V模型,V喷泉模型(V模型和喷泉原型),原型模型,瀑布模型等[7].
图6 过程裁剪示意图Fig.6 Schematic diagram of process tailoring
在项目的初始阶段,生命周期模型的选择是一个必须而且关键的任务,系统可以自动化方式选择过程模型,提高工作效率[8-9].从一系列可选的生命周期模型中选择最合适的生命周期.根据项目的类型以及各种其他必要信息(例如工作量、团队大小、复杂性、需求清晰程度等),可设计一个计算矩阵,推荐最合适的生命周期.
在裁减生成项目软件过程和生命周期模型过程中,其影响过程裁剪的因素如图6所示.
2.2.3 企业项目软件过程资源数据库设计 位于平台的数据访问层.以文档数据库、业务数据库、管理信息数据库、员工数据库、认证数据库、项目数据库和产品数据库等为基础数据,在协同工作的基础上,按照不同需求(如项目质量、成本、周期等)进行提炼和抽取,动态地不断更新和完善,得到不断更新和充实的“企业软件过程资源数据库系统”形成企业级的过程数据库.为软件过程的改进提供历史项目的查询、统计及分析.
2.3 企业软件质量评价及决策支持子系统设计
是平台的分析决策中心.通过软件过程资源的管理实现机构软件资源和项目文档管理的规范化,为软件企业提供开放式的软件技术文档自动生成和管理工具.
2.3.1 软件质量评价设计 软件质量评价是一项系统活动,包括最终产品的评价、开发过程评价以及若干相似功能的软件比较评价.软件质量和评价技术在国外已发展成为一项比较完整的技术,并在某些大型软件公司中投入实际使用,它对降低软件开发成本,提高软件质量和软件生产率起了一定的作用.
图7 软件质量评价工作方式示意图 Fig.7 Schematic diagram of software quality evaluation work
本文依据ISO9216,并参考国外质量评估系统模型,结合我国的实际情况,提出建立统一的多数据源的多层质量评测软件模型,形成软件质量评价体系.评价模块建立在过程管理平台基础上.共同组成质量评价模型.其工作方式如图7所示.
评价系统的数据来源是在机构过程数据的基础上,根据项目过程数据和控制信息按照制定模型进行分析,对产品/项目的特性分别进行各自评价.从图7中可以看出评价系统对企业改进软件过程起着关键性的作用,系统的实施会大幅改变企业在过程改进中盲目性.下面对软件质量评价进行建模,如图8所示.
图8 软件质量评价建模过程示意图Fig.8 Schematic diagram of software quality evaluation model
系统模型是若干子模型的集合体,根据不同产品/项目的不同特性建立子模型.建立模型流程解析如下:
模型一:产品/项目质量评价.设置软件产品的质量评价指标,也就是评价特性,如软件产品的一般评价特性有:可靠性、安全性、性能等,然后找到其子特性,也就是特性来源的分类属性,界面、系统、功能等.以项目过程管理中缺陷管理、变更管理等为入口,系统进行子特性分类,再由子特性分类纳入到产品特定即评价指标,最终评价产品/项目或某个功能的质量评价模型.
模型二:过程质量评价.通过和不同项目的过程执行情况,评价出特定项目软件的过程执行是否最优.由项目的计划和缺陷、变更,产生出所有项目软件任务,系统跟踪项目中的人力、时间要素和分类情况,汇总出了产品/项目的工作量,同时按功能点计算出错误率等指标,然后计算出不同阶段的投入成本,最终得到过程质量评价.
总之,用户可以根据实际需要,设定评价子模型,再设定模型的质量评价指标,然后找到其度量元,所有度量元的数据从历史过程资源库获得.
2.3.2 辅助决策支持 通过决策支持引擎得到的独立的软件产品/项目的过程和其他相关数据,以及相关测量分析结果,并不断纳入到企业软件过程资源数据库子系统中.管理者通过过程改进决策支持子系统得到企业级过程数据的统计分析结果,并与最初软件过程定义时的期望数据值进行比较,以发现过程改进的实际效果.并从偏差中发现软件过程的强项、弱项和可改进处,以指导企业确定下一步的过程改进目标.
3 结束语
该平台是基于CMMI规范和质量评价指标体系的基础上,提出了企业软件开发过程持续改进的综合信息管理平台.在进行系统设计时,根据平台的应用需求,将平台分成了企业软件过程管理子系统、企业软件过程资源库及过程改进子系统和企业软件质量评价及决策支持子系统,简化了系统设计的复杂性.采取分层模式的方法,使系统在设计时结构清晰.在设计系统的功能点时,采取组件化的设计方式,在同一组件模块中进行纵向分层子模块设计,不同层子模块之间以及同层子模块之间通过规范的接口交互信息.目前,该平台已经被许多软件企业使用,实践证明,该平台的研究与实施对促进软件企业软件开发质量的提升、增强软件企业竞争力、加快软件管理的规范化进程、提高我国软件的国际竞争力具有重要意义.
[1] 中国信息产业部.2012年电子信息产业统计公报[EB/OL].(2013-02-18)[2013-07-20].http://www.cnii.com.cn/informatization/2013-02/18/content_1092720.htm.
[2] 庄 晓,张义珍.基于CMMI框架下持续改进的软件过程体系[J].计算机应用与软件, 2013,29(1):186-189.
[3] 袁安富,伏 萍.基于CMMI的软件质量保证[J].计算机技术与发展, 2012,24(1):13-16.
[4] 龚 波.能力成熟度模型集成及其应用[M].北京:中国水利水电出版社, 2003.
[5] 魏 頔.ISO90001:2008版最新动向及主要修订点对照[J].技术与创新管理, 2011,5(9):487-491.
[6] 武俊生.双基、改性双基数据库应用系统设计[J].湖南师范大学自然科学学报, 2013,36(2):35-39.
[7] 刘志成,薛志良.Oracle数据库管理与应用实例教程[M].北京:人民邮电出版社, 2010.
[8] 戴建华. PDCA循环在软件质量管理中的应用[J]. 软件, 2011(3):47-50.
[9] 田丽从,李铁牛,彭 宏.中小型软件企业的软件过程改进方法研究[J].计算机应用与软件, 2011,27(4):208-211.
(编辑 陈笑梅)
Design of Enterppise Software Prcess and Quality Management Platform Based on CMMI
DENGJun*
(Hunan Vocational College of Science and Technology, Changsha 410004, China)
In order to enhance the management of enterprise software process, a kind of enterprise software process and quality management platform is designed. Three layer model structure was adopted to design the platform system architecture, and the method of componentization was employed in the design of longitudinal sub module design in the same module, and the information interchange was conducted by a standardized interface between different sub modules and same sub modules. According to the demand of application platform, using collaborative methods, the platform is divided into the enterprise software process management subsystem, enterprise software process database and process improvement subsystem, and enterprise software quality evaluation and decision supporting system, and the three subsystems are designed in details.
software process; CMMI; software quality management; software quality evaluation; process improvement
2013-09-21
湖南省科技厅项目专项基金资助项目(2013F6066);湖南科技职业学院青年基金资助项目(KJ13205)
*
,E-maildengjun_10@163.com
TP393.08
A
1000-2537(2014)01-0063-06