[English][Français]

Testwell CMT++/CMTJava

Softwarekomplexitätsmessungen für C, C++ und Java-Anwendungen

Warum Softwarekomplexitätsmessungen?

  • die Softwarekomplexität (Code Complexity) korreliert mit der Fehlerrate und der "Robustheit" einer Anwendung
  • komplexer Code ist schwierig zu testen -> die Anwendung hat mehr Bugs
  • komplexer Code ist schwierig zu warten
 

Complex Code - CMT Unnötig komplexer Code ist oft Ursache schlechter Softwarequalität und fehlerhafter Programme.
Komplexer Code ist schwierig zu testen und zu warten.
Dies hat direkten Einfluß auf die Kosten eines Softwareprojekts. Der Einsatz der Komplexitätsmesstools CMT++ bzw. CMTJava hilft Ihnen Kosten einzusparen.
 

Was wird mit CMT++ bzw. CMTJava gemessen?

Basierend auf einer statischen Analyse Ihrer Anwendungen gibt CMT++ bzw. CMTJava eine Einschätzung dafür wie fehlerhaft Ihr Programm wahrscheinlich ist, wieviel Zeit notwendig ist um den Code zu verstehen, was das logische Volumen der Software ist usw.
Da Projektteams in der Regel nicht die Zeit haben 100% der Applikation zu testen, helfen Komplexitätsmesstools fehlerträchtige Module zu lokalisieren.
CMT++ und CMTJava helfen Ihnen den Codeumfang und die Codequalität zu messen. Dies ist insbesondere für Firmen interessant, die die Softwareentwicklung bei anderen Unternehmen beauftragen.

CMT++ und CMTJava zeigen die folgenden Softwaremetriken an:

a) Zeilenmetriken/Lines-of-code (LOC) Metriken

  LOCbl Anzahl leerer Programmzeilen
  LOCcom Anzahl der Programmierzeilen mit Kommentaren
  LOCphy Gesamtanzahl der Zeilen (number of physical lines)
  LOCpro Anzahl der Zeilen mit Programmcode

b) Halstead-Metriken

  B geschätzte Fehleranzahl (estimated number of errors)
  D Schwierigkeitsgrad, Fehlerträchtigkeit (difficulty level, error proneness)
  E Implementierungsaufwand (effort to implement)
  L Programmniveau, Abstraktionsniveau des Programms (program level, abstraction level of the program)
  N Programmlänge
  N1 Gesamtanzahl der Operatoren
  N2 Gesamtanzahl der Operanden
  n Vokabulargröße (unterschiedliche Operatoren + unterschiedliche Operanden)
  n1 Anzahl unterschiedlicher Operatoren
  n2 Anzahl unterschiedlicher Operanden
  T Implementierungszeit / Zeit um einen Programmteil zu verstehen
  V Programmvolumen bzw. Informationsgehalt des Programms bzw. eines Algorithmus

c) McCabe Cyclomatic Number v(G)
Die Cyclomatic Number v(G) beschreibt die Komplexität des Steuerflusses einer Anwendung.

d) Wartungsaufwand (Maintainability Index)
Der Wartungsaufwand einer Software wird aus verschiedenen Werten der Zeilenmetriken, McCabe- und Halstead-Metriken errechnet.
Der Wartungsindex zeigt Ihnen u.a. an, wann es kostengüstiger bzw. einfacher ist Programmteile neu zu schreiben anstatt bestehenden zu komplexen Code zu modifizieren.

Alarmlimits können an Projektanforderungen angepaßt werden

Die von CMT++ bzw. CMTJava vorgegebenen Alarmlimits basieren auf langjährigen Erfahrungen mit Softwareprojekten, deren Qualität und Wartbarkeit als vorbildlich gilt.
Testwell Softwarekomplexitätsmeßtools verwenden weltweit anerkannte Metriken (Industriestandards), die in Forschungsprojekten in den USA erstellt worden sind (Software Engineering Institute of Carnegie Mellon University).
Die "akzeptierbare Codekomplexität" kann allerdings je nach Projekt unterschiedlich sein. CMT++ und CMTJava erlauben dem Nutzer daher eine Anpassung der Alarmdefinitionen an die jeweiligen Projektanforderungen im Control-Panel des Tools.

CMT++/CMTJava Highlights :

  • analysiert ursprüngliche nicht präprozessierte Dateien und Projekte
  • extrem schnelle Analyse: komplette, selbst umfangreiche Projekten werden in wenigen Minuten analysiert
  • arbeitet problemlos mit vielen und großen Dateien
  • Ausgaben in HTML- oder Textformat (erlauben die Weiterverarbeitung der Daten, z.Bsp. mit Excel)
  • GUI-Integration in Visual C++ Developer Studio
  • verfügbar für verschiedenen Plattformen: Windows, Linux, HP, Solaris

Weitere Informationen

Übersicht über die letzten CMT++/CMTJava Releases

Produktpräsentation (17 Slides)

Ausführliche Produktbeschreibung:     CMT++/CMTJava

technische Produktbeschreibung CMT++ (englisch) (Link auf www.testwell.fi)
technische Produktbeschreibung CMTJava (englisch) (Link auf www.testwell.fi)

[PDF]  Komplexität und Qualität von Software (738 KB, Artikel aus MSCoder über die Berechnung der einzelnen Metriken)

fordern Sie CMT++ bzw. CMTJava kostenlos zur Evaluation an


last updated: 15.01.2008

© 2005-2008 Verifysoft Technology GmbH
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.