Testwell CMT++ / CMTJava

[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 -> für die weitere Nutzung der Software fallen zu hohe Kosten an
  • verschiedene Normen (wie z.Bsp. ISO 26262) verlangen daher eine niedrige Code-Komplexität.
 
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 Testwell CMT++ bzw. Testwell CMTJava hilft Ihnen Kosten einzusparen.

 

Was wird mit Testwell CMT++ bzw. Testwell CMTJava gemessen?

Basierend auf einer statischen Analyse Ihrer Anwendungen gibt Testwell 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, die bei den Softwaretests besondere Berücksichtigung finden sollten.
Testwell CMT++ und Testwell 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.
Als Auftragnehmer für die Entwicklung von Software können Sie Ihren Kunden die Qualität Ihrer Entwicklung hinsichtlich der Komplexität nachweisen.

 

Testwell 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
weitere Informationen

 

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
weitere Informationen über Halstead Metriken

 

c) McCabe Cyclomatic Number v(G)
Die Cyclomatic Number v(G) beschreibt die Komplexität des Steuerflusses einer Anwendung.
weitere Informationen über McCabe Metriken

 

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.
weitere Informationen über den Wartbarkeitsindex

 

Alarmlimits können an Projektanforderungen angepaßt werden

Die von Testwell CMT++ bzw. Testwell 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. Testwell CMT++ und CMTJava erlauben dem Nutzer daher eine Anpassung der Alarmdefinitionen an die jeweiligen Projektanforderungen im Control-Panel des Tools.

 

Testwell 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
  • verschiedene Ausgabeformate (Text, XML, HTML, ...)
  • Weiterverarbeitung der Metriken in Ihrer Umgebung (z.Bsp. mit Excel)
  • GUI-Integration in Visual C++ Developer Studio
  • verfügbar für verschiedenen Plattformen: Windows, Linux, HP, Solaris

 

Verybench for CMT++  

Verybench: Grafisches Frontend für Testwell CMT++/CMTJava

Verybench ist ein grafisches Frontend, welches die Metriken der Testwell-Tools in verschiedenen Ausgabeformen präsentiert. Da die am Softwareentwicklungsprozeß beteiligten Nutzer verschiedene Informationen benötigen, liefert Verybench verschiedene Sichten für Management, Entwicklung, Review und "Controlling".
Weitere Informationen: Verybench

 

Weitere Informationen

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

[PDF]  Präsentation (61 Slides, 1,1 MB)

technische Produktbeschreibung Testwell CMT++ (englisch) (Link auf www.testwell.fi)
technische Produktbeschreibung Testwell 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)
[PDF]  Softwaremetriken gezielt einsetzen (738 KB, Vortrag von Prof. Dr. Daniel Fischer auf dem ESE Kongress 2009)

Presse     Video     News     Free trial


last updated: 30 Jan 2012

© 2005-2012 Verifysoft Technology GmbH
CTA++, CTC++, CMT++ and CMTJava are products of Testwell Oy, Tampere (Finland)
Verybench is a product of Verifysoft Technology GmbH
all other trademarks of this site are the property of their respective owners.