1. Strona główna
  2. Sylabus dla poziomu zaawansowanego – Techniczny analityk testowy (wersja z 19.10.2012)
  3. 3. Techniki analityczne
  4. 3.2 Analiza statyczna
  5. 3.2.3 Analiza statyczna jako sposób poprawy pielęgnowalności

3.2.3 Analiza statyczna jako sposób poprawy pielęgnowalności

Istnieją różne sposoby zastosowania analizy statycznej do poprawy pielęgnowalności kodu, architektury i stron internetowych.

Źle napisany, nieskomentowany i nieustrukturyzowany kod jest trudniejszy w utrzymaniu. Odnalezienie i przeanalizowanie defektów w kodzie wymaga od programistów większego nakładu pracy, a dodanie nowej funkcji może wiązać się z wprowadzeniem do kodu kolejnych defektów.

Analiza statyczna wspomagana odpowiednim narzędziem pozwala poprawić pielęgnowalność kodu dzięki weryfikacji zgodności ze standardami i wytycznymi dotyczącymi kodowania. Te standardy i wytyczne opisują wymagane procedury tworzenia kodu, m.in. konwencje nazewnictwa, sposób komentowania, zasady tworzenia wcięć w tekście i podział kodu na moduły. Narzędzia do analizy statycznej zwykle zgłaszają ostrzeżenia, a nie błędy, w tym także w sytuacji, gdy kod jest poprawny pod względem składniowym.

Modułowa konstrukcja zwykle pozwala poprawić jakość kodu. Narzędzia do analizy statycznej ułatwiają tworzenie kodu modułowego w następujący sposób:

  • Wyszukują powtarzający się kod. Takie fragmenty kodu potencjalnie nadają się do refaktoryzacji i przekształcenia w moduły (chociaż narzut związany z wywołaniami modułów w czasie wykonania może stanowić problem w przypadku systemów czasu rzeczywistego).
  • Obliczają metryki, które są przydatnymi wskaźnikami podziału kodu na moduły, między innymi zależność i spójność kodu. System odznaczający się dobrą pielęgnowalnością na ogół ma niski wskaźnik zależności (czyli stopnia powiązania modułów z innymi modułami w czasie wykonywania) i wysoki wskaźnik spójności (określającej stopień, w jakim moduły są samodzielne i przeznaczone do realizacji jednego zadania).
  • Wskazują w kodzie obiektowym miejsca, w których klasy nadrzędne są widoczne dla obiektów pochodnych w zbyt dużym lub zbyt małym zakresie.
  • Wskazują obszary kodu lub architektury odznaczające się dużą złożonością strukturalną, co zwykle wiąże się ze zmniejszeniem stopnia pielęgnowalności i wzrostem prawdopodobieństwa występowania usterek. Wytyczne mogą określać dopuszczalne poziomy złożoności cyklomatycznej (patrz punkt 3.2.1), tak aby kod był tworzony w sposób modułowy w celu zwiększenia łatwości jego utrzymania i w celu zapobiegania powstawaniu defektów. Fragmenty kodu o dużej złożoności cyklomatycznej potencjalnie nadają się do podziału na moduły.

Narzędzia do analizy statycznej mogą również służyć do pielęgnowania serwisu internetowego. W takim wypadku należy sprawdzać, czy drzewo struktury serwisu jest zrównoważone i czy nie występują nieprawidłowości, które mogą prowadzić do:

  • zwiększenia stopnia trudności zadań związanych z testowaniem,
  • zwiększenia nakładu pracy związanego z pielęgnowaniem serwisu,
  • utrudnień w nawigacji dla użytkowników.