2014-02-20 32 views
1

我想知道是否有可能與最新版本的Sonar或通過一些插件計算建築違規(從Java項目)的技術債務,如:「'X'類應該在「com.domain.classes包」或「類'X'必須擴展類'Y'」?或「'X'類必須具有'public static Y someAttribute'屬性」?計算設計違規與SonarQube技術債務

如果沒有這個插件,有如何開發一個插件來自動化這個?我已閱讀Java API,REST文檔,如何開發插件並嘗試對其進行編碼,但尚未找到實現它的方法。

回答

2

可能的路線是使用PMD代碼檢查器。您可以將您自己的custom rules添加到PMD,Sonar有一個PMD plugin


但在這種情況下,聲納可以(通過SQALE或其他插件)我計算債務?在另一個案例中,我如何計算債務?

我想你誤解了「技術債務」這個術語。這是維基百科這樣描述的:

技術債務(又稱設計債[來源請求]或代碼的債務)是neologistic比喻指的是代碼庫中的窮人軟件架構和軟件開發的最終後果。債務可以被認爲是在完成某項工作之前需要完成的工作。如果債務還沒有償還,那麼它將繼續積累利息,以後很難實施更改。未解決的技術債務增加了軟件熵。

關鍵要注意的是,技術債務是一個隱喻

例如,PMD可以告訴你你的代碼違反了某些規則的次數,但它不能告訴你修復它們需要多少工作,或者將來會產生多少額外的工作,因爲你現在沒有修復它。

基本上,你不能測量技術債務,因爲真正的技術債務測量需要知道未來會發生什麼。另請閱讀:https://softwareengineering.stackexchange.com/questions/167080/how-is-technical-debt-best-measured-what-metrics-are-most-useful

+0

非常感謝@stephenc快速回答!我想再問你一件事:我已經閱讀過有關XPath和Java的自定義規則,沒有關於PMD的具體內容。但在這種情況下,Sonar可以爲我計算債務(通過SQALE或其他插件)?在另一個案例中,我如何計算債務?再次感謝! – andreyestevao

+0

好吧,我跑了mvn聲納:在我的項目聲納。發現違反兩項PMD規則的兩個問題:「未使用的局部變量」和「未使用的修飾符」,每項都有30分鐘的技術債務。誰決定了30分鐘?在這種情況下,通過計算或確定時間知道會發生什麼。我怎樣才能做到呢? – andreyestevao

+0

@andreyestevao - 我不知道。坦率地說,我認爲這些技術債務估計是無稽之談。有人已將空氣中的隨機數字拉出。但是如果你真的想知道他們是如何實現它的,請閱讀源代碼。 –