Requirements Engineering

© Fraunhofer IEM

Abb. 1: Anforderungen als Basis des Entwicklungsprozesses

Requirements Engineering als Basis des Entwicklungsprozesses

Nach der Produktidee sind Anforderungen an das Produkt das erste Erzeugnis eines jeden Entwicklungsprozesses. Auf diesen Anforderungen basieren alle weiteren Entwicklungsschritte, wie der initiale Systementwurf, die Konkretisierung und Ausarbeitung in verschiedenen Fachdisziplinen, die Systemintegration sowie die Testphasen. Das Requirements Engineering bezeichnet die ingenieurmäßige und systematische Erhebung, Dokumentation, Prüfung und Verwaltung von Anforderungen.

Damit ein sinnvolles Produkt gemäß Kundenwünschen entwickelt wird, müssen die Anforderungen bestimmte Qualitätseigenschaften wie Korrektheit, Widerspruchsfreiheit oder Vollständigkeit aufweisen. Denn wenn während der kritischen Phase des Requirements Engineerings zu Beginn des Entwicklungsprozesses Fehler auftreten (vgl. Abb. 1), dann wirken sich diese Fehler entweder sehr spät aus und verursachen damit hohe Kosten oder es wird im schlimmsten Fall gar kein sinnvolles Produkt entwickelt. So lässt sich ein Großteil aller schwerwiegenden Fehler in technischen Systemen auf Unzulänglichkeiten im Requirements Engineering zurückführen. Eine Erhöhung des eingesetzten Aufwands im Requirements Engineering um nur wenige Prozent sorgt hingegen für eine starke Senkung der Kosten gerechnet auf den Gesamtlebenszyklus (vgl. Abb. 2).

© Fraunhofer IEM

Abb. 2: Korrelation zwischen Aufwand im Requirements Engineering und Entwicklungskosten im Gesamtlebenszyklus

© Fraunhofer IEM

Abb. 3: Zusammenhang zwischen Formalitätsgrad von eingesetzten Beschreibungsmitteln zur Anforderungsspezifikation und Leistungsfähigkeit automatischer Verfahren

Mit unserer Expertise entwickeln wir für Ihre Bedürfnisse passende Techniken für die Dokumentation, die Prüfung und die auf der Nachverfolgbarkeit basierende Verwaltung von Anforderungen. Eine systematische und gegebenfalls formale Dokumentation von Anforderungen ermöglicht den Einsatz von (teil-) automatischen Verfahren zur Unterstützung der Anforderungsprüfung und -verwaltung. Solche Verfahren reduzieren zeitintensive und fehleranfällige manuelle Schritte, was letztendlich zu einer Kostenersparnis führt.

Qualitativ hochwertige Anforderungen sicherstellen

Anforderungen werden heute hauptsächlich in freier, natürlicher Sprache verfasst. Zum einen können in  so formulierten Spezifikationen leicht Fehler und Inkonsistenzen auftreten. Zum anderen erschwert dies den Einsatz von automatisierten Verfahren, um qualitativ hochwertige Anforderungen sicherzustellen.

Eine Erhöhung des Formalitätsgrads hilft bei der Konzipierung und Einführung von Maßnahmen zur Qualitätssteigerung von Anforderungen.

 

 

 

Prozessanalyse Requirements Engineering

Wir analysieren Ihren Prozess für das Requirements Engineering. Dabei erfassen wir Stärken und Schwächen, identifizieren Optimierungspotenziale und leiten mit Ihnen Maßnahmen ab, deren Implementierung wir gerne unterstützen.

Qualitätsmaßnahmen für informelle Anforderungen

Vollständige und eindeutige Anforderungsspezifikationen reduzieren Abstimmungsaufwände und teure Iterationsschleifen.

Um auch für in freier, natürlicher Sprache formulierte, informelle Anforderungen die Vollständigkeit und Präzision zu erhöhen, erstellen wir für Sie Dokumentvorlagen (»Templates«) für gesamte Anforderungsspezifikationen sowie Formulierungsrichtlinien (»Anforderungsschablonen«) für einzelne Anforderungen (vgl. Abb. 3).

Formalisierung von Anforderungen

Ein höherer Formalitätsgrad von Anforderungsspezifikationen steigert deren Präzision bis hin zur Eindeutigkeit und erlaubt darüber hinaus verschiedene Arten der automatischen Verarbeitung (vgl. Abb. 3), die letztendlich Geld spart.

Wir konzipieren maßgeschneidert für Ihre Prozesse (semi-)formale Beschreibungsmittel für Anforderungen (z.B. Satzmuster zur Einschränkung freier Prosa, semiformale Modelle basierend auf UML/SysML, formale Modellierungssprachen) und unterstützen Sie bei deren Einführung in Ihr Unternehmen.

