加权微功能点
加权微功能点( WMFP )是一种现代的软件大小算法,它是固体祖先科学方法的继任者,例如Cocomo , Cosysmo ,可维护性指数,循环复杂性,功能点和Halstead复杂性。与传统的软件大小方法论相比,它产生的结果更准确,同时需要最终用户的配置和知识,因为大多数估计是基于现有源代码的自动测量值。
由于许多祖先测量方法都使用代码源线(SLOC)来测量软件大小,因此WMFP使用解析器来理解将其分解为微功能的源代码并得出几个代码复杂性和音量指标,然后将其动态插入最终中努力得分。除了与瀑布软件开发生命周期方法兼容外,WMFP还与较新的方法兼容,例如六sigma, boehm螺旋和敏捷(aup/lean/lean/xp/dsdm)方法,由于其差异分析能力是可能的通过其更高的测量元素。
测量的元素
WMFP测量的元素是WMFP算法分析从源代码得出的几个不同的软件指标。它们表示为整个单元(项目或文件)工作的百分比,并将其转化为时间。
- 流动复杂性(FC) - 以类似于传统的循环复杂性的方式来测量程序的流量控制路径的复杂性,并通过使用权重和关系计算具有更高的精度。
- 对象词汇(OV) - 测量程序源代码所包含的独特信息的数量,类似于带有动态语言补偿的传统Halstead词汇。
- 对象连接(OC) - 测量程序源代码所包含的信息所做的用法数量。
- 算术复杂性(AI) - 测量整个程序中算术计算的复杂性
- 数据传输(DT) - 测量程序内部数据结构的操纵
- 代码结构(CS) - 测量在程序结构上花费的精力,例如将代码分为类和功能
- 内联数据(ID) - 测量在嵌入硬编码数据上花费的精力
- 评论(CM) - 衡量在编写程序评论上花费的精力
计算
WMFP算法使用三阶段的过程:功能分析,APPW变换和结果翻译。动态算法平衡并总和测得的元素并产生总努力得分。基本公式是:
- σ(WIMI) πdq
- M =通过WMFP分析阶段测量的源指标值
- W = AppW模型分配给公制的调整重量
- n =公制类型的计数
- I =当前的度量类型索引(迭代)
- D =用户输入提供的成本驱动因素
- Q =当前的成本驱动器索引(迭代)
- k =成本驱动力的计数
然后,通过应用称为“平均程序员概况权重”(APPW)的统计模型,该分数转化为时间,该模型是Cocomo II 2000和Cosysmo的专有后继者。然后,将程序员工作时间的结果时间乘以每小时平均程序员的用户定义成本,以产生平均项目成本,并将其转换为用户货币。
缺点
与Cocomo这样的传统尺寸模型相比,WMFP的基本要素在某种程度上更为复杂,即无法手动(即使是在较小的项目上)实际评估它们,并且需要软件来分析源代码。结果,它只能与基于类比的成本预测一起使用,而不是理论教育的猜测。