Wprowadzenie do złożoności cyklicznej

Cyklomatyczną złożoność opracował Thomas J. McCabe w 1976 roku. Zalecił, aby programiści policzyli złożoność modułów, nad którymi pracują, i podzielili je na mniejsze moduły, tak aby ilekroć cykliczność złożoności modułu przekraczała 10. 10 to maksymalna cykliczność złożoności dla jednego programu. Jest to pomiar złożoności kodu źródłowego związany z wieloma błędami kodowania. Określa niezależne ścieżki, które byłyby bardzo pomocne dla programistów i testerów.

Pomaga to w testowaniu oprogramowania i daje nam większą pewność, że każdy aspekt naszego programu został przetestowany. Poprawia to jakość kodu, a także pomaga bardziej skoncentrować się na niewidocznych ścieżkach, jeśli takie istnieją. Zasadniczo oblicza się go poprzez opracowanie grafu kontrolnego kodu, który mierzy liczbę liniowo niezależnych ścieżek w programie, aby dokładnie zmierzyć złożoność fragmentu kodu. Pomaga to poprawić jakość oprogramowania.

Definicja

Cyklomatyczna złożoność kodu polega na obliczeniu liczby liniowo niezależnych ścieżek w nim zawartych.

Jak obliczyć złożoność cykliczną?

Obliczanie cyklicznej złożoności programu jest bardzo łatwe według następującego wzoru.

Cyklomatyczna złożoność = E - N + 2P

  • E => nr. krawędzi wykresu
  • N => Liczba węzłów wykresu
  • P => Liczba podłączonych komponentów

Istnieje alternatywna formuła, jeśli weźmiemy pod uwagę punkt wyjścia, który wraca do punktu wejścia. I stworzysz to jak cykl.

Cyklomatyczna złożoność = E - N + P

Cyklomatyczna złożoność = E - N + 1

Mamy jeszcze jeden sposób na obliczenie tego. To jest łatwiejszy sposób.

  1. Narysuj wykres
  2. Następnie podłącz punkt wyjścia do punktu wejścia
  3. A następnie policz dziury na wykresie

Spójrz na następujący rysunek:

Poniżej przedstawiono niektóre notacje na wykresie przepływu:

Jeśli-to-jeszcze:

Podczas:

Do-While:

Dla:

Jeśli program nie ma żadnej pętli, jego złożoność jest mniejsza. Gdy program napotka dowolną pętlę, złożoność wzrasta.

Załóżmy, że mamy jeden, jeśli warunek jest zdefiniowany, wtedy mamy złożoność jako 2. Ponieważ warunek ma dwa warunki: Prawda i Fałsz.

Ta technika jest najczęściej stosowana w podstawowych testach białej skrzynki. Cyklomatyczna złożoność stanowi minimum nie. testów wymaganych do wykonania każdej ścieżki w kodzie.

Różne języki mają różne narzędzia do pomiaru cyklicznej złożoności programu.

Kroki obliczania złożoności cyklomatycznej są następujące

  1. Narysuj schemat blokowy lub wykres z kodu.
  2. Teraz w drugim kroku sprawdź i określ liczbę niezależnych ścieżek.
  3. Następnie oblicz cykliczną złożoność według wzoru wymienionego poniżej:

M = E –N + 2P

  1. Zgodnie z projektem miary przypadki testowe.

Teraz możesz zadać pytanie, w jaki sposób można to faktycznie obliczyć. Przejdźmy dalej i zrozummy, w jaki sposób zamierzamy to obliczyć.

Rozważ następujący przykład kodu Java:

Ten program oblicza serię Fibonacii jak:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Następujący program to po prostu wydrukowanie serii Fibonacii

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> javac Printno.java

> java Printno

O / p:

Seria Fibonacii to: 0

1

1

2)

3)

5

8

13

Przyjrzyj się bliżej powyższemu programowi. Znajdziesz jedną pętlę while. Ten program składa się tylko z jednej pętli while.

Teraz nadszedł czas, aby narysować dla niego wykres.

Wykres przepływu kontroli, jak poniżej:

Schemat blokowy

Teraz, aby obliczyć złożoność powyższego programu, najpierw musimy obliczyć całkowitą liczbę nie. krawędzi:

Łączna liczba krawędzi: 6

Teraz obliczyć całkowitą liczbę węzłów.

Łączna liczba węzłów: 5

Wzór: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Tak więc cykliczność złożoności tego programu wynosi 3.

Złożone kody są trudne do utrzymania, aktualizacji i modyfikacji. Jak wszyscy wiemy, cykliczność złożoności nie powinna przekraczać 10.

Rodzaje złożoności

Istnieją dwa rodzaje złożoności:

Niezbędna złożoność :

Ta złożoność jest rodzajem kodu, którego nie możemy zignorować.

Dawny. System zarządzania lotem jest bardziej złożony.

Przypadkowa złożoność:

Jak sama nazwa wskazuje, ponieważ w systemie wydarzyło się coś takiego jak naprawa błędów, łatanie, modyfikacja itp. Przeważnie pracujemy tylko nad przypadkową złożonością.

Korzyści z cykliczności złożoności:

  • Jako prosta logika, jeśli złożoność zmniejszy się, wygodniej jest to zrozumieć.
  • Jeśli istnieje bardziej złożony program, programista musi cha = eck, nie ma możliwości zwiększenia możliwości.
  • Ścieżki liczone w złożoności pokazują, że program napisany przez program jest złożony lub możemy przejść dalej i zmniejszyć złożoność.
  • Zmniejsza sprzężenie kodu.
  • Załóżmy, że program ma cykliczną złożoność 5. co oznacza, że ​​istnieje 5 różnych niezależnych ścieżek dla tej metody.
  • Oznacza to, że należy wykonać 5 przypadków testowych, aby zaimplementować ten kod do testowania.
  • Dlatego zawsze dobrze jest uzyskać mniejszą liczbę ze względu na złożoność cykliczną.
  • Ten proces jest wymagany, ponieważ bardzo sprzężony kod jest bardzo trudny do modyfikacji.
  • Im większa jest złożoność kodu, co oznacza, że ​​kod jest również bardziej złożony.

Narzędziami stosowanymi do obliczania złożoności cyklicznej są:

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Zasięg Bullseye
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Wniosek

Cyklomatyczna złożoność jest miarą złożoności programu. Środek ten pomaga nam zrozumieć wymaganą pracę do wykonania i stopień złożoności oprogramowania. Cyklomatyczna złożoność jest częścią testów białych skrzynek.

Polecane artykuły

To był przewodnik po złożoności cyklomatycznej. Tutaj omawiamy Jak obliczyć złożoność cykliczną? wraz z korzyściami i rodzajami złożoności. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Wprowadzenie do systemu Linux
  2. Wprowadzenie do C ++
  3. Co to jest HTML5?
  4. Co to jest Hibernacja?