Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Änderungsbasiertes Anforderungsmanagement

Autor: Antonio Jesus de Loureiro, agosense GmbH

Beitrag - Embedded Software Engineering Kongress 2015

 

Die Software- bzw. Systementwicklung ist heutzutage ohne einen methodischen Ansatz - nicht zuletzt aus Gründen der Produktsicherheit bzw. Produktqualität und der damit verbundenen Nachvollziehbarkeit der Aktivitäten und Ergebnisse - kaum noch vorstellbar. Application Lifecycle Management (ALM) Tools und Plattformen helfen dabei, verschiedene Praktiken oder Methoden zu unterstützen, indem Abhängigkeiten zwischen Entwicklungsartefakten bzw. -aktivitäten visuell dargestellt werden können. Aber reicht das aus?

Blickt man etwas genauer in Entwicklungsorganisationen, stellt man fest, dass Produkte selten auf der "grünen Wiese" entstehen. In vielen Fällen werden bestehende Produkte weiterentwickelt, verbessert oder dienen als Vorlage für weitere Produktvarianten. So gesehen ist also ein Großteil der Entwicklungsaktivitäten durch Veränderung an Bestehendem gekennzeichnet. Und Änderungen, beziehungsweise deren Management, beginnen nicht erst bei der Implementierung oder in der Produktionsphase, sondern wesentlich früher im Produktentstehungsprozess - zum Beispiel beim Anforderungsmanagement.

Effizientes Arbeiten erfordert dabei die Wiederverwendung und Änderung bereits bestehender Artefakte oder Dokumente und eine optimale Unterstützung für diese Methodiken durch die verwendeten ALM-Werkzeuge im Rahmen des Entwicklungsprozesses. Dieser Ansatz ist seit langer Zeit bekannt und im Bereich der Versions- bzw. Quellcodeverwaltung mit Begriffen wie Checkpoints, Baselines, Varianten, Versionen, Änderungslisten, usw. bereits etabliert.

Doch warum sollte es nicht möglich sein, diese Möglichkeiten für die Praxis des Anforderungsmanagement verfügbar zu machen? Denn die Herausforderungen und Fragen sind nahezu identisch. Wie können Baselines oder Varianten für die Planung von Anforderungen verwendet werden? Oder wie können geplante Änderungen an einer Spezifikation für eine neue Produktiteration explizit extrahiert und auf ein bestehendes Anforderungsdokument angewendet werden? Wie kann schnell und unkompliziert dargestellt werden, welche Aufgabe bzw. welcher Änderungsantrag einer konkreten Änderung an einer Spezifikation zugrunde liegt?

Seither war es mühsam und nur mit erheblichem manuellen Aufwand möglich, einen kontrollierten und vor allem tiefgreifenden Änderungsprozess in der Domäne des Anforderungsmanagements zu etablieren. In den meisten Fällen ist die Integration zwischen Anforderungs- und Änderungsmanagement beschränkt auf die einfache Verlinkung zwischen Anforderungen und Änderungsanträgen. Diese Verknüpfungen werden in der Regel manuell erstellt und haben eigentlich keinen verbindlichen oder nachweisenden Charakter. Denn wie soll dadurch sichergestellt werden, dass Anforderungen ohne Auftrag nicht geändert werden können oder ob die tatsächlich gemachten Änderungen mit den geplanten wirklich übereinstimmen?

Das ändert sich nun mit agosense.requirements. Der methodische Ansatz dieses Werkzeuges erlaubt es, jede Änderung an einem Dokument/einer Anforderung aufzuzeichnen und darüber hinaus durchzusetzen, dass ein Dokument nur in Verbindung mit einer zugeordneten Aufgabe oder einem Änderungsantrag editiert werden kann.

In regulierten Industriezweigen ist es zwingend erforderlich, jeden einzelnen Entwicklungsschritt zu erfassen, um zu jedem späteren Zeitpunkt die Entwicklungstätigkeiten exakt reproduzieren zu können. Um dies zu ermöglichen, werden Weiterentwicklungen und Änderungen erfasst, geplant und an die zuständigen Personen bzw. Gruppen verteilt. Später werden diese Entwicklungsschritte geprüft und im Rahmen des vorgegebenen Prozesses freigegeben.

