2012-04-25 12 views
10

Nel Sonar, per una particolare classe Java, vedo:differenza tra "complessità" metrica e "complessità/metodo" metrica

Complexity:  830 

Complexity /method:  8,1 

Come si potrebbe spiegare la differenza tra questi due parametri?

La "complessità" è la complessità della classe?

Qual è la complessità massima di una classe? So che i metodi dovrebbero essere meno di 10 per la complessità del metodo, ma qual è il numero massimo di complessità di classe che una classe dovrebbe conformarsi per essere considerata non complessa?

Grazie.

EDIT

guardo anche Cyclomatic complessità delle regole violazioni nel file.

Per una serie di metodi, sonar dice con diversi numeri di complessità (in francese):

"La complexité cyclomatique de la classe est de 28 alors que le massima autorisé est de 10"

in inglese:

"La complessità ciclomatica classe è 28, ma il massimo consentito è di 10".

Non capisco perché dice "complessità ciclomatica di classe" come sembra un "metodo complessità ciclomatica".

Inoltre, la classe in questione non appare in cima alla classe più complessa ordinata per complessità/metodo medio, in quanto l'ecoscandaglio dice che ha solo una complessità media del metodo di 8,1.

risposta

6

Puoi dare un'occhiata alla nostra pagina Wiki "Metric Definitions" (e più precisamente allo "Complexity" section) per saperne di più sul significato delle metriche trovate in Sonar.

  • "complessità" è la complessità totale di una risorsa (per un file => somma delle complessità di ogni classe definiti nel file)
  • "La complessità/metodo" è la "complessità" divisa per la numero di metodi trovati nel file
  • ... e così via per le altre metriche.
+1

Grazie per la risposta. Forse sono io ma non era così ovvio che "Complessità" significa "somma delle complessità dei metodi", ma ora sembra davvero ovvio. La pagina wiki non afferma che è la somma di tutte le complessità dei metodi. –

+0

@ Jérôme: Ufficialmente, la somma delle complessità di McCabe per una classe si chiama WMC (Weighted Methods per Class) come descritto [qui] (https://sonarqube.sourcemeter.com/plugins/resource/491408?page=sm-help #Complessità). –

+0

il collegamento presentato non si differenzia tra le metriche di complessità che il sonar gestisce: come CoreMetrics.FILE_COMPLEXITY e CoreMetrics.COMPLEXITY – XtianGIS