Messen und Prüfen von Anwendungen 

 20. Januar 2009

Application Value Assessment

Die Messung, Prüfung und Beurteilung der Quantität, Qualität und Komplexität von Anwendungssystemen bildet eine fundierte Basis für Entscheidungen zur IT-Strategie. Gerade bei Legacy-Systemen mit großem, gewachsenem Codeumfang und einer hohen Sprachenvielfalt können so Daten ermittelt und eine Vergleichbarkeit geschaffen werden, die für eine Bewertung verschiedener Weiterentwicklungsszenarien (Wartung, Migration, Sanierung, etc.) herangezogen werden können. Hierfür ist es jedoch nötig, aus der sehr großen Menge an möglichen Kennzahlen und Metriken die geeigneten auszuwählen.

Ziele eines Messprojekts

Typische Ziele, die mit einem Projekt zur Vermessung von Anwendungssystemen verfolgt werden, sind:

  • Die Ermittlung der Größe, Komplexität und Qualität des Codes eines Systems
  • Der Aufbau einer Metrikdatenbank zur laufenden Qualitätssicherung
  • Die Identifikation und Schätzung alternativer Weiterentwicklungsstrategien

Um das erste Ziel, die Vermessung des Systems, erfüllen zu können, ist es notwendig, den Sourcecode der Applikation so zu strukturieren und für die Messung aufzubreiten, dass eine sinnvolle Vergleichbarkeit der Messergebnisse möglich wird. Eine Einteilung kann z.B. nach Sprachen (Cobol, PL1, C++, etc.) oder auch nach speziellen fachlichen Bereichen erfolgen. In weiterer Folge können somit die einzelnen Bereiche in Bezug auf die Größe, Qualität und Komplexität mit einander verglichen und Auffälligkeiten detaillierter untersucht werden. Die Messung ist dabei nicht nur auf Programmcode beschränkt, es können auch Datenbanken und Benutzeroberflächen vermessen werden.

Der Aufbau einer Metrikdatenbank ermöglicht die laufende Vermessung des Systems über die Zeit. Somit kann bei Änderungen oder Erweiterungen des Systems beobachtet werden, ob sich z.B. die Qualität insgesamt verbessert oder verschlechtert hat. Idealerweise wird eine laufende Messung im Qualitätssicherungsprozess eingebettet.

Die Ergebnisse der Messung bieten eine einheitliche Basis, um verschiedene Weiterentwicklungsszenarien zu bewerten und deren Aufwand zu schätzen. Dies kann als Grundlage für die künftige IT-Strategie verwendet werden. Mögliche Szenarien sind:

  • Jährliche Wartung des Systems
  • Neuentwicklung des Systems
  • Migration
  • Sanierung
  • Kapselung

Auswahl der Metriken

Voraussetzung für jedes Messprojekt ist die Auswahl der geeigneten Metriken. Diese Auswahl ist auch der erste Schritt im Messprozess der ISO9126. Die Literatur gibt jedoch wenig Anhaltspunkte, welche Metriken auszuwählen sind. Softwaresysteme sind komplexe Konstrukte mit vielen verschiedenen Eigenschaften, die gemessen werden können. In seinem Buch „Software Complexity Metrics“ hat Horst Zuse allein mehr als 300 Metriken identifiziert. Jede Kennzahl, bzw. Metrik misst eine andere Eigenschaft, z.B. die McCabe-Metrik die interne Ablaufkomplexität, die Halstead-Metrik die Komplexität der Sprache oder die Function-Point-Metrik die Interaktionen zwischen einem System und seiner Umgebung. Letztlich ist es eine Frage der Zielsetzung des Messprojektes und der Art des Systems, welche Metriken am geeignetsten sind.

In den von einem der Autoren in den letzten 20 Jahren durchgeführten Messprojekten ist durch die Erfahrungen mit den verschiedensten Systemen eine Zusammenstellung von Größen-, Komplexitäts- und Qualitätsmetriken entstanden, die sich bei der Analyse und Bewertung von Anwendungssystemen schon vielfach bewährt haben. Darunter finden sich Komplexitätsmetriken wie z.B. Datenkomplexität, Steuerflusskomplexität und Sprachkomplexität aber auch Qualitätsmetriken wie z.B. für die Messung der Portabilität, Wartbarkeit, Konformität und Testbarkeit.

Der Messprozess

Der Messprozess zur Durchführung der Messung, Prüfung und Bewertung des Systems besteht typischerweise aus folgenden Schritten:

  1. Auswahl der Metriken
  2. Strukturierung des zu messenden Systems
  3. Konfiguration der Tools, Anpassung an lokale Gegebenheiten (z.B.: eigene Sprachkonstrukte)
  4. Durchführung der Vermessung
  5. Übernahme der Messwerte in eine Metrikdatenbank
  6. Auswertung der Messergebnisse
  7. Durchführung der Schätzungen

Ergebnisse

Neben den Metrikberichten zu Größe, Qualität und Komplexität des Systems und den Teilsystemen/Komponenten sowie den Aufwandsschätzungen zu verschiedenen Weiterentwicklungsstrategien lassen sich Auswertungen erstellen, um die Informationen für verschiedene Zielgruppen aufzubereiten. Dies erfolgt z.B. in Form von Scorecards, die die Qualitäten und Komplexitäten zueinander in Relation bringen, oder in Management-Dashboards, um einen aktuellen Überblick über das System zu erhalten.

Dashboard
Scorecard Complexity
Scorecard