Startseite >> Wissen >> Techniken >> Impact Analysis

Impact Analysis

Ziel:

Verhinderung der Schädigung bestehender Systeme durch Überwachung von Veränderungen

Beschreibung:

Die Änderung von Softwaresystemen im Laufe ihrer Lebens- oder Entwicklungsdauer gehört zu den unausweichlichen Eigenschaften moderner Systeme. Oftmals führen solche Änderungen, sofern sie nicht gründlich überwacht werden, schnell zu einem Verfall des Gesamtsystems, da nicht alle Auswirkungen von Änderungen von vorneherein absehbar sind.
Mit Hilfe der Impact Analysis können Änderungen überwacht und unbewusste Schädigungen des bestehenden Systems vermieden werden. Impact Analysis deckt die potenziell betroffenen Bereiche auf und erlaubt auf dieser Basis, weiterhin die Kosten für eine Änderung zu kalkulieren.

Grundlegende Konzepte

Arten von Impact Analysis
Grundsätzlich lässt sich die Abhängigkeitsanalyse, die Beziehungen zwischen Programmbestandteilen auf Codebasis aufdeckt (z.B. Variablen und Funktionen) von der Verfolgbarkeitsanalyse abgrenzen, die die Beziehungen zwischen verschiedenen Softwareprodukten (Anforderungen, Designkomponenten, Implementierungsklassen, etc.) aufdeckt.

Strategien für die Impact Analysis
Strategien für die Impact Analysis können in automatisierbare und manuelle unterteilt werden.

Automatisierbare Strategien
Diese Strategien verwenden meist algorithmische Methoden, um die Propagierung von Änderungen und somit indirekte Auswirkungen aufzudecken. Hierzu sind strukturierte, vollständige und konsistente Spezifikationen nötig.

  • Verfolgbarkeits- und Abhängigkeitsanalyse
    Die Abhängigkeitsanalyse auf Quellcodeebene liefert das genaueste Bild von Änderungsauswirkungen. Der Nachteil dieses Vorgehens liegt allerdings darin, dass das Verfahren erst spät im Projekt angewendet werden kann, wenn bereits Quellcode besteht.
    Die Verfolgbarkeitsanalyse steht demgegenüber bereits von Anfang an zur Verfügung, sofern die Beziehungen zwischen unterschiedlichen Softwareprodukten gepflegt sind. Dies kann mit Hilfe eine Verfolgbarkeitsmatrix erfolgen, die durch Markierungen in den entsprechenden Zellen übersichtlich ausdrückt, wie verschiedene Softwareprodukte zueinander in Beziehung stehen. Eine semantische Anreichung um die Arten der Beziehungen hat sich als hilfreich erwiesen.
    Da Verfolgbarkeitsmatrizen jeweils nur direkte Beziehungen zum Ausdruck bringen, können mit Hilfe von Erreichbarkeitsmatrizen alle transitiv erreichbaren Abhängigkeiten ausgedrückt werden.
  • Schneidetechnik
    Mit Hilfe von Schneidetechniken kann der Bereich des Systems, auf den Änderungen Auswirkungen haben, vom Rest des Systems abgegrenzt werden, die von den Änderungen nicht betroffen sein werden. Dies erlaubt den Fokus der Änderungsanalyse klarer zu setzen.

Manuelle Strategien
Manuelle Strategien setzen keine strukturierten Spezifikationen voraus und laufen somit Gefahr, nicht immer alle Auswirkungen aufdecken zu können. In der Regel eignen sie sich daher nur für die Aufdeckung direkter Auswirkungen. Andererseits sind sie jedoch relativ leicht einzusetzen und erfordern keine komplexe Infrastruktur.
Konkret lässt sich manuelle Impact Analysis durch das Inspizieren von Designbeschreibungen oder das Interviewen von erfahrenen Entwicklern, die umfangreiche Kenntnisse über den Aufbau und die Zusammenhänge des Systems haben, erreichen. Bei der Verwendung von Designbeschreibungen muss das Dokument jedoch gewisse Qualitätskriterien gewährleisten (z.B. Vollständigkeit, Eindeutigkeit, Korrektheit, Begründungen, ..), damit die notwendigen Informationen entnommen werden können.

Vorgehen

Um kontrollierte Änderungen durchführen zu können, benötigen Software entwickelnde Unternehmen Änderungsmanagement, das grundsätzlich die folgenden fünf Teile umfassen sollte.

  • Planung von Änderungen
    Man muss sich bewusst machen, dass Änderungen auftreten können und es sind Vorbereitungen zu treffen, um auf Änderungswünsche eingehen zu können.
  • Ausgangssituation der Anforderung
    Der aktuelle Stand der Anforderungen wird jeweils als Schnappschuss festgehalten.
  • Einziger Kanal:
    Es ist ein klarer Weg festzulegen, wie Anforderungsänderungen geprüft, genehmigt und umgesetzt werden. Außerhalb dieses Kanals dürfen Änderungen nicht durchgeführt werden (ChangeControlBoard).
  • Änderungskontrollsystem:
    Mit Hilfe dieses Systems ist es den Entscheidern möglich, die Auswirkung von Anforderungsänderungen zu erkennen und zu bewerten.
  • Verwaltung der Hierarchie:
    Änderungen, die an den Anforderungen vollzogen wurden, müssen anschließend hierarchisch auf alle anderen betroffenen Softwareprodukte propagiert werden.

Eine mögliche konkrete Ausprägung eines Änderungsprozesses könnte wie folgt aussehen:

  • Problemanalyse und Änderungsspezifikation
  • Änderungsanalyse und Bestimmung der Kosten, bestehend aus
    • Überprüfung der Änderungsanforderung auf Gültigkeit
    • Aufdecken direkt betroffener Anforderungen
    • Aufdecken aller abhängigen und somit indirekt betroffenen Anforderungen
    • Anforderungsänderungen vorschlagen
    • Kosten der Änderungen kalkulieren
    • Akzeptabilität der Kosten bewerten
  • Änderungen durchführen

Die unterstrichenen Prozessschritte sind dabei Bestandteil einer Impact Analysis.