Um diesen Vorgang so effizient wie möglich zu gestalten und vor allem sicherzustellen, dass die durchgeführten Änderungen auch tatsächlich der Planung entsprechen, werden bei agosense.requirements sämtliche granularen Änderungen am Dokument (hier: "Sheet") erfasst. Dazu wird vom System zu jeder Aufgabe bzw. jedem Änderungsantrag ein so genanntes "Change Set" erstellt, in welchem automatisch die Bearbeitungen am Dokument granular aufgezeichnet werden - ähnlich wie das bereits bei Software-Versionsverwaltungstools praktiziert wird (siehe hierzu auch Abb. 1, PDF).

Die mit den Change Sets verlinkten Änderungsanträge oder Aufgaben stammen dabei in der Regel aus bereits vorhandenen Change Management Systemen (z.B. IBM RTC, Atlassian Jira, usw.), welche mit Hilfe der von agosense bereitgestellten Schnittstellentechnologien direkt mit agosense.requirements integriert werden. Diese Integration ermöglicht under anderem, dass die zugeordneten Planungsartefakte aus dem Change Management in agosense.requiremtns direkt für den Benutzer auswählbar sind. Selbstverständlich können dabei auch Informationen über Änderungen, Change Sets, Freigaben und vieles mehr an das Change Management System zurückübertragen werden.

Change Sets stellen also eine isolierte Menge Änderungen an einem Dokument dar, die einer Aufgabe oder einem Änderungsantrag usw. zugeordnet sind. Sie können dann in Folge, zum Beispiel über einen geregelten Freigabe-Prozess, in das Dokument einfließen. Damit wird sichergestellt, dass eine Dokumentenversion genau der Planung entspricht und die Änderungen jederzeit bis auf Zeichenebene nachvollzogen werden können.

In agosense.requirements wird die aktuelle, freigegebene Version eines Dokuments als "Base" bezeichnet. Soll diese (oder auch eine ältere Version eines Dokuments - dann in einem Branch) bearbeitet werden, wählt der Anwender einfach eine ihm zugeordnete Aufgabe aus und beginnt mit dem Editieren. Dabei wird aus der Base-Version automatisch eine so genannte "Tentative" Version des Dokuments generiert, welche als Arbeitskopie für die Bearbeitung dient.

Ab diesem Zeitpunkt werden damit auch alle Änderungen an der Dokumentversion automatisch im Change Set aufgezeichnet. Nachdem die Arbeit durchgeführt ist, kann der Anwender seine Change Sets - je nach gewünschtem Prozess - zur Überprüfung vorlegen bzw. direkt dem Dokument hinzufügen. Bei diesem Vorgang werden die Änderungen auf die Base Version als offiziell gültig übertragen ("Apply"). Gleichzeitig erfolgt dann auch ein entsprechender Statuswechsel der anhängigen Aufgaben oder Änderungsanträge im jeweiligen verknüpften System (siehe hierzu auch Abb. 2, PDF).

Je nach Reifegrad oder Formalität der vorgegebenen Arbeitsprozesse werden die Spezifikationen einem Review-Prozess unterzogen, bevor diese tatsächlich für die Implementierung freigegeben werden. Das bedeutet für unser Beispiel hier, dass für jeden Änderungsantrag das jeweilige Change Set den Review durchläuft. Dem Reviewer werden detaillierte Informationen über die konkreten Änerungen in einer integrierten Diff-Ansicht dargestellt. In dieser Ansicht können natürlich auch Anmerkungen erstellt werden und Korrekturen bzw. Nacharbeiten eingefordert werden, bevor dann ein Change Set freigegeben wird. Nachdem alle Change Sets für eine bestimmte Freigabestufe akzeptiert sind, kann dann z.B. eine Baseline für das Dokument erzeugt werden, welche dann die freigegebene Version darstellt.

Auch hier ist es so, dass der Freigabeprozess auch über das angebundene Change Management gesteuert werden kann. So kann der Reviewer zum Beispiel über einen Hyperlink im Änderungsantrag direkt auf die Change Set Ansicht in agosense.requirements gelangen - je nachdem, welche Arbeitsweise beim Anwender bevorzugt wird. 

