Anforderungsmanagement Requirements Engineering für agile Prozesse mit Eclipse

Autor / Redakteur: Jens Trompeter, Ömer Gürsoy * / Franz Graser |

Kritische Softwareprojekte erfordern eine enge Verzahnung der Anforderungen mit dem Entwicklungsprozess und den daraus entstehenden Artefakten. Eclipse-basierte Tools können diese Verknüpfung leisten.

Anbieter zum Thema

Klarheit ist gefordert: Insbesondere für die Entwicklung eingebetteter Softwaresysteme ist es wichtig, Transparenz zwischen den Anforderungen und den Artefakten herzustellen, in denen die Requirements umgesetzt sind.
Klarheit ist gefordert: Insbesondere für die Entwicklung eingebetteter Softwaresysteme ist es wichtig, Transparenz zwischen den Anforderungen und den Artefakten herzustellen, in denen die Requirements umgesetzt sind.
( Itemis)

Requirements Engineering umfasst das systematische Ermitteln, Dokumentieren, Prüfen und Verwalten von Anforderungen. Traditionelle Vorgehensmodelle wie das Wasserfallmodell und das V-Modell machen umfangreiche Vorgaben in Bezug auf die für das Requirements Engineering zu erstellenden Dokumente und Artefakte. Dies gilt ebenso für einige iterativ-inkrementelle Softwareentwicklungsprozesse wie den Rational Unified Process (RUP).

Agile Methoden unterscheiden sich hier deutlich vom klassischen Wasserfall-Modell und dessen Varianten. Statt in einer zu Beginn festgelegten Abfolge aus Spezifikation, Konstruktion und Umsetzung wird das Projekt in sehr enger, fortlaufender und direkter Zusammenarbeit mit dem Auftraggeber realisiert. Die Spezifikation erfolgt sukzessive während der Umsetzung.

Änderungen sind herzlich willkommen – zu jeder Zeit

Das erlaubt zeitnahes Feedback und schnelle Reaktionen auf sich ergebende Veränderungen. Es gilt die Regel, dass neue und geänderte Anforderungen zu jeder Zeit willkommen sind.

Im Hinblick auf das Requirements Engineering legen die agilen Methoden grundsätzlich keine Dokumentationsweise fest. Es gilt der Grundsatz „Just Barely Good Enough“ (gerade gut genug). Eine Spezifikation muss daher vorerst nur für die nächste anstehende Aufgabe hinreichend sein. Die erforderliche Qualität der Spezifikation ist damit vollständig von der aktuellen Situation abhängig.

Ein Beispiel wäre eine handschriftliche Skizze auf einer Tafel. Sie könnte zunächst völlig ausreichen. Soll die Skizze aber verändert oder gar automatisiert weiterverarbeitet werden, ist sie ungeeignet. Stattdessen wäre die Verwendung eines UML-Werkzeugs vielleicht „gerade gut genug“.

Formlose Artefakte wie White-Board-Skizzen haben auch den Nachteil, dass sie flüchtig sind, wenn sie nicht festgehalten werden, etwa als Foto. Darauf enthaltene Requirement-Informationen lassen sich aber ohnehin kaum sinnvoll nachverfolgen. Echtes Requirements Tracing ist so nicht möglich.

Für das Requirements Management ergeben sich entscheidende Vorteile, wenn formale und konsistente Modelle mit geeigneten Softwarewerkzeugen erstellt werden. Durch eine formalisierte Vorgehensweise ergeben sich deutliche Verbesserungen, etwa hinsichtlich Strukturierbarkeit, Suchmöglichkeiten, Versionierung und Protokollierung von Änderungen sowie Auswertungsmöglichkeiten.

Um auch in einem agilen Umfeld eine sinnvolle Formalisierung zu erreichen, ist das Eclipse-Werkzeug Yakindu Requirements eine hervorragende Alternative zu schwergewichtigen, komplexen und unspezifischen Standardwerkzeugen.

Lesen Sie weiter: Modell erlaubt Generierung nachgelagerter Dokumente

Modell erlaubt Generierung nachgelagerter Dokumente

