itemis CREATE wird in verschiedenen Software- und Systems-Engineering-Projekten unterschiedlicher Größe eingesetzt – von Ein-Personen-Arduino-Hobbyprojekten bis hin zu großen kommerziellen Softwareprojekten im medizinischen oder automobilen Bereich.
Die meisten dieser unterschiedlichen Projekte haben eines gemeinsam – es sind mehrere Rollen beteiligt. Im Laufe der Zeit erzeugt jede Rolle ihre eigenen Artefakte. Requirements-Engineers erstellen beispielsweise Anforderungen und User Stories, Softwareentwickler erstellen Statechart-Modelle und generieren daraus Quellcode, und Qualitätssicherungsexperten definieren und führen Testpläne aus.
Offensichtlich sind all diese Artefakte miteinander verbunden und beeinflussen sich gegenseitig. Daher ist es notwendig, die Beziehungen zwischen diesen Artefakten sichtbar zu machen und, noch wichtiger, diese Verknüpfungen über die Zeit hinweg zu pflegen. Der resultierende Graph kann dann genutzt werden, um einen Überblick über den Projektstand zu erhalten. Dies wird allgemein als „Traceability" bezeichnet.
Warum du wirklich Werkzeugunterstützung für Traceability brauchst
Was wir bei unseren Kunden häufig sehen, ist, dass sie die Notizfunktion nutzen, um von verschiedenen Zuständen oder Transitionen auf ihre Anforderungen zu „verweisen", wie in diesem Screenshot gezeigt:

Auch wenn das ein pragmatischer Ansatz zu sein scheint, um Anforderungen und Statecharts synchron zu halten, hat er einen entscheidenden Nachteil: Er skaliert nicht.
Stell dir vor, dein Projekt wächst. Der Kunde definiert Anforderungen auf detaillierterer Ebene, Testfälle müssen verknüpft werden, um nachzuweisen, dass jeder Aspekt des Statecharts durch einen Test abgedeckt ist. Manchmal fordern Kunden sogar, dass Traces auf Code-Ebene existieren, damit sie nachvollziehen können, welches Statechart-Element zu welcher Codezeile führt. Dein sauberes, gut definiertes und verständliches Statechart wird früher oder später chaotisch aussehen:

Neben der ganzen Ablenkung im Editor gibt es einige wesentliche Nachteile dabei:
Die relevanten Informationen sind nicht vorhanden. Als Statechart-Entwickler musst du nicht wissen, dass die ID des Use Cases ‘UC-1909’ ist, sondern du möchtest wissen, worum es bei ‘UC-1909’ geht. Höchstwahrscheinlich ist der Use Case in einem anderen Werkzeug geschrieben. Das bedeutet, wenn du Word oder Excel verwendest, musst du die Use-Case-ID kopieren, zu Excel wechseln und erneut nach der ID suchen. Das ist noch der einfache Teil – probier das mal mit IBM Doors oder PTC Integrity.
Die Link-Integrität wird nicht aufrechterhalten. Gerade in der modernen Softwareentwicklung ändern sich Anforderungen häufig, während die Implementierung bereits läuft. Das Schlimmste, was passieren kann, ist, dass du gar nicht bemerkt hast, dass sich die Anforderung geändert hat. Das Ergebnis kann ein funktionierendes, gut getestetes Produkt sein, das jedoch die Anforderungen nicht erfüllt. Das gilt natürlich auch für alle anderen Arten von Artefakten.
Der Trace-Link ist nicht navigierbar. Manchmal reichen die Kontextinformationen nicht aus und man möchte das Artefakt in seinem nativen Werkzeug öffnen, beispielsweise für Bearbeitungszwecke. Um einem Trace zu folgen, muss man die Datei, Datenbank oder das Werkzeug finden, das die Information enthält, und dann die Information selbst finden.
Kein Überblick über den Projektstand. Manager lieben Berichte. Hin und wieder kommen sie in dein Büro und fragen nach einem Projektstatus-Bericht – den sie für die Präsentation morgen brauchen. Ohne ein ordentliches Traceability-Werkzeug müssen alle Verknüpfungen zwischen Artefakten manuell ausgewertet werden, was eine fehleranfällige und zeitaufwändige Aufgabe ist. Solange ein solcher Bericht nur intern genutzt wird, mag das lästig sein – bei einem Kunden-Audit kann es jedoch schnell über „lästig" hinausgehen und peinlich sowie kostspielig werden.
Lass itemis ANALYZE helfen
Wie du siehst, gibt es gute Gründe für eine dedizierte Traceability-Lösung, die sich einfach in die bestehende Toolchain integrieren und an Prozesse und Artefakte anpassen lässt.
Eines dieser Werkzeuge ist itemis ANALYZE. Es integriert sich nahtlos mit einer Vielzahl verschiedener Werkzeuge. Der Screenshot zeigt, wie das obige Beispiel mit itemis ANALYZE aussehen würde:

Jeder Zustand, der eine Verbindung zu einer Anforderung, einem Testfall oder Quellcode hat, ist in der oberen linken Ecke mit dem itemis-ANALYZE-Icon versehen. Ein Tooltip zeigt, wie viele Traces mit diesem Zustand verbunden sind. Wenn du auf den Decorator klickst, öffnet sich ein Popup-Menü mit einer Liste aller verknüpften Artefakte. Alle relevanten Kontextinformationen werden im Hover neben der Artefaktliste angezeigt, und du kannst mit einem einzigen Mausklick einfach zum Artefakt navigieren. Dies ist im folgenden Screenshot zu sehen.

Die Link-Integrität wird über Werkzeuggrenzen hinweg aufrechterhalten, und der Benutzer wird über wichtige Änderungen genau dann und dort informiert, wo er sie benötigt.

Jetzt, wo alle Trace-Informationen verfügbar sind, möchtest du sie sicher analysieren – zum Beispiel um die Auswirkungen einer bestimmten Anforderungsänderung zu ermitteln, eine Coverage-Analyse durchzuführen oder einen einfachen Projektstatusbericht für das Management zu erstellen. Zu diesem Zweck bietet itemis ANALYZE eine Abfragesprache, mit der du genau die Metriken erstellen kannst, die du benötigst, während die hochgradig anpassbare Reporting-Engine die Ergebnisse in verschiedenen Formaten exportieren kann.
Das ist aber nur ein Beispiel dafür, wie Werkzeuge mit itemis ANALYZE integriert werden. Es basiert auf Adaptern, die mit einer Vielzahl von Drittanbieter-Werkzeugen kommunizieren (z.B. IBM Doors, PTC Integrity, Matlab Simulink, Enterprise Architect, MS Excel, MS Word, Eclipse und viele mehr).

Requirements Traceability bei itemis — Nahtlose Traceability über Werkzeuge und Teams hinweg: Requirements Traceability →