一种在GQM度量方法中的决策机制研究
2017-12-27隋占丽
隋占丽
(仰恩大学)
0 引言
由于软件的规模越来越大,其复杂度也变得越来越高,软件开发项目也变得较为复杂以及难以管控,导致软件项目出现一系列问题如进度滞后、质量不高以及范围失控等.有关研究表明,由于管理不善而非技术实力导致的软件项目失败高达总数的70%.软件度量是解决这些问题的有效手段,在可预测、可重复、准确的控制软件开发过程和软件产品中显得日益重要[1].软件度量实际上是一个持续性定量化的过程,通过对软件开发项目、过程及其产品进行数据定义、收集以及分析,目的对软件开发项目加以理解、预测、评估、控制和改善.它能够对软件开发过程进行完善,使开发项目顺利成功完成,最终在项目结束时开发出一个高质量的软件产品[2].
在软件度量中已经建立了许多有效而著名的定量化度量方法,文献[3]介绍了几种常用的软件度量方法如规模度量方法、成本度量方法、复杂性度量方法以及GQM模型,并针对不同的度量内容进行了分析.文献[4]研究了基于统计过程控制的软件质量度量模型,并通过某单元测试收集到的数据进行模型的应用说明.
目前已有一些学者提出了改进GQM模型的思路和方法,文献[5]在GQM模型基础上,通过在问题和度量之间引入指示器I,进而在度量过程中及时的发现问题和原因的局限性,但没有对影响度量的因素进行分析.文献[6]对GQM模型进行了改进,并设计了适合企业的度量方法,但其合并了目标层和问题,造成了度量指标和推理过程过于简化,影响GQM模型的应用效果.
因此,在GQM模型基础上,该文提出一种基于德尔菲法和PUGH矩阵的决策机制,系统地讨论了决策计算方法和实现过程,并结合实际的案例进行详细分析,验证了该决策机制的有效性和可行性,从而协助组织控制和完善软件开发过程,为软件开发过程和软件产品提供指导和有效保障.
1 GQM模型
GQM模型由美国马里兰大学的VictorBasili博士于1994年提出,它是一种由目标逐步进行细化到度量,且是面向目标,自上而下的软件度量定义方法[7].该模型建立在以下假设之上:对于软件度量组织,首先要确定组织目标或项目目标,其次是跟踪目标至问题,最后这些问题需能够可操作化地定义目标,并且给出一个解释目标和问题的框架.由于每个组织或项目都需要实现一连串的目标,而每个目标的实现都需要回答一系列问题,对于每个问题均能够找到一个相应完整的、可量化的解答,通过这些问题的解答去发现目标是否得以实现.因此,可以通过GQM模型是把组织目标或项目目标进行归纳?分解,形成度量指标,再从这些指标中提炼出能够用来测量的值,最终达到预测、过程控制和实现软件开发的定量化管理的目的.
文献[8]中详细的阐述了GQM模型的层次,包括概念层(Goals)、操作层(Questions)和数据层(Metric).在该三层结构中,每个下层都是用来对上一层进行细化与求精的,这样便可以从目标中而获得所需度量.
在文献[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周时候系统是否可以按时发布.
虽然以往的研究已经在项目实施过程中引入了甘特图等技术来控制项目实施计划,但是面对需求的不确定性,用户随时有可能对项目需求进行调整,造成在项目实施时依然会出现许多难以预料的问题.同时,不同的项目管理人员、需求分析人员、研发人员等面对同一个目标,可能会分解出不同的问题,对于每个问题也会分解出不同的度量元,而且有的度量元可能很难确定,那么如何客观地分解度量元,对于不确定的度量元如何进行决策就成为了一个有待研究的问题.
2 算法基于德尔菲法和PUGH矩阵的决策机制
该文通过引入PUSH矩阵和关键因素的决策机制,为目标分解为合理的问题与度量元,提供可以实际操作的方法。PUGH矩阵又称决策矩阵,它是表示决策方案与有关因素相互关系的矩阵表示,常用来进行定量决策分析.表1所示,PUGH矩阵通过在多个可选择的方案中设定一个标准方案,然后按照判断准则将其他方案与基准的方案进行比较分析,从而得出最终的结论.
表1PUGH矩阵的模板
在实施过程中,首先需要确定选择决策的关键要素,以此来设定选择的判断准则.这些判断准则通常不应过多,一般来说控制在二十项以内.判断准则的建立一般依据项目人员的经验,为了使判断准则更加的客观有效,该文采用德尔菲法来确定PUGH矩阵的判断准则.德尔菲法[9],通常又被称作专家规定程序调查法,它起始于调查者对调查表进行初步拟定,然后再依照既定程序通过函件形式分别实现对专家组成员建议的征询,最后,专家组成员将各自的函件以匿名形式提交,从而实现了意见反馈收集.通过这样多次反复的专家意见征询与反馈,专家组建议就被逐步集中到一起,形成一个可参考的综合建议,最终以此来得到拥有很高准确率的集体判定结果[9].该文基于德尔菲法和PUGH矩阵的决策过程如图1所示.
图1 基于德尔菲法和PUGH矩阵的决策过程
(1) 根据德尔菲法得到判断准则及其权重
使用德尔菲法确定各个度量元的判断准则,假设可选择方案为P,判断准则为T,权重(即重要性)为ω,则:
可选择方案为:P={P1,P2,…,Pm}
判断准则:t={T1,T2,…,Tm}
权重为:ω={ω1,ω2,…,ωm}
(2) 确定基准方案
在建立判断准则和权重后,为了保证参加分析的所有成员对可选方案和判断准则都能有很好的理解,以便做出准确的判断.首先需要选择一个方案作为基准方案,且基准方案一般是大家公认的良好方案,假设基准方案为S,则S={S1,S2,…,Sn}.
(3) 通过判断准则,把每个方案和基准方案做对比
把每个方案都和基准方案作对比,并且每当对比一次,就需要通过一个判断准则来评估.同时,在方案与判断准则相呼应的位置,标注出一个对应的符号,通常使用“+”来表明该方案好于基准方案,相反地“-”则表明差于基准方案.而用“s”表示与基准方案相等.在这个过程当中,还需要将新产生的方案与判断准则留存下来,方便将他们加入迭代步骤中,供下次的矩阵分析.
(4) 统计所有评价符号的数量和加权总数
通过统计“+”和“-”的个数,便可以发现“+”最多和“-”最少的方案,但是它们不能够用来相互抵消.根据赋予判断准则的权重值,可以得出更好和更差加权总数.这里定义:Tb表示某一待选择方案好于基准方案S的准则集合;Tw表示某一待选方案差于基准方案S的准则集合;使用Pb和Pw分别表示更好加权数和更差加权数.则有:
Pb=∑iωi×Tb1(i∈Tb)
Pω=∑iωi×Tωi(i∈Tω)
(5) 确定最佳方案
在统计的过程中,也要注意将强的方案融入到弱的方案中,从而产生良好混合方案.重复整个过程便可以获得最佳方案,否则继续重复工作,直到出现最佳方案为止.通过PUGH矩阵最终可以有效地确定GQM模型中的问题以及度量元.
3 实验结果与分析
如两个企业在2017年签订了战略合作伙伴协议,集团在信息管理系统方面拥有很多的项目需求,IT资产管理系统作为集团航运标准化项目中的一部分有着十分重要的意义.IT资产管理系统拥有“工作台管理”、“采购管理”、“软件管理”、“硬件管理”、“低值耗材管理”、“统计分析”、“信息中心”、“系统管理”共计八个一级模块.
该文在文献[5]的基础上,将项目目标梳理分解成了6个问题.首先使用第2节中的德尔菲法确定各个度量元方案的判断准则,共计10个:完成的里程碑、关键路径、工作单元进展、功能规模稳定性、功能正确性、可靠性、可维护性、过程符合性、技术适合性、客户反馈.随后利用PUGH矩阵明确方案中的可选择度量元.见表2、表3所示,从中可以统计出各个度量元的更好总数以及更差总数,并通过权值的运算得出加权更好和更差总数.这样反复迭代分析,最终形成10个有效的度量元应用于GQM模型中.通过判断标准进行分析.
表2说明如下:
判断准则:(1) 完成的里程碑;(2) 关键路径性能;(3) 工作单元进展;(4) 功能规模稳定性;(5) 功能正确性;(6) 可靠性;(7) 可维护性;(8) 过程符合性;(9) 技术适合性;(10) 客户反馈.
标准方案:(1) 符合预定的里程碑;(2) 按时完成关键任务或交付日期没有延迟;(3) 单元进展顺利;(4) 需求和功能没有变更;(5) 系统功能达到交付水平;(6) 用户接口便于操作;(7) 标识的问题顺利解决;(8) 项目实现与定义过程一致;(9) 技术满足需求;(10) 客户理解项目性能,请求能得到快速处理.
表2待选择方案
表3 度量单元统计分析
最终形成10个度量元.在上面这个项目实例中,采用了基于德尔菲法和PUGH矩阵的决策机制形成GQM度量计划,综合考虑了度量元方案的判断准则,最终形成了有效的度量元应用于GQM模型中.相比较与文献[8]中没有明确描述度量元的形成过程,该文则由项目管理者根据本企业的实际情况和工作中数据的收集方式和程度,真实和逐渐地按照德尔菲法和PUGH矩阵反复迭代最终形成具有实际意义和价值的度量元,真正对软件项目度量起到了预测和控制的作用.
4 结论
该文针对软件度量方法GQM模型的特点,提出了一种在GQM度量方法中的决策机制,系统地讨论了该机制的实现过程和方法.并通过软件开发实际案例的详细分析,实验结果表明了该机制实施的可行性.该GQM度量方法中的决策机制能够有效地改进GQM模型应用效果,更好地进行软件度量活动.