Das Tool erlaubt es, Anwendungsfälle, Abläufe, Masken/Maskenfolgen, Fachobjekte und Geschäftsregeln in textueller Notation formal zu beschreiben. Aus dem resultierenden konsistenten Gesamtmodell lassen sich automatisch viele Dokumente generieren: Diagramme, Lasten- und Pflichtenhefte, Testfälle und Schätztabellen.

Requirements Mapping: Auf der linken Seite stehen in Klarsprache die Anforderungen, die ein Softwaremodul erfüllen soll. Rechts davon sind die dazugehörigen Codeelemente zu sehen.
Requirements Mapping: Auf der linken Seite stehen in Klarsprache die Anforderungen, die ein Softwaremodul erfüllen soll. Rechts davon sind die dazugehörigen Codeelemente zu sehen.
( Itemis)

Das nebenstehende Bild zeigt einen Ausschnitt des Editors von Yakindu Requirements. Das Beispiel zeigt die textuelle Notation für die Modellierung von Use Cases und Fachobjekten. Basis des Werkzeugs ist das Eclipse-Framework Xtext, mit dem man eine eigene textbasierte domänenspezifische Sprache definieren kann. Das Tool enthält Features wie Syntax Highlighting, Code Completion, Validierungen und weitere Funktionen, die man von einer professionellen Entwicklungsumgebung erwartet.

Der zentrale Vorteil des Tools liegt darin, dass der Nutzer einfach und schnell formale Anforderungsmodelle erstellen kann. Aus textbasierten Modellen ergeben sich die gewohnten Vorteile von Copy & Paste und der Verwendung von Diff- und Merge-Werkzeugen in Teamumgebungen. Außerdem kann die Sprache von Yakindu Requirements um individuelle Konzepte erweitert werden und Inhalte anderer Tools referenzieren. Masken- und Fachobjektmodelle aus UML-Tools lassen sich so integrieren und neu verwenden.

Die Verbindung der Anforderungen zu anderen Entwicklungsartefakten wird durch Requirements Tracing abgedeckt. Als einer der wichtigsten Bestandteile des Requirements Managements ermöglicht es die bidirektionale Navigierbarkeit, mit dem Ziel, Anforderungen zu verfolgen und nachvollziehen zu können.

Gerade sicherheitskritische Entwicklungsprojekte machen konsequentes Requirements Management unabdingbar. Viele Projekte leiden aber unter einer heterogenen Werkzeuglandschaft, in der die durchgängige Verarbeitung und Verwaltung von Requirements schwer fällt. Der konsequente Einsatz geeigneter Tools kann die Qualität des Entwicklungsprozesses und der Implementierung deutlich steigern.

Traceability erfordert Transparenz der Verbindungen

Jedes Entwicklungsartefakt lässt sich auf Anforderungen zurückführen. Diese Verbindungen müssen im Projektverlauf erkennbar bleiben. Um die Verbindungen nicht aufwendig pflegen zu müssen, sollten neben den expliziten auch die impliziten Verbindungen, die sich etwa durch Modellierung oder Generierung ergeben, sichtbar sein.

Es gibt zwei wesentliche Aktivitäten im Rahmen des Requirements Tracing: Abdeckungs- und Auswirkungsanalyse. Die Abdeckungsanalyse zeigt, ob zu jeder Anforderung auch die benötigten Entwicklungsartefakte (Task, Design, Implementierung, Test, usw.) existieren. Ebenso wird in entgegengesetzter Richtung für jedes Artefakt ermittelt, ob mindestens eine Anforderung vorhanden ist. Insgesamt zeigt die Abdeckungsanalyse den detaillierten Projektstatus auf und hilft, überflüssige Implementierungen zu vermeiden und die adäquate Anforderungs-Granularität zu definieren.

Die Auswirkungsanalyse zeigt den Kontext einer Anforderung beziehungsweise eines Entwicklungsartefakts auf. Sie hilft, den Arbeitsaufwand bei Änderungen zu reduzieren und die Wechselwirkungen innerhalb eines Projektes besser zu verstehen. //FG

* * Jens Trompeter ... ist Vorstandsmitglied des Software-Entwicklungshauses itemis in Lünen.

* * Ömer Gürsoy ... ist Senior IT-Consultant des Software-Entwicklungshauses itemis in Lünen.

(ID:31147290)