Change-Impact-Analyse
Ziel:
Ziel der Change-Impact-Analyse ist es, Auswirkungen von Anforderungsänderungen frühzeitig analysieren und bewerten zu können und durch kontrollierte Durchführung von Änderungen negative Auswirkungen auf das System oder Projekt zu verhindern.
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-Analyse können Änderungen überwacht und unbewusste Schädigungen des bestehenden Systems vermieden werden. Die Impact-Analyse deckt die potenziell betroffenen Bereiche auf und erlaubt auf dieser Basis weiterhin, die Kosten für eine Änderung zu kalkulieren.
Grundlegende Konzepte
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-Analyse
Strategien für die Impact-Analyse 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 dem gegenüber bereits von Anfang an zur Verfügung, sofern die Beziehungen zwischen unterschiedlichen Softwareprodukten gepflegt sind. Dies kann mit Hilfe einer Verfolgbarkeitsmatrix erfolgen, welche 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, der von den Änderungen nicht betroffen sein wird. 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-Analyse durch das Inspizieren von Designbeschreibungen oder das Interviewen von erfahrenen Entwicklern, welche 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, welches 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 Änderungsprozess 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-Analyse.
Diese Technik erfüllt folgende Praktiken:
Anforderungsauswirkung analysierenVerfolgbarkeit sicherstellen
Änderungsprozess definieren
