# Rückverfolgbarkeit (Anforderungsmanagement)

Rückverfolgbarkeit (auch Nachvollziehbarkeit oder engl. Requirements Traceability) bezeichnet in der System- und Softwareentwicklung die Zuordenbarkeit von Anforderungen zu beliebigen Artefakten über den gesamten Entwicklungsprozess und ist somit Teil des Anforderungsmanagements. Rückverfolgbarkeit ist speziell bei der Entwicklung sicherheitskritischer Systeme relevant, wo Normen und Richtlinien wie ISO 26262, Automotive SPICE, und EN 50128 die Erfassung von Requirements Traceability fordern, um damit nachweisen zu können, dass kritische Anforderungen in angemessener Form umgesetzt und validiert wurden.

## Konzepte und Terminologie

Requirements Traceability entsteht, wenn Artefakte eines Entwicklungsprozesses mittels Trace Link verbunden werden. Jeder Trace Link verbindet genau ein Quellartefakt mit einem Zielartefakt. Die Menge aller Trace Links und verknüpfter Artefakte eines Entwicklungsprojektes bilden die Kanten und Knoten eines Graphen, welcher mit Methoden der Graphentheorie analysiert und bewertet werden kann, um die Qualität des Entwicklungsprojektes zu bewerten.
Welche Artefakte in einem Projekt verlinkt werden, wird in einem Traceability Information Model (TIM) definiert. Ein TIM ist ein Metamodell, welches projektspezifisch die zu erfassenden Trace Link-Typen (z. B. Trace zwischen Quellcode und Testfall) und die dabei verknüpften Artefakt-Typen (z. B. Anforderung, Komponente, Testfall) definiert. Ein TIM erlaubt es auch bei einer großen Anzahl von Stakeholdern an einem Entwicklungsprojekt, gleichmäßige Traceability-Qualität zu erreichen und diese prüfbar zu machen.

## Nutzung von Traceability-Informationen

Die Nutzung von erfassten Traceability-Informationen unterstützt zahlreiche Entwicklungsaktivitäten:
* Auswirkungsanalyse (engl. Impact Analysis) von Änderungen – ändert sich eine Anforderung, geben deren Trace Links Auskunft darüber, welche anderen Artefakte mit dieser in Beziehung stehen. Diese können leicht geprüft und bei Bedarf modifiziert werden.
* Abdeckungsanalyse (engl. Coverage Analysis) – nicht verlinkte Anforderungen sind ein Indiz dafür, dass die spezifizierte Funktionalität nicht vollständig implementiert wurde. Insbesondere für den Zertifizierungsprozess von sicherheitskritischen Systemen ist nachzuweisen, dass alle (Sicherheits-)Anforderungen vollständig umgesetzt und getestet wurden.
* Projektstatusanalyse – die Vollständigkeit des mittels TIM spezifizierten Traceability-Graphen gibt einen Überblick über den Stand und Fortschritt eines Entwicklungsprojektes. Zum Beispiel Anforderungen ohne Trace Link oder mit verlinktem Quellcode, aber ohne Test befinden sich noch in der Entwicklung.
* Wiederverwendung von Produktkomponenten – Mittels Trace Links können Anforderungen inklusive aller realisierenden Artefakte in Einheiten zusammengefasst und für verschiedene Produkte genutzt werden.
* Persistierung von Zusammenhängen – Wissen über eine Entwicklung ist häufig nur in den Köpfen einzelner Personen verankert. Trace Links speichern dieses Wissen und visualisieren Zusammenhänge zwischen Artefakten. Selbst wenn Stakeholder ein Projekt verlassen, bleibt deren Wissen erhalten.
* Testoptimierung – durch die Verlinkung von Anforderungen, Quellcode, Testfällen und Testergebnissen kann nach Änderungen und bei Fehlern schnell identifiziert werden, welche Tests ausgeführt werden müssen und wo identifizierte Fehler lokalisiert sind.
Einen umfangreicheren Überblick über unterstützte Entwicklungsaktivitäten und deren Relevanz liefert.

## Traceability-Herausforderungen

Die konsequente Erfassung von Traceability-Informationen ist mit mehreren Schwierigkeiten verbunden:
* Hohe Erfassungskosten – Heutige Entwicklungsprojekte mit einer Vielzahl von Artefakten bedingen eine Vielzahl von Trace Links und einen enormen Aufwand zu deren Erfassung. Zum Beispiel in Entwicklungsprojekten der Automobilindustrie sind mehrere zehntausend Anforderungen und daraus resultierenden große Mengen an Design-Artefakten, Quellcode, und Testfällen üblich.
* Heterogene Entwicklungswerkzeuge – Verschiedene Entwicklungsartefakte wie Anforderungen, Softwaredesign, Quellcode oder Testprotokolle werden häufig mit individuellen Werkzeugen erstellt und verwaltet. Viele Werkzeuge sind nicht interoperabel und erlauben keine werkzeugübergreifende Traceability. Artefakt-Daten aus heterogenen Werkzeugen müssen daher aufwendig homogenisiert werden.
* Aufwendige Analysen – Artefakte sind häufig nicht direkt, sondern mittelbar über andere Artefakte verlinkt. Für Traceability-Analysen müssen somit vor allem Pfade (engl. Trace Path) und Teilbäume im Trace-Graphen betrachtet werden. Eine Auswertung erfordert daher potentiell aufwendige Algorithmen basierend auf Tiefen- oder Breitensuche.
Aufgrund dieser Herausforderungen sollte der gewünschte Grad von Rückverfolgbarkeit bewusst geplant werden und mittels geeigneter Traceability Software Lösungen unterstützt werden.

