Sonar中的技术债务简要了解
sonar中技术债务的计算基于SQALE(Software Quality Assessment based on Lifecycle Expectations,基于生命周期期望的软件质量评估)方法学。
SQALE方法学是inspearit开发的,后来开源了。如果你在sqale.org上阅读过相关文档,你就会了解到它是关于“组织与代码质量相关的非功能行需求”的。在SonarQube实现的SQALE方法中,那些非质量需求指的是质量配置中的编码规则。
没错,SonarQube基于单独的规则和问题实现了SQALE。那意味着,如果你想用SQALE管理你的技术债务,你首先需要公共的SonarQube存储库中那些规则的标记:
重复的代码块
失败的单元测试
不足的分支单元测试覆盖率
不足的注释密度
不足的单元测试行覆盖率
跳过单元测试
这些规则在一个公共的存储库中是因为他们对所有语言是共用的。一旦你激活了它们,你可以以一个问题跟踪每个质量缺陷,为跟踪技术债务(SQALE方法用天度量)做准备。
这些天的测量值是把每个问题中出现的技术债务相加得到的,你可以在每个问题块中看到。
技术债务为每个问题设置了规则等级。如果你已经了解商业的SQALE插件,你可以调整每个规则的估量(当然,这个是没有必要的)。
现在你知道修复应用需要花费多长时间,但是你怎么按优先级排序你的工作呢?这里有一个小部件,它叫做技术债务金字塔,它看起来一点不像你以前所见过的金字塔。
不要因这不像是一个古埃及的金子塔而困惑,这是一个比喻的金字塔。阅读它的方法是自下而上的。底部的行在条形图中总是有最小的条形,但是它有最大的入口因为它是基础。这个小部件的每个行代表一种特征(characteristic),每个特征建立在它下面的基础上。可测试性是底部,因为它最重要的是:首先,你要确保你的应用程序是可测试的,接着你要确保它的可靠性,可变性,有效性,等等。
图中的每条显示了每个特征的修复时间。浅蓝色的部分显示了清理这个特征的时间,深蓝色的部分显示了自下而上的工作累计时间。像往常一样,每个部分的部件通过点击下钻操作让你知道一个特征的技术债务的精确位置。
SonarSource SQALE插件扩展了SonarQube内置插件的功能。扩展的功能有:可以调整SQALE模型,提供了可添加的小部件等等。
译:http://docs.codehaus.org/display/SONAR/Technical+Debt
Sonar 的详细介绍:请点这里
Sonar 的下载地址:请点这里