Metriken & Visualisierungen
Die Codequalität kann anhand numerischer Metriken, das heißt, die Anzahl der Elemente im Quellcode, analysiert werden. Codequalität wie z. B. Komplexität und Abhängigkeiten können über interaktive Grafiken und Diagrammen visualisiert werden.
Ein Basissatz von Code-Metriken wurde von der Hersteller Initiative Software (HIS) definiert. HIS ist eine Kooperation der Verbände der Automobilindustrie aus Deutschland, Großbritannien und Frankreich. Ihr Ziel war es, eine international gültige gemeinsame Infrastruktur für die Software-Qualitätssicherung in der Automobilindustrie zu schaffen. Software-Metriken sind die Basis für ein effizientes Projekt- und Qualitätsmanagement. Mit Software-Metriken können Aussagen über die Qualität des Softwareprodukts und des Softwareentwicklungsprozesses getroffen werden.
Welche Code-Metriken von QA-MISRA berechnet werden können, zusammen mit Regeln zur Überprüfung der Schwellenwerte für diese Metriken, sind nachfolgend aufgelistet. Des Weiteren, ob und unter welchem Namen die jeweilige Metrik Teil dieses Satzes von Code Metriken ist.
Hersteller Initiative Software (HIS) Metriken
Die folgenden HIS-Metriken werden von QA-MISRA mit Schwellenwertprüfungen unterstützt:
- COMF (Kommentardichte)
- PATH (Anzahl der Pfade)
- GOTO (Anzahl der Jump-Statements)
- v(G) (zyklomatische Komplexität)
- CALLING (Anzahl der Aufrufe)
- CALLS (Anzahl von Aufrufen)
- PARAM (Anzahl der Argumente)
- STMT (Statements pro Funktion)
- LEVEL (Aufrufstufen)
- RETURN (Anzahl der Rückgaben)
- VOCF (Sprachumfang)
- ap_cg_cycle (Anzahl der rekursiven Pfade)
Die folgenden HIS-Metriken werden von QA-MISRA ohne Schwellenwertprüfungen unterstützt:
- NOMV Diese Metrik zählt die Anzahl der Verstöße gegen das HIS Subset MISRA C 1.0.2. Die Anzahl der Regelverletzungen von unterstützten und aktivierten MISRA-Regeln wird von QA-MISRA angezeigt.
- NOMVPR Diese Metrik zählt die Anzahl der Verstöße gegen das HIS Subset MISRA C 1.0.2. pro Regel. Die Anzahl der Regelverletzungen pro unterstützte und aktivierte MISRA-Regel wird durch QA-MISRA.
Codequalität-Metriken
Zusätzlich zu den HIS-Metriken berechnet QA-MISRA die folgenden Codequalität-Metriken, unterschieden in 4 Stufen:
Statement
Die Metrik gilt für ein einzelnes Statement. Metriken auf Statement-Ebene sind nur für Schwellenwertprüfungen verfügbar und werden nicht direkt ausgewiesen. Auf dieser Ebene wird die folgende Metrik berechnet:
- Größe des Statements
Funktion
Die Metrik bezieht sich auf eine einzelne Funktion. Auf dieser Ebene werden die folgenden Metriken berechnet:
- Kommentardichte (HIS)
- Zyklomatische Komplexität
- Anzahl der Return-Statements
- Anzahl der Go-To-Statements
- Anzahl der Statements
- Anzahl der Parameter
- Anzahl der wartbaren Codezeilen
- Maximale Verschachtelung von Kontrollstrukturen
- Anzahl der nicht zyklischen Ausführungspfade (d.h. minimale Anzahl benötigter Testfälle)
- Anzahl der aufgerufenen Funktionen
- Anzahl der aufrufenden Funktionen
- Sprachumfang
- Anzahl der lokalen Variablen
Datei
Die Metrik gilt für eine einzelne Datei. Auf dieser Ebene werden die folgenden Metriken berechnet:
- Kommentardichte
- Anzahl der Quelltextzeilen
- Anzahl der physischen Quelltextzeilen
- Anzahl der Funktionsdefinitionen
Anwendung
Die Metrik berechnet einen Wert über alle Dateien des Analyseprojekts. Auf dieser Ebene werden die folgenden Metriken errechnet:
- Anzahl der rekursiven Pfade
- Anzahl der ursprünglichen Quelldateien
- Anzahl der Funktionsdefinitionen
- Anzahl der Quelltextzeilen
- Anzahl der physischen Quelltextzeilen
Code-Visualisierung
Visualisierung von C++-Klassen
Ein Klassendiagramm visualisiert eine ausgewählte Klasse mit den dazugehörigen Beziehungen. Mögliche Beziehungen sind Vererbung, Template-Instanziierung/Spezialisierung und Verwendung als Datentyp von Klassen-Membern. Für jede einzelne Klasse können detaillierte Informationen über die jeweiligen Daten-Member und Member-Funktionen eingesehen werden.