Alcuni anni fa stavo usando Sonar (prima che fosse SonarQube ) per analizzare del codice Java, e ricordo di aver visto un utile metrica che sarebbe tornata utile ancora oggi. Tuttavia non sembra essere parte dell'implementazione SonarQube a cui ho accesso.
La metrica descriveva il modo in cui una classe poteva essere facilmente suddivisa in classi separate senza richiedere un ampio refactoring.
A titolo di esempio, intendo: diciamo che abbiamo una classe chiamata MyService
, che ha riferimenti a due DAO, CustomerDAO
e ItemDAO
. Ogni metodo su MyService
chiama CustomerDAO
o ItemDAO
ma mai entrambi. Sembra intuitivo che MyService
possa essere scomposto in CustomerService
e ItemService
, e quindi migliorare il principio di responsabilità singola globale dell'applicazione.
Tuttavia, non riesco a trovare riferimenti a questa metrica in una revisione degli strumenti di analisi statica e non riesco a trovare un modo conciso per descriverlo in un modo che un motore di ricerca potrebbe capire.
Qualcuno può indicarmi un buon nome per / la definizione di questa metrica e / o uno strumento che la implementa?