Zum Hauptinhalt springen

Traceability für itemis CREATE sicherstellen

Andreas Mülder Andreas Mülder 4 Min. Lesezeit
Traceability für itemis CREATE sicherstellen

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:

Screenshot zeigt Traces von verschiedenen Zuständen und Transitionen zu Anforderungen

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:

Screenshot eines Statechart-Modells, das wie ein Durcheinander aussieht

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:

Screenshot zeigt, wie Traceability innerhalb von itemis CREATE aussieht

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.

Traceability leicht gemacht – Screenshot zeigt, wie man mit einem einzigen Mausklick zu den Artefakten navigiert

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.

Screenshot der itemis-ANALYZE-Verdachtsvalidierungsmeldung, die den Benutzer über wichtige Änderungen informiert

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).

Eine Auswahl verfügbarer Artefakte für itemis ANALYZE, zum Beispiel IBM, Office ReqIF, JIRA, HP Quality Center, Matlab Simulink, trac, PTC Integrity, Jazz, Eclipse und viele mehr


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

Andreas Mülder

Principal Software Engineer

Andreas Mülder ist Principal Software Engineer bei itemis und als technischer Projektleiter für itemis CREATE verantwortlich. Seit 2007 entwickelt er Werkzeuge für Plattformen wie Eclipse, Visual Studio Code, Cloud und Web – mit Schwerpunkt auf Language Engineering, domänenspezifischen Sprachen, Simulatoren und Codegeneratoren sowie der Integration generativer KI in produktreife Tools. Sein Wissen gibt er in Blog-Beiträgen zu Language Engineering und KI-gestützter Werkzeugentwicklung weiter.

Weitere Artikel zu diesem Thema

Formale Methoden zur Fehlererkennung: Was geht, was nicht
Blog Model driven software development

Formale Methoden zur Fehlererkennung: Was geht, was nicht

Eine unerreichbare Transition, ein Guard, der nie erfüllbar ist: Solche Fehler stecken im Modell, lange bevor ein Test sie zeigt. Ein Ergebnisbericht aus zwei Masterarbeiten über formale Fehlererkennung auf Zustandsautomaten mit Symbolic Execution und SMT-Solver.

Zum Blog
Andreas Mülder Andreas Mülder 9 Min. Lesezeit
SCXML auf das nächste Level bringen
Blog Model driven software development

SCXML auf das nächste Level bringen

Wie itemis CREATE Higher-Level-Modellierung, Simulation und Unit-Tests auf dem SCXML-Standard aufbaut.

Zum Blog
Andreas Mülder Andreas Mülder 5 Min. Lesezeit