Testwell CMT++/CMTJava
Narzędzie do pomiaru złożoności dla C, C++/Java
Dlaczego analiza złożoności kodu ?
- Złożoność kodu koreluje z ilością blędów i stabilnością aplikacji
- Skomplikowany kod jest trudny do testowania -> więcej błędów w ostatecznej wersji
- Skomplikowany kod jest trudny do pielęgnacji
Niepotrzebnie skomplikowany kod jest często powodem złej
jakości kodu oraz błędnych programów
Skomplikowany kod jest trudny do testowania i do pielęgnacji
Koszt niskiej jakości blędnego kodu mogą być bardzo wysokie,
tak więc oprogramowanie sensownej złożoności pozwala zaoszczędzić dużo
pieniędzy
Co jest mierzone przez CMT++/CMTJava ?
W oparciu o właściwości statyczne kodu programu CMT++ i CMTJava szacuje, jak bardzo program jest podatny na błędy z powodu jego złożoności, ile czasu potrzeba na zrozumienie kodu, jak duźa jest logiczna objętość kodu i.t.d.Grupa projektowa często nie ma dość czasu na inspekcję całego kodu projektu, CMT++/CMTJava może pomóc w lokalizacji modułów, które bardzo prawdopodobnie mogą sprawiać kłopoty w przyszłości
CMT++/CMTJava oblicza i analizuje następujące metryki oprogramowania :
a) Lines-of-code (LOC)metrics - Metryki wierszy kodu
| LOCbl | ilość pustych wierszy | |
| LOCcom | ilość wierszy tylko z samymi komentarzami | |
| LOCphy | ilość fizycznych wierszy | |
| LOCpro | ilość wierszy z kodem programu ( mogą zawierać komentarze) |
| B | szacowana ilości błędów w programie | |
| D | poziom trudności, podatność na błędy | |
| E | wysiłek konieczny do implementacji | |
| L | poziom programu (przedstawia poziom abstrakcji programu) | |
| N | długość programu | |
| Ń | ilość operatorów | |
| N2 | ilość operandów | |
| n | wielkość słownika lub ilość różnych operatorów i różnych operandów | |
| ń | ilość różnych operatorów | |
| n2 | ilość różnych operandów | |
| T | czas implementacji (czas zrozumienia) | |
| V | Pojemność programu lub zawartość informacyjna programu |
c) McCabe cyclomatic number
Cyclomatic number v(G) opisuje złożoność przepływu sterowania programu
d) Indeks pielęgnacji (Maintainability index)
Indeks pielęgnacji jest obliczany przy pomocy wzoru zawierającego
metryki lines-of-code, McCabe cyclomatic number i metryki Halsteada
Pomiar i obserwacja indeksu pielęgnacji moźe pomóc w redukcji
lub odwrócenia tendencji systemów do "code entropy"
i we wskazaniu, kiedy może być taniej i mniej ryzykownie
napisać kod na nowo zamiast go modyfikować
granice alarmowe (alarm limits) w CMT++/CMTJava mogą być dopasowane do projektu
Granice domyślne są ogólnymi zaleceniami, opartymi na pomiarach kodu pielęgnowanego z powodzeniem.Narzędzia do pomiaru złożoności Testwella obliczają metryki, których użyteczność została potwierdzona w wieloletnich projektach badawczych w USA (szczególnie Software Engeneering Institute of Cornegie Melon University)
Metryki w CMT++/CMTJava są standardami przemysłowymi.
Ponieważ nie jest możliwe podanie bezwzględnych granic dla akceptowalnych wartości metryk, narzędzia Testwellu umożliwiają opcjonalne definiowanie granic alarmowych odpowiadających wymaganiom projektu.
CMT++/CTMJava Highlights
- pomiary na originalnych non-processed plikach zródłowych (C/C++)
- bardzo szybkie przetwarzanie -> analiza projektu w ciągu kilku minut
- przetwarzanie wielu/bardzo duźych plików
- raporty w formatach HTML i tekst -> wyniki mogą być dalej przetwarzane w MS Excel
- integracja w MS Visual C++
- dostępne na wielu platformach: MS Windows, Linux, HP-UX, Solaris
dalsze informacje:
CMT++/CMTJava
CMT++ (Link to www.testwell.fi)
CMTJava (Link to www.testwell.fi)
last updated: 06.03.2008
© 2005-2008 Verifysoft Technology
CTA++, CTC++, CMT++ and CMTJava are products of Testwell Oy, Tampere (Finland)
all other trademarks of this site are the property of their respective owners.