Werkzeugunterstützung bei der Dokumentation von Anforderungen

Eine adäquate Werkzeugunterstützung vermeidet Fehler bereits während der Anforderungsdokumentation und erhöht deren Effizienz.

Basierend auf dem Formalitätsgrad und den eingesetzten Beschreibungsmitteln, entwickeln und adaptieren wir Werkzeuge, die Sie bei der Dokumentation z.B. durch Autovervollständigung von Texten unterstützen (vgl. Abb. 3).

Automatische Prüfung von Anforderungen

Werkzeugunterstützung für die Prüfung von Anforderungen ermöglicht Ihnen eine effiziente und zuverlässige Suche von Fehlern in Anforderungsspezifikationen und reduziert manuelle und somit aufwändige Prüfungen wie Reviews, bei denen darüber hinaus Fehler übersehen werden können.

Basierend auf dem Formalitätsgrad und der Art der eingesetzten Beschreibungsmittel für Anforderungen, konzipieren wir für Sie automatische Analyseverfahren, z. B. auf konsistente Namensgebung, Widerspruchsfreiheit oder Realisierbarkeit (vgl. Abb. 3) und setzen diese prototypisch um.

Nachverfolgbarkeit und Übergang zu Modellen

Die Nachverfolgbarkeit (»Traceability«) zwischen verschiedenen Anforderungen und dem Produktentwurf bietet eine Orientierungshilfe bei der Erkennung der Zusammenhänge im Entwicklungsprozess und stellt die Grundlage der Anforderungsverwaltung dar. Während Anforderungen hauptsächlich natürlichsprachlich vorliegen, werden im Produktentwurf häufig Modelle eingesetzt. Die Nachverfolgbarkeit zwischen Anforderungsspezifikationen und Entwurfsmodellen wird dabei meistens manuell hergestellt und gewartet. Des Weiteren werden typischerweise Informationen aus den Anforderungsspezifikationen ebenfalls manuell in die Modelle übertragen. Durch die hohe Anzahl an Anforderungen nehmen diese Schritte einen großen Anteil der Entwicklungszeit ein und sind fehleranfällig sowie verlustbehaftet. Eine geeignete Werkzeugunterstützung kann diese Schritte beschleunigen und zuverlässiger gestalten.

Nachverfolgbarkeit über verschiedene Entwicklungsschritte und Werkzeuge hinweg

Eine durchgängige Nachverfolgbarkeit von Anforderungen entlang der gesamten Entwicklung erlaubt die Kontrolle zum Beispiel des Projektfortschritts, der Umsetzung der Anforderungen im Entwurf oder ihrer Absicherung durch Tests. Zudem wird die Nachverfolgbarkeit von vielen gängigen Entwicklungsstandards gefordert.

Wir unterstützen Sie bei der Herstellung und Wartung der Nachverfolgbarkeit  über verschiedene Entwicklungsschritte und Werkzeuge hinweg. Insbesondere integrieren wir automatische Verfahren in Ihre Werkzeugkette, die den abhängig von der Produktkomplexität hohen manuellen Aufwand bei der Herstellung und Pflege der Nachverfolgbarkeit reduzieren.

Auswirkungsanalysen (Impact-Analysen)

Auswirkungsanalysen (»Impact-Analysen«) erlauben auf Basis der Nachverfolgbarkeit eine gezielte Erkennung von durch Anforderungsänderungen betroffenen Produktkomponenten. Indem direkt die Anteile von Entwurfsmodellen oder beispielsweise korrespondierende Testfälle identifiziert werden, welche eine geänderte Anforderung betreffen, kann der für die Durchführung der Änderungen entstehende Aufwand besser abgeschätzt werden. Umgekehrt kann ebenso ermittelt werden, welche Anforderungen von Änderungen des Produktentwurfs betroffen wären.

Wir konzipieren und realisieren für Sie Verfahren, die solche Auswirkungsanalysen auf Basis der Nachverfolgbarkeit automatisch durchführen, damit Sie besonders bei komplexen Produkten den Überblick behalten.

Übergang zu Modellen

Eine Werkzeugunterstützung zum Übergang von Anforderungen zu Modellen reduziert manuelle und somit aufwändige sowie verlustbehaftete Schritte zur Übertragung von Informationen zwischen diesen Dokumentationsformen.

Basierend auf dem Formalitätsgrad und der Art der eingesetzten Beschreibungsmittel für Anforderungen (vgl. Abb. 3), entwickeln wir für Sie automatische Verfahren für den Übergang von Anforderungsspezifikationen zu Modellen, zum Beispiel in SysML, sowie für deren Konsistenzerhaltung.