Metryki

[English][Français][Deutsch]

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

Complex Code - CMT

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) Halstead's metrics
  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

Prezentacja (17 slides)

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.