Wie zuvor beschrieben sind Branches zentrale Funktionen, wenn es darum geht, Produktvarianten zu definieren bzw. Ableitungen von bestehenden Produktdefinitionen zu erstellen. So besteht die Notwendigkeit, diese Funktionen im Anforderungsmanagement als integralen Bestandteil verfügbar zu haben.

Die wenigsten Werkzeuge am Markt bieten ein echtes Branching, und wenn, dann oft nur per Add-on's, und arbeiten dann meist mit aufwändigen Kopiermechanismen, welche im Hintergrund die Datenablage unnötig aufblähen und die Applikation im Laufe der Zeit verlangsamen. agosense.requirements bietet eine native Unterstützung für echtes Branching. Dabei werden die Dokumente oder Anforderungen nicht generell dupliziert. Die Architektur von agosense.requirements ist so aufgebaut, dass die einzelnen Anforderungen in Branches immer wiederverwendet bzw. referenziert werden und aufgrund der impliziten Versionierungsengine nicht kopiert werden müssen.

Sämtliche hier beschriebenen Funktionalitäten finden auch außerhalb von Branches Anwendung, und es ist selbstverständlich möglich, jede Dokumentenausprägung (ob Baseline, Variante, Tentative oder Base) untereinander in beliebiger Kombination in der Diff-View zu vergleichen.

Ist für spezielle Kundenanforderungen ein reines Branching nicht mehr ausreichend, wenn zum Beispiel eine Beschreibung von Funktionsbäumen mit entsprechenden Abhängigkeiten bei der Erstellung von Produktvarianten gezielt verwaltet werden müssen, dann bietet agosense.requirements die Möglichkeit Variantenmanagement Systeme, wie zum Beispiel "pure::variants" von der pure-systems GmbH direkt zu integrieren.

Wie in den vorhergehenden Abschnitten bereits erwähnt, ist die Einbettung des Anforderungsmanagements in den Gesamt-Entwicklungsprozess von großer Bedeutung. Im Folgenden soll erläutert werden, wo die typischen Anknüpfungspunkte liegen und wie diese bestmöglich umgesetzt werden können, um die heutigen Anforderungen an Nachvollziehbarkeit und Traceability erfüllen zu können.

Inwiefern ist es heutzutage erforderlich, die Domäne des Anforderungsmanagements um eine geplante Änderungsverwaltung erweitern? Dies soll nachfolgend anhand einiger kleinen Beispiele erläutert werden.

Geht man von der Annahme aus, dass ein Anforderungsdokument freigegeben ist und das Produkt bereits anhand dieser Spezifikation entwickelt wird: Was ist nun notwendig, um nachträglich geänderte Anforderungen bestmöglich einfließen zu lassen? Denn die Anforderungen können nicht einfach nur geändert werden, sondern mussen nun im Rahmen eines geplanten Änderungsprozesses in die Produktentwicklung eingesteuert werden:

  • Änderungen müssen zunächst anhand verschiedener Kriterien bewertet werden (z.B. Kosten, Risiko, ...)
  • Abhängigkeiten müssen überprüft wreden: Testfälle, Use-Case-Modelle, ... müssen ggf. ebenfalls geändert werden
  • Die Spezifikation selbst muss geändert und freigegeben werden
  • Geänderte Anforderungen müssen kommuniziert und weiter gegeben werden für die Implementierung

 

Um all diese Aufgaben effizient zu erledigen, ist eine tiefgreifende Integration des Anforderungsmanagements in alle weiteren direkt angrenzenden Domänen und insbesondere in das globale Änderungsmanagement unerlässlich.

Anforderungsmanagement ist also inzwischen ein integraler Bestandteil des Entwicklungsprozesses und kann als solches nicht mehr isoliert betrachtet werden. Daher ist es für die meisten Unternehmen wichtig, dass das eingesetzte RM-Werkzeug entsprechend offene Schnittstellen bietet und ideal in die weiteren Werkzeug-Landschaft integriert werden kann (z.B. mit Test Management, Modellierung, Änderungsmanagement, usw.). Allerdings haben nur die wenigsten Anbieter eine Strategie für das Thema Integration, sobald dies über den Tellerrand des eigenen Produktportfolios hinausgeht. Dies führt oft zu erheblichen Aufwänden und Frustration auf Kundenseite, vor allem wenn es darum geht, diese (meist kundenspezifisch entwickelten) Integrationen zu warten und einen entsprechenden Support anzubieten. Darüber hinaus wird oft unterschätzt, dass beim Thema Toolintegration tiefgreifende Kenntnisse und Know-How über alle zu integrierenden Werkzeuge erforderlich sind.

