CMT++
Z Wikipedii
Narzędzie do pomiaru złożoności dla C i C++
CMT++ Complexity Measures Tool jest narzędziem do analizy statycznej złożoności programów napisanych w C lub C++. Jest znanym faktem, że złożoność kodu jest ściśle związana z ilością błędów w programie i stabilnością programu. Skomplikowany kod jest trudny do przetestowania: prawdopodobnie więcej błędów pozostaje nieujawnionych w ostatecznym programie. Skomplikowany kod będzie sam w sobie bardziej podatny na błędy i będzie wpływał negatywnie na ilość defektów ostatecznej aplikacji. Skomplikowany kod jest również trudny do pielęgnacji.
Ponieważ testowanie i pielęgnacja są źródłem większości kosztów projektów programowych, wchodzą tu również w grę aspekty finansowe. Koszty ponoszone za złą jakość błędnych programów mogą okazać się bardzo wysokie a czasem nawet decydujące dla przedsiębiorstwa. Niepotrzebnie skomplikowany kod może być powodem niektórych z tych kosztów.
CMT++ może być używany do pomiaru złożoności i do otrzymania lepszej jakości kodu C i C++. Oparty na statycznych właściwościach kodu programu, CMT++ podaje oszacowanie, jak bardzo kod źródłowy programu jest podatny na błędy z powodu jego złożoności, jak długo zajmie zrozumienie kodu, jaka jest logiczna objętość kodu,itd. ... Ponieważ zespół projektowania zazwyczaj nie ma czasu na inspekcje całego kodu stworzonego przez projekt, CMT++ może być pomocnym w lokalizacji modułów, które najprawdopodobniej będą stwarzały problemy w przyszłości.
[edytuj] McCabe cyclomatic number v(G)
szacuje złożoność przepływu sterowania(control flow complexity) kodu.
Cyclomatic number v(G) opisuje złożoność przepływu sterowania programu. W wypadku pojedynczej funkcji, v(G) jest o jeden mniej niż ilość warunkowych punktów rozgałęzień funkcji. Im wyższy jest cyclomatic number tym trudniejsze staje się zrozumienie kodu. Cyclomatic number funkcji powinien być mniejszy niż 15. Więcej niż 15 rozgałęzień staje się trudna do identyfikacji i przetestowania.Funkcje zawierające jedną instrukcje wyboru (switch-case) z wieloma rozgałęzieniami stanowią wyjątek. Rozsądną górną granicą v(G) dla pliku jest 100.