## Traceability in der Praxis

Umfangreiche Studien dokumentieren die Wirksamkeit, aber auch die Schwierigkeiten der Erfassung von Traceability-Informationen:
* Rückverfolgbarkeit beschleunigt und verbessert Entwicklungstätigkeiten – Eine Studie mit 71 Probanden, welche Quellcode-Änderungen mit und ohne Traceability-Unterstützung durchführten, zeigt deutliche Vorteile der Traceability. Entwickler erledigten Aufgaben mit Traceability-Unterstützung 24 % schneller und 50 % korrekter.
* Vollständigere Rückverfolgbarkeit hilft Programmierfehler vermeiden – Bei der Analyse von Entwicklungsdaten aus 24 mittelgroßen und großen Open-Source-Projekten wurde ein statistisch signifikanter Zusammenhang zwischen der Vollständigkeit der erfassten Traceability-Informationen und der Fehlerrate des entwickelten Quellcodes nachgewiesen. Komponenten mit vollständigerer Traceability wiesen eine geringere Fehlerzahl auf.
* Das Erreichen einer konformen Rückverfolgbarkeit ist schwierig – Eine Analyse der Einreichungen zur Vor-Markt-Prüfung von Software in medizinischen Geräten an die US Food and Drug Administration (FDA) aus dem Jahr 2013 identifizierte im Bereich Traceability signifikante Lücken zwischen Einreichung und Behördenvorgabe. Das aufwendige Erreichen einer normkonformen Rückverfolgbarkeit wird als „Big Freeze“ bezeichnet. Ein Big Freeze vermeidet häufig eine Weiterentwicklung, weil eine erneute Zertifizierung mit enormem Aufwand verbunden ist.

## Visualisierung von Traceability Informationen

Ein Ziel von Traceability besteht darin, die Zusammenhänge zwischen einzelnen Artefakten darzustellen. Da die Anzahl und Komplexität der Links steigt, werden Techniken zur Visualisierung der Trace Links benötigt. Dabei sollten relevante Informationen zu den Artefakten (z. B. um welchen Typ handelt es sich, Metadaten zum Lebenszyklus und Attribute) und deren Trace Links (Linktyp, d. h. welche Artefakte sind miteinander verlinkt, Metadaten zum Lebenszyklus oder die Linkstärke) ebenfalls abbildbar sein.
Gängige Visualisierungen sind Traceability Matrizen, Graphen, Listen und Hyperlinks.
* Traceability Matrix – Eine Traceability Matrix ist eine tabellarische Darstellung, bei der die Artefakte eines Typs (z. B. Anforderungen) in Spalten und die Artefakte eines anderen Typs in Zeilen (z. B. Quelltext) abgebildet sind. Zellen visualisieren die Verlinkung (Wert) oder Nicht-Verlinkung (leere Zelle) von zwei Artefakten. Matrizen können leicht einen Überblick über alle Trace Links vermitteln und eignen sich damit vor allem für Management-Aufgaben. Aber bei hohen Artefakt-Zahlen werden auch Matrizen unübersichtlich.
* Traceability Graph – Ein Traceability Graph visualisiert Artefakte als Knoten und Trace Links als Kanten. Graphen eignen sich vor allem für Entwicklungsaufgaben und ermöglichen explorativ einen Überblick über Verlinkungen zu erhalten. Graphen zeichnen sich durch eine hohe Verständlichkeit der abgebildeten Informationen aus. Durch Navigation durch die Graphen kann leicht identifiziert werden, an welchen Stellen Links und Artefakte fehlen.
* Listen – Listen repräsentieren jeden Trace Link als ein Eintrag bestehend aus Quell-Artefakt, Ziel-Artefakt und zugehörigen Attributen. Listen eignen sich vor allem, wenn Aktionen auf mehreren Artefakten gleichzeitig ausgeführt werden sollen und erleichtern Filterungen und Sortierungen. Listen werden jedoch im Vergleich zu den anderen beiden Visualisierungen als weniger geeignet empfunden, um Projektmanagement, Entwicklungs- oder Testaufgaben durchzuführen.
* Hyperlinks – Hyperlinks zwischen Artefakten ermöglichen das einfache und schnelle navigieren zwischen verlinkten Artefakten. Hyper Links erlauben es zwischen Artefakten in ihrer natürlichen Umgebung zu navigieren und dort gleichzeitig Kontextinformationen einzusehen. Hyperlinks haben den Nachteil, dass es schwer ist einen Überblick über alle Verlinkungen eines Projekts zu erlangen.
Visualisierungen lassen sich kombinieren, um den jeweiligen Nachteilen entgegenzuwirken.

