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
|
|
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)
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.