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?