戴炳荣 王 凌 李 超 宋俊典
1(上海计算机软件技术开发中心 上海 201112)2(上海市计算机软件评测重点实验室 上海 201112)
一种在GQM度量方法中的决策机制研究
戴炳荣1,2王 凌1李 超1宋俊典1,2
1(上海计算机软件技术开发中心 上海 201112)2(上海市计算机软件评测重点实验室 上海 201112)
软件度量在软件开发过程和软件产品中具有重要作用。GQM(Goal-Question-Metric Approach)模型是当前使用较为广泛的一种软件度量手段,它通过对目标的一系列问题的回答最终实现对软件开发过程的控制和评估。针对GQM中没有提及如何客观地将组织的目标归纳和分解为度量指标这一缺陷,提出一种利用德尔菲法和PUGH矩阵的决策机制,对众多分解的度量指标进行筛选,最终形成GQM模型的问题和度量元,并结合实际实践进行分析和验证。实践表明该决策机制能够有效地形成GQM度量计划,从而指导软件开发过程和软件产品质量的提升。
GQM模型 度量指标 决策机制 PUGH矩阵
由于软件的规模越来越大,其复杂度也变得越来越高,软件开发项目也变得较为复杂以及难以管控,导致软件项目出现一系列问题如进度滞后、质量不高以及范围失控等。有关研究表明,由于管理不善而非技术实力导致的软件项目失败高达总数的70%。软件度量是解决这些问题的有效手段,在可预测、可重复、准确的控制软件开发过程和软件产品中显得日益重要[1]。软件度量实际上是一个持续性定量化的过程,通过对软件开发项目、过程及其产品进行数据定义、收集以及分析,目的旨在对软件开发项目加以理解、预测、评估、控制和改善。它能够对软件开发过程进行完善,使开发项目顺利成功完成,最终在项目结束时开发出一个高质量的软件产品[2]。
在软件度量中已经建立了许多有效而著名的定量化度量方法,文献[3]介绍了几种常用的软件度量方法如规模度量方法、成本度量方法、复杂性度量方法以及GQM模型,并针对不同的度量内容进行了分析。文献[4]研究了基于统计过程控制的软件质量度量模型,并通过某单元测试收集到的数据进行模型的应用说明。在众多的软件度量方法中,GQM模型应用最为广泛。GQM模型将度量结构分为3个层次,从上到下依次为目标层、问题层、度量层。三个层次间具有递进的关系,且一层比一层精细,把度量项实际收集的数据与项目目标或抽象级别较高的组织相关联,从而根据信息的需要和优先级能够尽快地决定度量和进行度量。但GQM中没有提及如何客观地将组织的目标归纳和分解为度量指标,因此面对不同的人员,使用该模型时,分解的度量指标也大不相同。如何客观地根据组织目标和任务分析形成GQM模型的问题和度量元,是一个值得研究的课题。
目前已有一些学者提出了改进GQM模型的思路和方法,文献[5]在GQM模型基础上,通过在问题和度量之间引入指示器I,进而在度量过程中及时的发现问题和原因的局限性,但没有对影响度量的因素进行分析。文献[6]对GQM模型进行了改进,并设计了适合企业的度量方法,但其合并了目标层和问题,造成了度量指标和推理过程过于简化,影响GQM模型的应用效果。
因此,在GQM模型基础上,本文提出一种基于德尔菲法和PUGH矩阵的决策机制,系统地讨论了决策计算方法和实现过程,并结合实际的案例进行详细分析,验证了该决策机制的有效性和可行性,从而协助组织控制和完善软件开发过程,为软件开发过程和软件产品提供指导和有效保障。
GQM模型由美国马里兰大学的Victor Basili博士于1994年提出,它是一种由目标逐步进行细化到度量,且是面向目标、自上而下的软件度量定义方法[7]。该模型建立在以下假设之上:对于软件度量组织,首先要确定组织目标或项目目标,其次是跟踪目标至问题,最后这些问题需能够可操作化地定义目标,并且给出一个解释目标和问题的框架。由于每个组织或项目都需要实现一连串的目标,而每个目标的实现都需要回答一系列问题,对于每个问题均能够找到一个相应完整的、可量化的解答,通过这些问题的解答去发现目标是否得以实现。因此,可以通过GQM模型是把组织目标或项目目标进行归纳、分解,形成度量指标,再从这些指标中提炼出能够用来测量的值,最终达到预测、过程控制和实现软件开发的定量化管理的目的。
文献[8]中详细的阐述了GQM模型的层次,包括概念层(Goals)、操作层(Questions)和数据层(Metric)。在该三层结构中,每个下层都是用来对上一层进行细化与求精的,这样便可以从目标中而获得所需度量。层次结构如图1所示。
图1 GQM模型的三层结构
在文献[8]中,将GQM模型应用到了实际当中。一个项目在7周时的度量计划和度量结果的分析,作者将第7周的项目进度最终分解为3个问题和12个度量元。
Q1:编码工作是否能够如期开始;
Q2:在集成测试时,需要查看单元测试是否已经结束;
Q3:第7周时,ABCD每个任务是否已经实现相关比例工作?任务E准备工作是否做好?
Q1的度量元为:M1需求调研和分析的评审结果;M2系统分析与设计的评审结果;M3编码人员到位;M4编码是否在第3周开始。
Q2的度量元为:M5每个编码人员的单元测试工作完成与否;M6单元回归测试的完成程度;M7在单元测试过程中,是否已经将每种缺陷率控制在可控范围之内。
Q3的度量元为:M8任务A应该完成(7/10)%;M9任务B应该完成(7/8)%;M10任务C应该完成(4/10)%;M11任务D应该完成(1.5/0.5);M12在第9周的时候系统是否可以按时发布。
虽然以往的研究已经在项目实施过程中引入了甘特图等技术来控制项目实施计划,但是面对需求的不确定性,用户随时有可能对项目需求进行调整,造成在项目实施时依然会出现许多难以预料的问题。同时,不同的项目管理人员、需求分析人员、研发人员等面对同一个目标,可能会分解出不同的问题,对于每个问题也会分解出不同的度量元,而且有的度量元可能很难确定,那么如何客观地分解度量元,对于不确定的度量元如何进行决策就成为了一个有待研究的问题。
本文通过引入PUSH矩阵和关键因素的决策机制,为目标分解为合理的问题与度量元,提供可以实际操作的方法。PUGH矩阵又称决策矩阵,它是表示决策方案与有关因素相互关系的矩阵表示,常用来进行定量决策分析。如表1所示,PUGH矩阵通过在多个可选择的方案中设定一个标准方案,然后按照判断准则将其他方案与基准的方案进行比较分析,从而得出最终的结论。
表1 PUGH矩阵的模板
在实施过程中,首先需要确定选择决策的关键要素,以此来设定选择的判断准则。这些判断准则通常不应过多,一般来说控制在二十项以内。判断准则的建立一般依据项目人员的经验,为了使判断准则更加的客观有效,本文采用德尔菲法来确定PUGH矩阵的判断准则。德尔菲法[9],通常又被称作专家规定程序调查法,它起始于调查者对调查表进行初步拟定,然后再依照既定程序通过函件形式分别实现对专家组成员建议的征询,最后,专家组成员将各自的函件以匿名形式提交,从而实现了意见反馈收集。通过这样多次反复的专家意见征询与反馈,专家组建议就被逐步集中到一起,形成一个可参考的综合建议,最终以此来得到拥有很高准确率的集体判定结果[9]。
本文基于德尔菲法和PUGH矩阵的决策过程如图2所示。
图2 基于德尔菲法和PUGH矩阵的决策过程
1) 根据德尔菲法得到判断准则及其权重
使用德尔菲法确定各个度量元的判断准则,假设可选择方案为P,判断准则为T,权重(即重要性)为ω,则:
可选择方案为:P={P1,P2,…,Pm}
判断准则:T={T1,T2,…,Tn}
权重为:ω={ω1,ω2,…,ωn}
2) 确定基准方案
在建立判断准则和权重后,为了保证参加分析的所有成员对可选方案和判断准则都能有很好的理解,以便做出准确的判断。首先需要选择一个方案作为基准方案,且基准方案一般是大家公认的良好方案,假设基准方案为S,则S={S1,S2,…,Sn}。
3) 通过判断准则,把每个方案和基准方案做对比
把每个方案都和基准方案作对比,并且每当对比一次,就需要通过一个判断准则来评估。同时,在方案与判断准则相呼应的位置,标注出一个对应的符号,通常使用“+”来表明该方案好于基准方案,相反地“-”则表明差于基准方案。而用“s”表示与基准方案相等。在这个过程当中,还需要将新产生的方案与判断准则留存下来,方便将他们加入迭代步骤中,供下次的矩阵分析。
4) 统计所有评价符号的数量和加权总数
通过统计“+”和“-”的个数,便可以发现“+”最多和“-”最少的方案,但是它们不能够用来相互抵消。根据赋予判断准则的权重值,可以得出更好和更差加权总数。这里我们定义:Tb表示某一待选择方案好于基准方案S的准则集合;Tw表示某一待选方案差于基准方案S的准则集合;使用Pb和Pw分别表示更好加权数和更差加权数。则:
Pb=∑iωi×Tbii∈Tb
(1)
Pw=∑iωi×Twii∈Tw
(2)
5) 确定最佳方案
在统计的过程中,也要注意将强的方案融入到弱的方案中,从而产生良好的混合方案。重复整个过程便可以获得最佳方案,否则继续重复工作,直到出现最佳方案为止。通过PUGH矩阵最终可以有效地确定GQM模型中的问题以及度量元。
上海软件中心与中海集团在2013年签订了战略合作伙伴协议,中海集团在信息管理系统方面拥有很多的项目需求,IT资产管理系统作为中海集团航运标准化项目中的一部分有着十分重要的意义。IT资产管理系统拥有“工作台管理”、“采购管理”、“软件管理”、“硬件管理”、“低值耗材管理”、“统计分析”、“信息中心”、“系统管理”共计八个一级模块。
本文在文献[5]的基础上,将项目目标梳理分解成了6个问题,如表2所示。增加了Q1需求工作是否已经完成,以及Q4通过单元测试的模块上线后,再增加模块上线时是否会出现问题?Q6:第7周时用户的满意程度和健壮性如何?因为不同的项目和不同的客户,所造成的项目实施时的实际情况是不同的,每个资深项目管理人员和高级工程师的经验也有所不同,因此提出的问题以及度量元是不同的。并且在确认度量元是否完成方面,不同的项目人员也会存在不一致的意见。比如,“M3——需求变更次数”,这个度量元是否应该作为“Q1——需求工作是否已经完成”问题的度量?“Q4——通过单元测试的模块上线后,再增加模块上线时是否会出现问题这个问题”对于完成目标是否存在意义?在回答“Q6——第7周时用户的满意程度和健壮性如何问题时”,“M19——用户没有提出异议”是否表示用户已经对当前项目的进展给予满意?即使用户已经明确表示了满意,则满意程度又会是多少呢?系统是否能够具备良好的健壮性呢?这些问题都需要给予客观性决策,GQM模型能够帮助将目标实现准确的分解,从而形成所谓合理的度量元。
表2 GQM模型度量计划
在IT资产管理系统项目中,在表2形成的基础度量计划的基础上,采用GQM模型对项目的整体进度进行了度量与监控。项目计划在8周的时间内完成需求分析、架构搭建和系统管理模块的开发。在第8周时,需要确定“该项目进度是不是正常”。由1位项目经理和1位资深的项目人员对该目标进行分解最终形成5个问题:“要求的工作是否已经完成”、“编码工作能不能如期正常进行”、“单元测试是否完成”、“阶段性开发任务是否能够准时结束”、“用户的满意程度”。在分解成5个问题后,开始对每个问题确定相应的度量元。
首先使用第2节中的德尔菲法确定各个度量元方案的判断准则,共计10个:完成的里程碑、关键路径、工作单元进展、功能规模稳定性、功能正确性、可靠性、可维护性、过程符合性、技术适合性、客户反馈。随后利用PUGH矩阵明确方案中的可选择度量元。如表3、表4、表5所示,从中可以统计出各个度量元的更好总数以及更差总数,并通过权值的运算得出加权更好和更差总数。这样反复迭代分析,最终形成10个有效的度量元应用于GQM模型中,如表6所示。
可选择度量元15个:
表3 待选择方案
通过判断标准进行分析:
表4 待选择方案
表4说明如下:
判断准则:1)完成的里程碑;2)关键路径性能;3)工作单元进展;4)功能规模稳定性;5)功能正确性;6)可靠性;7)可维护性;8)过程符合性;9)技术适合性;10)客户反馈。
标准方案:1)符合预定的里程碑;2)按时完成关键任务或交付日期没有延迟;3)单元进展顺利;4)需求和功能没有变更;5)系统功能达到交付水平;6)用户接口便于操作;7)标识的问题顺利解决;8)项目实现与定义过程一致;9)技术满足需求;10)客户理解项目性能,请求能得到快速处理。
表5 度量单元统计分析
最终形成10个度量元:
表6 基于决策机制最终形成的GQM度量计划
在上面这个项目实例中,采用了基于德尔菲法和PUGH矩阵的决策机制形成GQM度量计划,综合考虑了度量元方案的判断准则,最终形成了有效的度量元应用于GQM模型中。相比较与文献[8]中没有明确描述度量元的形成过程,本文则由项目管理者根据本企业的实际情况和工作中数据的收集方式和程度,真实和逐渐地按照德尔菲法和PUGH矩阵反复迭代最终形成具有实际意义和价值的度量元,真正对软件项目度量起到了预测和控制的作用。
本文针对软件度量方法GQM模型的特点,提出了一种在GQM度量方法中的决策机制,系统地讨论了该机制的实现过程和方法。并通过软件开发实际案例的详细分析,实验结果表明了该机制实施的可行性。该GQM度量方法中的决策机制能够有效地改进GQM模型应用效果,更好地进行软件度量活动。
[1] 年国栋.软件度量决策系统的研究与实现[D].武汉:华中科技大学,2013.
[2] 徐晓燕,赵荣彩,闫丽景,等.软件度量的研究与进展[J].信息工程大学学报,2014,15(5):622-627.
[3] 卲秀秀,赵卫东,邱会鲁,等.常用软件度量方法分析及比较[J].软件导刊,2015,14(6):23-25.
[4] 成晓清.基于统计过程控制的软件质量度量模型研究[D].哈尔滨:哈尔滨工程大学,2014.
[5] 徐俊,罗军,韩坚华,等.基于GQM的软件过程改进度量模型的研究[J].微型机与应用,2014,33(17):10-15.
[6] 吴丽.基于GQ(I)M软件度量改进方法在企业中的应用[J] .信息技术,2013(1):158-160.
[7] Kan S H.软件质量工程的度量与模型[M].北京:清华大学出版社,2004.
[8] 李亚红,郝克刚,葛伟,等.基于GQM模型的软件项目进度的度量过程[J].计算机应用,2013,25(6):1448-1450.
[9] 寸雪涛.应用德菲尔法预测东盟国家语种专业发展趋势的探讨决策矩阵[J].高教论坛,2012,1(1):61-63.
A STUDY OF DECISION MECHANISM IN GQM METRICS
Dai Bingrong1, 2Wang Ling1Li Chao1Song Jundian1, 2
1(ShanghaiDevelopmentCenterofComputerSoftwareTechnology,Shanghai201112,China)2(ShanghaiKeyLaboratoryofComputerSoftwareTestingandEvaluating,Shanghai201112,China)
Software metrics play an important role in software development processes and software products. GQM model is a kind of software measure which is widely used. It can control and evaluate the software development process by answering a series of questions. Aiming at the shortcomings of GQM not to mention how to objectively summarize and decompose the goals of the organization into metrics, this paper proposes a decision making mechanism using Delphi method and PUGH matrix to select the measures of many decompositions. Finally, the problems and metrics of the GQM model are formed, and the analysis and verification are carried out. Practice shows that the decision-making mechanism can effectively form a GQM measurement plan to guide the software development process and software product quality improvement.
GQM model Measure index Decision-making mechanism PUGH matrix
2016-04-20。上海市科研计划项目(15511101503);上海张江高新区专项(201501-PD-LJZ-C104-004,201505-ZB-C104-013)。戴炳荣,博士生,主研领域:大数据,云计算,软件项目管理。王凌,工程师。李超,助理工程师。宋俊典,副研究员。
TP301
A
10.3969/j.issn.1000-386x.2017.05.003