2012-04-25 14 views
10

W Sonar, dla określonej klasy Javy, widzę:Różnica między „złożoność” metrykę i „złożoność/metoda” metryki

Complexity:  830 

Complexity /method:  8,1 

Jak można wyjaśnić różnicę między tymi dwoma metryki?

Czy "złożoność" jest złożonością klasową?

Jaka jest maksymalna złożoność, jakiej powinna dotyczyć klasa? Wiem, że metody powinny być mniejsze niż 10 dla złożoności metody, ale jaki jest maksymalny stopień złożoności klasy, który klasa powinna spełniać, aby nie była złożona?

Dzięki.

EDIT

Ja też spojrzeć na Cyclomatic złożoności naruszeń przepisów zawartych w aktach.

Przez szereg metod, sonar mówi o różnych numerach złożoności (w języku francuskim):

"La complexité cyclomatique de la classe est de 28 Alors que le maksymalnie autorisé est de 10."

w języku angielskim:

„Klasa Złożoność cykliczna jest 28, ale maksymalna dopuszczalna wynosi 10”.

Nie rozumiem, dlaczego jest napisane "złożoność cykliczna klasy", ponieważ wydaje się, że jest to "złożoność cykliczna metody".

Ponadto dana klasa nie pojawia się na szczycie najbardziej skomplikowanej klasy posortowanej według średniej złożoności/metody, ponieważ sonar twierdzi, że ma tylko 8,1 średniej złożoności metody.

Odpowiedz

6

Możesz zajrzeć na naszą stronę Wiki "Definicje metryczne" (a dokładniej na stronie "Complexity" section), aby dowiedzieć się więcej na temat znaczenia danych zawartych w sonarze.

  • „złożoność” jest całkowita złożoność zasobu (dla pliku => suma zawiłości każdej klasy zdefiniowane w pliku)
  • „Complexity/metoda” jest „Complexity” podzielony przez liczba metod znajdujących się w pliku
  • ... i tak dalej w przypadku innych danych.
+1

Dzięki za odpowiedź. Być może to ja, ale nie było tak oczywiste, że "złożoność" oznacza "sumę złożoności metod", ale teraz wydaje się to oczywiste. Strona wiki nie stwierdza, że ​​jest to suma złożoności wszystkich metod. –

+0

@ Jérôme: Oficjalnie suma złożoności McCabe dla klasy nazywa się WMC (metody ważone na klasę) zgodnie z opisem [tutaj] (https://sonarqube.sourcemeter.com/plugins/resource/491408?page=sm-help #Złożoność). –

+0

Przedstawione łącze nie rozróżnia między wskaźnikami złożoności obsługiwanymi przez sonar: takimi jak CoreMetrics.FILE_COMPLEXITY i CoreMetrics.COMPLEXITY – XtianGIS

Powiązane problemy