Traceability von den Anforderungen bis zum Code in GitHub

by | 17.10.2022 | objectiF RM anwenden, objectiF RPM anwenden, Traceability

Je schneller sich Anforderungen ändern, desto wichtiger ist es, den roten Faden zurück zur Quelle, zu allen Abhängigkeiten, Verfeinerungen und vordefinierten Tests finden zu können. Unsere Tools helfen dabei, vollständige Requirements Traceability herzustellen – visuell, per Abfragen oder auch über die Historie der jeweiligen Anforderung. Doch woher weiß man in Softwareentwicklungsprojekten, welche Anforderung von wem wie realisiert wurde? Wie funktioniert Traceability bis zum Code?

Committed to Git & GitHub

Gerade agile Softwareentwicklungs- und DevOps Teams brauchen für Ihre Zusammenarbeit Versionskontrollsoftware (engl. Version Control Systems, kurz VCS). Eines der zurzeit beliebtesten VCS ist Git. Git ist darüber hinaus ein DVCS, das D steht für Distributed und bedeutet, dass man mit verteilten Teams Quellcode versionssicher verwalten kann. Mit dem Befehl „Commit“ werden in Git Snapshots gespeichert. Diese Snapshots speichern einen permanenten Stand inklusive einer ID in der Datenbank. Sie werden immer ins lokale Repository committed. Dadurch entsteht ein Puffer zwischen den lokalen Repositories der Entwickler und dem zentralen Repository. Commits sind quasi Meilensteine in der Zeitleiste der Entwicklung, zu denen man leicht zurückspringen kann. Die gleichzeitige Kollaboration an bestimmten Features wird durch Branching und Merging erleichtert. Entwickler zweigen einfach Branches ab, die den Master-Branch nicht beeinflussen und können ihren getesteten Code dann per Merge wieder mit diesem vereinen. So werden Versionskonflikte vermieden. Wenn ein Branch nicht zielführend ist, kann man ihn einfach wieder verwerfen ohne die gesamte Entwicklung zu beeinträchtigen. Im Prinzip liefert Git damit eine perfekte Staging-Umgebung. Git ist kostenlos und Open Source, was sicherlich auch Gründe für die weite Verbreitung sind.

Weil Git so beliebt ist, kam 2008 mit GitHub der kommerzielle Cloud-basierte Git Repository Hosting Service auf den Markt. 2018 wurde der Dienst mit dem Katzen-Oktopus Tierchen im Logo von Microsoft für stolze 7,5 Mrd. Dollar gekauft und wird seit 2021 vom Berliner Thomas Dohmke geleitet. Der Dienst hat nach eigenen Angaben[1] über 83 Mio. registrierte Nutzer aus über 4 Mio. Organisationen und hostet über 200 Mio. Repositories. Das sind überzeugende Zahlen für die Implementierung einer Schnittstelle zu GitHub in objectiF RPM und objectiF RM. Damit soll lückenlose Traceability ermöglicht werden von den Anforderungen bis zu Codeänderungen in Git auf GitHub.

Use Cases für die GitHub Integration in objectiF RPM und objectiF RM

Unsere Anwendungsfälle für die Anbindung von GitHub an objectiF RPM und objectiF RM sind folgende:

Die Entwickler entwickeln agil in Git auf GitHub und möchten bei der Umsetzung von Anforderungen möglichst wenig Dokumentationsaufwand haben. Alle Änderungen sollen per Klick zu den bearbeiteten Anforderungen angezeigt werden. Sie möchten alle Codeänderungen zu einer Anforderung nach Fertigstellung committen und diesen Commit dann an das zentrale GitHub Repository pushen.

Der Product Owner möchte sämtliche Änderungen des Entwicklerteams in Bezug auf die vorher definierten Anforderungen genauestens nachvollziehen. Am besten über die gesamte Laufzeit des Projektes und übersichtlich zusammengefasst in einer einzigen Sicht. Er oder sie möchte dabei sehen, wann, von wem und welche Änderungen an den einzelnen Anforderungen vorgenommen wurden.

Und so sieht die Realisierung aus:

Ab Version 7.6 von objectiF RPM und Version 8.6 von objectiF RM, die demnächst released werden, können Sie nach erfolgter Konfiguration der GitHub Schnittstelle per Rechtsklick auf eine Anforderung im Kontextmenü den Command Identifier in Zwischenablage kopieren auswählen.

Identifier der Anforderung von objectiF RPM an GitHub übertragen

Diesen Identifier fügen Sie in GitHub in den Titel des Files, das Sie committen möchten, ein:

GitHub Commit File

Und schon sind die Anforderung und der Code miteinander verbunden. Wenn mehrere Anforderungen durch den Code erfüllt werden, können Sie die IDs der weiteren Anforderungen ergänzen. Dazu müssten Sie hinter “IDs”: einfach weitere aufzählen im Format [„…“].

Umgekehrt können Sie sich in objectiF RPM und objectiF RM alle erfolgten Commits anzeigen lassen. Auf einen Blick sehen Sie, wo Code hinzugefügt, geändert oder entfernt wurde.

Übersicht über GitHub Commits in objectiF RPM

So erhalten Projektverantwortliche eine kompakte Übersicht über den Status Quo der Realisierung und die Entwickler können jeden Commit bequem mit den Anforderungen verknüpfen. Das sorgt für noch mehr Traceability von der Anforderungsdefinition bis zum Code.

 

Quelle:

[1] https://github.com/ (abgerufen am 14.10.2022)