Nachvollziehbarkeit in der Entwicklung
Dem Thema Nachvollziehbarkeit oder "Traceability" wird viel Aufmerksamkeit geschenkt ... und doch sind die Lösungsansätze sehr unterschiedlich. Lassen Sie uns an einem konkreten Beispiel aus der Entwicklung von Software oder von mechatronischen Geräten zeigen, was wir darunter verstehen.
Worum geht es?
- Arbeitsergebnisse und Entscheidungen für Folgeschritte verfügbar machen
- Verweise zwischen Arbeitsergebnissen in beiden Richtungen aufbauen:
- Auf welchen Anforderungen und Entscheidungen beruht eine Lösung?
- Wo muss man nacharbeiten, wenn sich eine Anforderung ändert?
- Abhängigkeiten sicht- und testbar machen
- Voraussetzung für gezielte Verbesserung schaffen - gleichermaßen bei agilem oder klassischem Vorgehen
Indem Entwicklungsergebnisse jederzeit aktuell im Zugriff stehen, wird zugleich die Zusammenarbeit der Interessenvertreter gefördert:
- Anforderungen zwischen Auftraggeber und Auftragnehmer abstimmen und genehmigen - auch bei verteilten Standorten
- Beiträge und Entscheidungen dokumentieren
- Änderungshistorie nachvollziehen
- Arbeitsergebnisse direkt weiter verwenden
Weitere Gesichtspunkte und Ziele:
- Interaktiv zusammenarbeiten ohne Installation zusätzlicher Programme beim Anwender → Web-Technik einsetzen
- Standard-Datenformate und Standard-Software einsetzen → Einschränkungen und Abhängigkeiten reduzieren
- Keine Dateien mit vertraulichen Inhalten versenden → gezielten Zugriff erteilen
Software-Engineering Gesamtkonzept
- Auf dem Weg vom Lastenheft zum Systemdesign werden die verschiedenen Sichten 'Bedienabläufe', 'Systemaufbau' und 'Anforderungen' gemäß FMC-Methode in Zusammenhang gebracht. Dabei gelingt es Widerspruchsfreiheit, Vollständigkeit und Realisierbarkeit zu prüfen und zu verbessern.
- Beim Software-Design auf der nächsten Ebene werden die inneren Strukturen entworfen, also die Komponenten zugeschnitten, die Schnittstellen und Protokolle definiert, so dass klare Verantwortungen für die Realisierung (= Codierung) übertragen werden können.
- Für vorhandende Code-Module werden per Reverse-Engineering Komponenten-Modelle gewonnen und in das Software-Design integriert. Neue Code-Module werden entsprechend des Software-Designs erstellt.
- Ein automatischer Build-Prozess mit Ausführung von Regressionstests erzeugt hochqualitative Installationspakete der Software. Parallel wird Entwicklungsdokumentation und Release-Notes mit allen Erweiterungen und Korrekturen erzeugt.
- Aus der Beschreibung von Arbeitspaketen und aus dem Code selbst wird mittels Web-Links direkt auf relevante Diagramme und Anforderungen verwiesen; ein Duplizieren entfällt.
- Das Projektteam und andere Interessierte erhalten Zugang über ein inhaltliches und methodisches Glossar mit weiter führenden Verweisen auf die Projektergebnisse.
Infrastruktur
Um Nachvollziehbarkeit im Entwicklungsprozess zu erreichen, sind wichtige Arbeitsergebnisse früherer Entwicklungsschritte direkt zu referenzieren. Beispielsweise sollen Arbeitspakete auf aktuelle Geschäftsprozess-Modelle und Architektur-Diagramme verweisen, oder Testfälle auf verabschiedete Anforderungen.
Die meisten Ticket-Manager oder Web-Content-Management-Systeme bieten direkten Zugriff auf ihre Inhalte, bei vielen Modellierungswerkzeugen ist das jedoch nicht der Fall. Hier können die Arbeitsergebnisse regelmäßig in eine Auskunftsstelle ("Single Point of Truth") überführt und im Web publiziert werden.
Als "Single Point of Truth" eignet sich der von eXXcellent solutions entwickelte ReqIF Server - er basiert auf dem internationalen ReqIF Standard zum Austausch von Anforderungs- und Spezifikationsdaten.
Wichtige Nutzenargumente sind
- langzeit-stabiler Web-Link ("Permalink"),
- Versionierung, sowie
- feingranulare Zugriffskontrolle
für jedes einzelne Element einer Spezifikation, darunter jede Anforderung.