Traceability ist die Verfolgbarkeit und damit die Nachvollziehbarkeit von Projektinformationen sowie von Entwicklungsschritten. Gefordert wird sie vor allem im sicherheitskritischen Umfeld, neben Automotive etwa auch bei Medizin- und Bahntechnik-Applikationen. Dazu müssen bestimmte Artefakte im Entwicklungsprozess miteinander verknüpft werden. Zu diesen Elementen gehören einzelne Anforderungen über verschiedene Detaillierungsebenen, Designelemente oder Testfälle, aber auch die tatsächlich entwickelten Produkte. Wenn zum Beispiel das Muster eines Steuergerätes aus der Produktion kommt, dann muss bekannt sein, welche Teilprodukte in welcher Version dort verbaut wurden und welche Entwicklungsdokumente damit verknüpft sind. Für die Sicherstellung der Qualität ist es beispielweise zwingend notwendig zu wissen, welche Version einer Software zu welchen Testfällen beziehungsweise Spezifikationen gehört.
Nutzen von Traceability
Traceability bringt einen großen Nutzen, wenn sie richtig umgesetzt wird: Der Hauptnutzen der Impact-Analysis ergibt sich, wenn Änderungswünsche aufkommen. Die Traceability ermöglicht eine Auswirkungsanalyse, weil sie die Frage beantwortet, welche Elemente bei der Umsetzung der Änderung zu bearbeiten sind? Dadurch ermöglicht sie auch eine systematische Kosten-Nutzen-Analyse.
Außerdem erhöht Traceability die Qualität, weil sie es ermöglicht, die Systementwicklung nachzuvollziehen, insbesondere auch die Änderungen. Auch die Verfolgung des Projektfortschritts ist damit möglich, denn die Traceability erleichtert zwischen Anforderungen und Architektur den Nachweis, dass alle Anforderungen im System umgesetzt wurden. Mit der Traceability zwischen Anforderungen und Testfällen lässt sich die Testabdeckung nachweisen.
Traceability dient auch zur Sicherstellung, dass das richtige System gebaut wird. Sie ermöglicht eine Überprüfung, ob sich alle Features/Entwicklungsartefakte auf Anforderungen zurückführen lassen. Ist dies bei bestimmten Elementen nicht gegeben, so wurden möglicherweise unnötige Eigenschaften im System identifiziert. Zudem unterstützt Traceability das funktionale Safety-Assessment, bezüglich des Nachweises, dass ein System funktional sicher ist.
Automotive Spice und Traceability
Automotive Spice fordert Traceability bezüglich der System- und Software-Entwicklung allgemein; die ISO 26262 verlangt Traceability für die funktionale Sicherheit in der System-, Software- und Hardware-Entwicklung. Automotive Spice besteht sogar auf bilateraler Traceability (Bild 1), so dass sie zum Beispiel die Möglichkeit bietet, einerseits nachzuverfolgen, welche Software-Anforderungen durch einen Software-Testfall getestet werden, und andererseits nachzuvollziehen, welche Software-Testfälle zur Verifikation einer Software-Anforderung beitragen. Bilaterale Traceability bedeutet somit bei zwei miteinander verknüpften Elementen die Verfolgbarkeit in beide Richtungen.
Die ISO 26262 fordert Traceability hauptsächlich bezüglich der Safety-Anforderungen und deren Umsetzung. Dies beginnt bei den Gefährdungen aus der Hazard-Analyse und den diesbezüglich formulierten Safety-Goals, geht über die Verfeinerung in funktionale Safety-Anforderungen, technische Safety-Anforderungen, Hardware-Safety-Anforderungen und Software-Safety-Anforderungen bis zu der Zuordnung zu Hardware- und Software-Komponenten (Bild 2). Da üblicherweise der OEM die Gefährdungen und Safety-Goals definiert und sie an den Zulieferer weitergibt, hat die Traceability für den Zulieferer besondere Bedeutung: Letztlich muss er die Traceability der Safety-Anforderungen sicherstellen.
Des Weiteren fordert die ISO 26262 Traceabilitybezüblich safetyrelevanter Hardware-Elemente im Rahmen der Produktion und der Wartung (etwa durch entsprechende Kennzeichnungen) und bzgl. des Konfigurationsmanagements von Arbeitsprodukten, um die Entwicklung (Historie) dieser Arbeitsprodukte nachvollziehen zu können.
Nachteil von Traceability
Nachteil der Traceability ist der erhöhte Aufwand für die Erstellung und Verfolgung der Traces. Demgegenüber steht aber der reduzierte Aufwand bei der Auswirkungsanalyse und der Wartung sowie der Projektkontrolle. Gleichzeitig ist der Aufwand für die Traceability massiv von der Umsetzung abhängig. Als Minimalstrategie empfiehlt sich, nur die geforderten Traces umzusetzen.
Traceability – wie man es nicht tun sollte
Leider erfolgt die Umsetzung der Traceability heutzutage immer noch so, dass der Nutzen gegenüber dem Aufwand in den Hintergrund tritt: So wird die Traceability manuell in Form von unhandlichen Excel-Tabellen erstellt. Bei mehreren Tausend Anforderungen kann man weder den Überblick bewahren noch die Traces aktuell halten – die Gelegenheit für jeden Auditor oder Assessor, einen Finger in die Wunde zu legen. Außerdem werden mehr Traces als notwendig oder nützlich definiert. Dies führt zu einem erhöhten und unnötigen Aufwand. Zudem ist die Qualität der Traces schlecht, weil die Traces veraltet oder falsch sind. Dies hängt oft damit zusammen, dass der benötigte Aufwand für die Traces nicht geleistet werden kann oder Traces nur wenig diszipliniert umgesetzt werden. In einer heterogenen gewachsenen Tool-Landschaft, in der die einzelnen Tools weder richtig zusammenpassen noch gut miteinander integriert werden können, lässt sich die Traceability nur mit einem erhöhten Aufwand umsetzen.
ALM-basierte Traceability
Application Lifecycle Management (ALM) ist ein Ansatz zur System- und Software-Entwicklung, der den gesamten Lebenszyklus eines Produktes von der ersten Produktidee bis zur Abkündigung einbezieht. Ganzheitliches ALM betrachtet alle Aktivitäten der Produktentwicklung und verzahnt diese eng miteinander. Im Vordergrund stehen hier die Aktivitäten und Arbeitsprodukte bei der Produktentwicklung sowie ihre Verknüpfungen untereinander.
Eckdaten
Zu den Anforderungen von Normen und Reifegradmodellen gehört auch die Forderung nach Traceability. Im Automotive-Umfeld sind insbesondere die ISO 26262 und Automotive Spice relevant. Diese Standards fordern Traceability aber nur, weil sie sinnvoll ist und einen Nutzen bringt: Durch Traceability erhöht sich die Qualität der Entwicklung und damit die Qualität des entwickelten Systems. Insbesondere für Automobil-Zulieferer hat die Traceability eine große Bedeutung: Sie unterstützt wesentlich dabei, die Anforderungen und Safety Goals des OEM zu erfüllen. Der Fokus bei der Entscheidung für das Tooling muss ganz klar weg von der isolierten Betrachtung einzelner Tools und hin zu einer ganzheitlichen Betrachtung der Tool-Kette.
Traceability ist dabei integraler Bestandteil von ALM: Statt mithilfe komplexer fehleranfälliger Excel-Tabellen nachträglich den Traceability-Nachweis zu führen, erstellen die Beteiligten die Traces begleitend zur Produktentwicklung. Da jederzeit aktuelle Traceability-Information verfügbar und navigierbar ist, ändert sich die Arbeitsweise im Unternehmen: Beim Bearbeiten einer Anforderung ist unmittelbar ersichtlich, wie diese getestet und in welchen Komponenten sie umgesetzt wird. Auch wenn eine Anforderung geändert wurde, aber die davon abhängigen Testfälle noch nicht angepasst wurden, wird dies unmittelbar erkennbar. Die Zusammenhänge werden sichtbar. So lässt sich sicher stellen, dass die zahlreichen Artefakte, die bei der Entwicklung komplexer Produkte entstehen, auch in sich konsistent sind; folglich steigt die Qualität der Produkte.
ALM-Tools
Technisch erfordert ALM eine durchgängig integrierte Tool-Kette, mit der Beziehungen zwischen Arbeitsprodukten einfach hergestellt und verwaltet werden können. Gewachsene Tool-Landschaften bieten diese Möglichkeiten meist nicht, weil bei ihnen für die verschiedenen Aktivitäten unterschiedliche Werkzeuge zum Einsatz kommen, die nicht miteinander integriert sind – zum Beispiel DOORS oder Microsoft Word für Anforderungen sowie Microsoft Excel für Testfälle und die dazugehörigen Testergebnisse. Hier müssen die Beteiligten einen manuellen Traceability-Nachweis führen – mit den bereits genannten Nachteilen.
Der Fokus bei der Entscheidung für das Tooling muss daher weg von der isolierten Betrachtung einzelner Tools, hin zu einer ganzheitlichen Betrachtung der Tool-Kette. Statt sich im Nachhinein Gedanken zu machen, wie sich verschiedene Tools irgendwie miteinander verknüpfen lassen, wird die lückenlose Verbindung der verschiedenen Aktivitäten zur zentralen Anforderung an eine zukunftstaugliche Tool-Landschaft.
Für die technische Umsetzung von ALM gibt es ganz unterschiedliche Ansätze:
- Werkzeuge mit einem zentralen Repository decken einen Großteil der Entwicklungsaktivitäten in einem Werkzeug ab. Beziehungen zwischen Arbeitsprodukten lassen sich direkt innerhalb des Werkzeugs herstellen und analysieren. Beispiele für diese Kategorie sind Polarion ALM oder PTC Integrity.
- Auf Basis der OSLC-Spezifikationen (Open Services for Lifecycle Cooperation) besteht die Möglichkeit, unterschiedliche Werkzeuge zu integrieren und werkzeugübergreifende Links zu erstellen. So unterstützen beispielsweise aktuelle IBM-Rational-Tools auch OSLC.
- Integrationsplattformen bieten Adapter für unterschiedliche Werkzeuge und ermöglichen die Synchronisation von Daten zwischen diesen Werkzeugen. Tasktop Sync und Agosense Symphony etwa sind solche Integrationsplattformen.
Jeder dieser Ansätze hat seine eigenen Stärken und Schwächen, die im Kontext des jeweiligen Unternehmens bewertet und gewichtet werden müssen, so dass es keine pauschale Empfehlung geben kann. Typische, bei der Tool-Auswahl wichtige Einflussfaktoren sind Integrationsmöglichkeiten, die Konsistenz mit etablierten Prozesse und Methoden, die bereits vorhandenen Werkzeuge, die eventuell weiter verwendet werden sollen, sowie Skalierbarkeitsanforderungen.
Bei der Auswahl und Einführung einer durchgängigen ALM–Tool-Kette gibt es einige zentrale Erfolgsfaktoren. Um Abwehrhaltungen zu vermeiden und den neuen Tools die erforderliche Akzeptanz zu verschaffen, gilt es vor allem, die zukünftigen Anwender unbedingt einzubeziehen. Zentrale Szenarien müssen frühzeitig umgesetzt werden, damit Erfahrungen in Pilotprojekten gesammelt werden können; nur so ist gewährleistet, dass die Entwicklung nicht an den tatsächlichen Bedürfnissen vorbeigeht.
Vorteile von ALM
Richtig umgesetzt bietet ALM viele Vorteile, vor allem Durchblick in den Entwicklungsprojekten, effiziente Teamarbeit, durchgängige Traceability und reduzierter Aufwand. So hat jedes Team-Mitglied jederzeit aktuelle Informationen über den Status von Arbeitspaketen und Produkten, wie etwa Anforderungen oder Tests. Jeder im Team weiß, was zu tun ist, denn alle haben eine einheitliche und aktuelle Sicht auf ihre Aufgaben sowie die damit verknüpften Arbeitsprodukte.
Die Beziehungen und Abhängigkeiten zwischen Arbeitsprodukten lassen sich jederzeit live im System nachvollziehen: In welchem Architekturbaustein wird diese Anforderung umgesetzt? Mit welchen Testfällen wird die Anforderung getestet? Welche Quellcode-Dateien wurden aufgrund eines Change Requests modifiziert? Auch ein Überblick über die Traceability, beispielsweise welche Anforderungen noch nicht mit Testfällen abgedeckt sind, lässt sich jederzeit und ohne Aufwand erzeugen. Zudem reduziert ALM-unterstützte Traceability den Aufwand für die Pflege der Traces. Zugleich steigt die Qualität der Traces und damit ihr Nutzen, wodurch weniger Entwicklungsaufwand erforderlich ist (Bild 3).
Die Vorteile überwiegen die Nachteile
Das Thema Traceability ist bei Qualitätsverantwortlichen und Projektleitern gefürchtet, denn sie wird mit hohem Aufwand assoziiert und als notwendiges Übel gesehen: Immerhin kann es den Auftrag kosten, wenn man Kundenvorgaben oder Forderungen aus Normen wie Automotive Spice oder der ISO 26262 nicht erfüllt. Traceability kann und sollte jedoch anders betrachtet werden: Mit ihr behält man nicht nur den Überblick über eine komplexe Entwicklung, sondern liefert nachvollziehbar Produkte von hoher Qualität. Voraussetzung dafür ist, dass bei der Umsetzung von Traceability die Normenvorgaben nicht stur abgearbeitet werden. Stattdessen sollte ein Ansatz gewählt werden, der zur Arbeitsweise des Unternehmens passt, der hohen Nutzen und damit auch Akzeptanz in den Projekten bringt. An den normativen Anforderungen führt selbstverständlich kein Weg vorbei – doch auch hier gibt es Entscheidungsspielräume, um unnötige Komplexität zu vermeiden. Eine zentrale Rolle spielt schließlich die Tool-Unterstützung. Nur mit einer integrierten Werkzeugkette lässt sich Traceability mit vertretbarem Aufwand umsetzen, während sich gleichzeitig ihr Nutzen voll entfalten kann.
(av)