W trosce o jakość kodu

Szybkość rozwiązania określonego problemu technicznego nie zawsze idzie w parze z jakością. Aby umożliwić kontrolę i wspomóc zespoły programistyczne w czasie wytwarzania projektów, powstały statyczne metryki oprogramowania.

Tworzenie systemów komputerowych to bardzo specyficzna dziedzina przemysłu. Chyba każdy ma świadomość, że na koszt wytworzenia oprogramowania najbardziej wpływa czas pracy programistów, ale cena dalszego rozwoju produktu jest kształtowana przez sposób jego wykonania. Między innymi z tego powodu są rozwijane techniki mierzenia jakości kodu.

Rodzaje metryk

Najczęściej chyba stosowaną miarą jest złożoność cyklomatyczna, stworzona przez Thomasa J. McCabe w połowie lat siedemdziesiątych. Pozwala ona na określanie poziomu skomplikowania kodu na podstawie ilości dróg w schemacie blokowym, czyli liczby punktów decyzyjnych w programie. Kolejnymi istotnymi miarami są skojarzenia odśrodkowe (ang. efferent couplings) i dośrodkowe (ang. afferent couplings). Dla danego komponentu oznaczają one odpowiednio: ilość innych komponentów, z których korzysta mierzony element oraz ilość innych komponentów, jakie wykorzystują dany komponent. Na ich podstawie jest liczona kolejna miara, czyli niestabilność. Wyznacza się ją licząc stosunek skojarzeń odśrodkowych do sumy wszystkich skojarzeń. Im jest ona mniejsza, tym komponent jest bardziej stabilny. Jest to dość intuicyjne: im więcej zależności od zewnętrznych elementów ma mierzony pakiet, tym częściej będzie poddawany zmianom w wyniku modyfikacji w innych obszarach projektu. Oczywiście, nie sposób zapomnieć o najprostszej z miar, a mianowicie liczbie wykonywalnych linii kodu.

Rzecz jasna, to tylko kilka najpopularniejszych metryk. Nie jest możliwe wymienienie wszystkich wskaźników, które mogą być wykorzystywane w praktyce podczas produkcji oprogramowania. Naukowcy, inżynierowie, a także kadra zarządzająca wprowadzają kolejne techniki mierzenia jakości oprogramowania lub dostosowują wskaźniki do indywidualnych potrzeb, szukając coraz to lepszych sposobów na zapewnienie jakości.

Zastosowania

Jednym z głównych zastosowań metryk jest kontrolowanie na bieżąco zmian dokonywanych w czasie pracy nad rozwiązaniem. Odpowiednio zastosowane mogą pomóc określać jakość kodu dostarczanego przez programistów. Może się to okazać szczególnie przydatne przy bardzo dużych projektach rozwijanych przez kilka rozproszonych geograficznie zespołów. Oprócz tego, wskaźniki można wykorzystać do szacowania czasu pracy nad danym fragmentem kodu, np. korzystając z modeli regresyjnych. Inżynierowie mogą za ich pomocą lokalizować miejsca w projekcie, które mogą wymagać przebudowy lub refaktoringu. Są to, rzecz jasna, tylko podstawowe zastosowania tych najbardziej znanych metryk. Spektrum możliwości jest znacznie szersze. Przykładowo, bardziej złożone techniki i miary pozwalają wykrywać potencjalne luki bezpieczeństwa w kodzie.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200