Oto niektóre metryki złożoności ze stan4j .
Narzędzie do analizy struktury klas zaćmień.
Podoba mi się to narzędzie i metryki. Metryki traktuję jako statystyki, wskaźniki, komunikaty ostrzegawcze. Czasami z powodu pewnych metod lub niektórych klas naprawdę skomplikowana logika sprawiła, że są złożone, należy je obserwować, przejrzeć, aby sprawdzić, czy istnieje potrzeba ich refaktoryzacji lub dokładnie je przejrzeć, ponieważ normalnie są podatni na błędy. Używam go również jako narzędzia analitycznego do nauki kodu źródłowego, ponieważ lubię uczyć się od złożonego do prostego. Właściwie zawiera kilka innych wskaźników, takich jak Robert C. Martin Metrics, Chidamber & Kemerer Metrics, Count Metrics Ale ten podoba mi się najbardziej
Metryki złożoności
Cyklomatyczne wskaźniki złożoności
Złożoność cyklomatyczna (CC)
Cyklomatyczna złożoność metody to liczba punktów decyzyjnych na wykresie przepływu sterowania metody, zwiększona o jeden. Punkty decyzyjne występują w instrukcjach if / for / while, klauzulach case / catch i podobnych elementach kodu źródłowego, w których przepływ sterowania jest nie tylko liniowy. Liczba punktów decyzyjnych (kodu bajtowego) wprowadzanych przez pojedynczą instrukcję (kod źródłowy) może się różnić, w zależności np. Od złożoności wyrażeń logicznych. Im wyższa wartość cyklomatycznej złożoności metody, tym więcej przypadków testowych jest wymaganych do przetestowania wszystkich gałęzi kontrolnego wykresu przepływu metody.
Średnia złożoność cyklomatyczna
Średnia wartość miary złożoności cyklomatycznej dla wszystkich metod aplikacji, biblioteki, drzewa pakietów lub pakietu.
Metryki Fat Metryka
Fat artefaktu to liczba krawędzi na odpowiednim wykresie zależności artefaktu. Typ wykresu zależności zależy od wariantu metryki i wybranego artefaktu:
Fat
Metryka Fat aplikacji, biblioteki lub drzewa pakietu to liczba krawędzi wykresu zależności poddrzewa. Ten wykres zawiera wszystkie elementy potomne artefaktu w hierarchii drzewa pakietów, a tym samym obejmuje również pakiety-liście. (Aby zobaczyć odpowiedni wykres w widoku kompozycji, przełącznik płaskich paczek eksploratora struktury musi być wyłączony. Przełącznik Pokaż biblioteki musi być włączony, jeśli wybrany artefakt jest biblioteką, w przeciwnym razie należy go wyłączyć).
Metryka Fat pakietu to liczba krawędzi jej wykresu zależności od jednostek. Ten wykres zawiera wszystkie klasy najwyższego poziomu pakietu.
Metryka Fat klasy to liczba krawędzi jej grafu składowego. Ten wykres zawiera wszystkie pola, metody i klasy składowe klasy. (Ten wykres i wartość Fat są dostępne tylko wtedy, gdy analiza kodu została przeprowadzona dla elementu poziomu szczegółowości, a nie klasy).
Fat dla zależności bibliotek (Fat - Libraries)
Metryka Fat dla zależności bibliotecznych aplikacji to liczba krawędzi jej wykresu zależności biblioteki. Ten wykres zawiera wszystkie biblioteki aplikacji. (Aby zobaczyć odpowiedni wykres w widoku kompozycji, należy włączyć przełącznik Pokaż biblioteki eksploratora struktury).
Tłuszcz dla zależności od płaskiego pakietu (Fat - pakiety)
Metryka Fat dla płaskich zależności od pakietu aplikacji to liczba krawędzi wykresu zależności płaskiego pakietu. Ten wykres zawiera wszystkie pakiety aplikacji. (Aby zobaczyć odpowiedni wykres w widoku kompozycji, przełącznik płaskich pakietów eksploratora struktury musi być włączony, a przełącznik Pokaż biblioteki musi być wyłączony).
Metryka Fat for Flat Package Dependencies jest liczbą krawędzi jej płaskiego wykresu zależności pakietu. Ten wykres zawiera wszystkie pakiety biblioteki. (Aby zobaczyć odpowiedni wykres w widoku kompozycji, należy włączyć przełączniki Flat Packages i Show Libraries w eksploratorze struktury).
Fat dla zależności klas najwyższego poziomu (Fat - jednostki)
Metryka Fat dla zależności klas najwyższego poziomu aplikacji lub biblioteki jest liczbą krawędzi jej wykresu zależności jednostek. Ten wykres zawiera wszystkie klasy najwyższego poziomu aplikacji lub biblioteki. (W rozsądnych zastosowaniach jest on zbyt duży, aby go wizualizować i dlatego nie można go wyświetlić w widoku kompozycji. Wykresy zależności jednostek mogą być wyświetlane tylko dla pakietów).
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
. Dopiero gdy wartość tej metryki jest jak najmniejsza, warto, aby człowiek zaczął przeglądać kod (moim zdaniem). Podsumowując: bardziej zaawansowane narzędzia niż uproszczone formuły mogą pomóc poprawić jakość kodu. To jednak prawdopodobnie nie na temat.