## Technische Realisierung
### Manuell

Traceability wird manuell erreicht, indem Trace Links manuell oder werkzeuggestützt in einer Datenstruktur erfasst werden, z. B. als Spreadsheet in Microsoft Excel. Obwohl weit verbreitet, ist dieses Vorgehen aufwendig, fehleranfällig und führt zu Aussagen in schlechter Qualität.

### Werkzeuggestützt

Werkzeuggestützte Traceability setzt voraus, dass Entwicklungsinformationen die über verschiedenen Werkzeuge verteilt sind, homogenisiert und zusammengefasst werden können. Dazu gibt es folgenden Ansätze:
* Homogenisierung der Werkzeuglandschaft mittels ALM Werkzeug – ALM Werkzeugketten decken homogen den gesamten Software- und Systementwicklungsprozess ab und verwalten alle Artefakte in einer Datenbasis. Vorteil dieses Ansatzes ist, dass sich aufgrund der Homogenisierung die Verlinkung von Artefakten leicht verwalten und auswerten lässt. Nachteil hierbei ist, dass eine ALM-Werkzeugkette ganzheitlich eingeführt werden muss und dass sich einzelne Werkzeuge in dieser Kette nur schwer austauschen lassen. Hier droht ein „Big Freeze“ (s. o.) für die Werkzeugkette.
* Homogenisierung der Daten als Quasi-Requirements – Requirements-Management-Werkzeuge bieten umfassende Traceability Funktionalitäten zwischen Anforderungen. Um auch andere Artefakte des Entwicklungsprozesses zu verlinken, bieten Werkzeuge wie IBM Rational DOORS die Möglichkeit externe Artefakte als „Quasi-Anforderung“ zu importierten (z. B. Matlab Modells als sog. Surrogate). Dieses Verfahren wird von vielen am Markt etablierten Werkzeugen unterstützt. Nachteil sind die verschiedenen Adapter und Konverter, welche pro Artefakttyp benötigt werden und welche in Version und Datenformat konsistent sein müssen. Im Gegensatz zu einer ALM-Werkzeugkette muss man die Konsistenz der Adapter und Konvertierer individuell sicherstellen.
* Homogenisierung der Daten mittels dediziertem Traceability-Werkzeug – Der Ansatz dedizierter Traceability-Werkzeuge ist es, relevante Informationen aus den Artefakten eines Entwicklungsprozesses zu extrahieren und in einem einheitlichen Traceability-Modell zusammenzuführen. Die Extraktion aus den Werkzeugen erfolgt dabei über Adapter, welche für beliebige, auch proprietäre, Werkzeuge erstellt werden können. Dedizierte Traceability-Werkzeuge vereinen die Vorteile der beiden vorgenannten Ansätze: die Konsistenz der Adapter und Konverter wird durch den Anbieter des Traceability-Werkzeugs sichergestellt, während die Flexibilität der Werkzeugkette durch anpassbare Schnittstellen im Werkzeug selbst gewährleistet wird. Aufgrund der Flexibilität dieser Werkzeuge müssen bei der Definition des Traceability Information Models nicht nur die Artefakt-Typen und deren Verlinkung definiert werden, sondern es muss auch die technische Anbindung an das entsprechende Werkzeug konfiguriert werden.

### Dedizierte Traceability Werkzeuge
#### Capra

Capra ist ein dediziertes Traceability Management Werkzeug, das die Erzeugung, Verwaltung, Visualisierung und Analyse von Traceability Links zwischen Modellen in verschiedenen DSMLs, Programmiersprachen und anderen Artefakten, wie beispielsweise Tasks und Tests innerhalb von Eclipse ermöglicht. Capra ist aus dem EUREKA/ITEA Forschungsprojekt AMALTHEA4public hervorgegangen. Das Tool steht als Open Source unter EPL zur Verfügung.

#### Reqtify

Reqtify ist eine leicht benutzbare, interaktive Anwendung, um End-to-End Traceability umzusetzen und/oder zu visualisieren. Es unterstützt u. a. Coverage- und Impact-Analyse. Reqtify verfügt über mehr als 100 Schnittstellen zu verschiedensten kommerziellen Werkzeugen oder Standardformate. Reqtify ist ein kommerzielles Lösung der Firma Dassault Systemes.

#### YAKINDU Traceability

YAKINDU Traceability ermöglicht unkompliziertes und anpassbares Traceability-Management – zum Beispiel, um Standards wie die ISO 26262 zu erfüllen. YAKINDU Traceability ist ein kommerzielles Produkt der Firma itemis und hat wie Capra seinen Ursprung im EUREKA Forschungsprojekt AMALTHEA.

### Werkzeugauswahl

Die Entscheidung für eine Traceability Lösung ist nicht trivial, da sich die vermeintlich einfachen und kostengünstigen Lösungen im Verlauf der Entwicklung häufig als unzulänglich und nicht wartbar erweisen. Daher sollte die Entscheidung für ein Werkzeug das Ergebnis einer systematischen Analyse sein.