使用SonarQube计算设计违规技术债务

时间:2014-02-20 11:39:43

标签: java standards-compliance sonarqube technical-debt

我想知道是否有可能使用最新版本的Sonar或通过一些插件来计算架构违规的技术债务(来自java项目),例如:“'X'类应该在com.domain中.classes包“或”类'X'必须扩展类'Y'“?或者“'X'类必须具有'public static Y someAttribute'属性”?

如果没有这个插件,有如何开发插件来自动化这个?我已经阅读了Java API,REST的文档,如何开发插件并尝试编写代码,但还没有找到方法。

2 个答案:

答案 0 :(得分:2)

可能的路线是使用PMD代码检查器。您可以将自己的custom rules添加到PMD,并且Sonar有PMD plugin


  

但在这种情况下,Sonar可以为我计算债务(通过SQALE或其他插件)吗?在另一个案例中,我如何计算债务?

我认为你误解了“技术债务”一词。以下是维基百科的描述:

  

技术债务(也称为设计债务[需要引证]或代码债务)是一种新词隐喻,指的是代码库中软件架构和软件开发不良的最终后果。债务可以被认为是在特定工作被认为完成之前需要完成的工作。如果债务没有偿还,那么它将继续累积利息,使得以后很难实施变革。未解决的技术债务增加了软件熵。

需要注意的关键是技术债务是隐喻

因此,例如,PMD可以告诉您代码违反某些规则的次数,但它无法告诉您修复它们需要做多少工作,或者将来会产生多少额外工作因为您没有现在解决它。

基本上,您无法衡量技术债务,因为真正的技术债务衡量标准需要了解未来会发生什么。另请阅读:https://softwareengineering.stackexchange.com/questions/167080/how-is-technical-debt-best-measured-what-metrics-are-most-useful

答案 1 :(得分:0)

执行此操作的唯一方法是通过Commercial SQALE插件,手动插入扩展架构约束,XPath,PMD和其他类似规则的修复成本。

Sonarqube回答:http://sonarqube.15.x6.nabble.com/Calculating-Design-Violations-Technical-Debt-with-SonarQube-td5022251.html