Idealerweise bieten also die Hersteller von Werkzeugen für Anforderungsmanagement zumindest offene Schnittstellen für alle möglichen Integrationstechnologien an und haben bestenfalls auch noch eine klare Strategie und entsprechendes Know-How in diesem Bereich. agosense hat hierzu eine klare Strategie, jahrelange Erfahrung in der Toolintegration und bietet als optimale Ergänzung die Integrationsplattform agosense.symphony an.

Speziell bei sicherheitsrelevanten Produkten, wie zum Beispiel dem Automobil, ist es nicht zuletzt durch gesetzliche Regelungen gefordert, dass gewisse Reifegrade innerhalb des Produktentstehungsprozesses garantiert werden können. Dies soll grundsätzlich zu einer verbesserten Produktqualität führen, aber auch dabei helfen, im Sinne der Ursachenforschung jederzeit eine mögliche Fehlerkette rekonstruieren zu können - bis hin zurück zum Ausgangspunkt, den Produktanforderungen. Das ist letztlich nur durch Integration darstelbar, da die Mehrzahl der Unternehmen über sehr heterogene Werkzeug-Umgebungen und Datenspeicher verfügt. 

agosense.requirements unterstützt hierbei optimal, indem Trace-Informationen zu Daten aus anderen Werkzeugen direkt in eienr View dargestellt und sogar auch darin erstellt oder bearbeitet werden können. Somit ist es also möglich, werkzeugübergreifende Traceability herzustellen und diese über Dashboards in agosense.requirements in Form von Reports in Echtzeit darzustellen.

Organisationen, welche durch straff organisierte Planungs- und Entwicklungsprozesse geprägt sind, erhalten hier zum ersten Mal die Möglichkeit, auf einfache Art und Weise eine durchgängige Nachvollziehbarkeit sämtlicher Aktivitäten bis hin zum Anforderungsmanagement sicherzustellen.

Zusammenfassung

Anforderungsmanagement beginnt heutzutage in den seltensten Fällen auf der "grünen Wiese". Das heißt, bestehende Produktversionen bzw. Produktvarianten werden parallel definiert und entwickelt. Genau an dieser Stelle entsteht oft eine Abkopplung der geplanten Änderungen von den konkreten Inhalten der Anforderungen und Spezifikationen. So ist meist nicht mehr im Detail nachvollziehbar, welche einzelnen Änderungen in ein Dokument eingeflossen sind. Es lässt sich zwar in der Regel noch aufzeigen, welche Unterschiede zwischen zwei Meilensteinen oder Baselines auftreten, aber eine detaillierte Zuordnung granularer Änderungen innerhalb eines Dokumentes zu den geplanten bzw. durchgeführten Änderungen ist nicht mehr möglich.

Der Artikel verdeutlicht, wie mit einer werkzeuggestützten Methodik diese Verbindung hergestellt und Anforderungsmanagement generell in den moderenen Entwicklungsprozess vollständig eingebettet werden können. Durch neue Möglichkeiten, ein änderungsbasiertes Anforderungsmanagement mit klar verteilten Zuständigkeiten zu etablieren und die Tiefe der Nachvollziehbarkeit in der Entwicklung nachhaltig zu steigern, werden die Kommunikation und Koordination zwischen unterschiedlichen Verantwortlichkeiten im Anforderungsmanagement bzw. des gesamten Entwicklungsprozesses deutlich verbessert.

 

Beitrag als PDF downloaden

 


Requirements - MicroConsult Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Requirements /Embedded- und Echtzeit-Softwareentwicklung.

 

Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Requirements - Fachwissen

Wertvolles Fachwissen zum Thema Requirements/Embedded- und Echtzeit-Softwareentwicklung steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen

 
Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.