Requirements Engineering steht für das systematische Vorgehen bei der Erfassung, Beschreibung, Prüfung und Verfolgung von Anforderungen, die zum Beispiel mit einer zu entwickelnden Software umgesetzt werden sollen.
In einem Unternehmen kann die Anforderungsanalyse (Computer Aided Requirements Engineering - CARE) zwei verschiedene Aufgaben erfüllen. Zum einen ist die Anforderungsanalyse Projekt-spezifisch eine Komponente im Vorgehensmodell, zum anderen kann sie eingerichtet sein, um Anforderungen für potenzielle IV-Projekte zu sammeln und aus den Anforderungen ein Projekt-Portfolio zu gestalten.
Requirements Engineering als Phase im Software Life Cycle
Die Anforderungsanalyse kann als Start-Phase im Software Life Cycle gesehen werden.
Die Start-Phase in einem Vorgehensmodell beginnt mit der Projektidee und endet, wenn die Sammlung, Analyse, Beschreibung und Bewertung der Anforderungen an das zu realisierende IV-System abgeschlossen sind. Die Arbeitsschritte der Anforderungsanalyse sind in einem entsprechenden Software Engineering Vorgehensmodell oder Requirements Engineering Vorgehensmodell (zum Beispiel mit Systemabgrenzung, Situationsanalyse, Use Case Spezifikation) abgebildet.
Es werden Methoden in der Anforderungsanalyse (zum Beispiel Problemanalyse / Schwachstellenanalyse, Affinitätsanalyse, Durchführbarkeitsanalyse / Wirtschaftlichkeitsanalyse) eingesetzt, die sich teilweise mit den Methoden der Anwendungsentwicklung (Software Engineering Methoden) überschneiden.
Eine Anforderung (Requirement) ist in dieser Betrachtung des Requirements Engineering eine funktionale oder nicht-funktionale Vorgabe, die ein System erfüllen soll bzw. eine technische oder formale Restriktion, die von außen vorgegeben und zu beachten ist.
Die Definition der Anforderung muss als Übereinkunft zwischen Auftraggeber und Auftragnehmer formuliert sein. Eindeutigkeit ist dabei ein wesentliches Kriterium.
Besonderes Augenmerk ist in der Anforderungsanalyse auf die Verfolgung von Änderungen der Anforderung (Komponente des Change-Management im Projektmanagement-Vorgehensmodell) während der Projektarbeit zu legen, da eine Änderung einer Anforderung allgemein Aufwands- und Termin-relevant ist.
Ebenso von Bedeutung ist es, ein Requirement und alle in den Phasen der Entwicklung davon abgeleiteten Anforderungen miteinander und mit den aus dieser Anforderung entstandenen Entwicklungsobjekten (aus Analyse, Design, Implementierung und Dokumentation) in Beziehung zu setzen. Für diese Art von Anforderungsmanagement ist der Einsatz eines umfassenden Konfigurations-Management notwendig. Zusätzlich ist ein Werkzeug erforderlich, das die Beziehungen verwalten kann.
Eine funktionale Anforderung im Requirements Engineering muss präzise und für alle Beteiligten eindeutig beschrieben sein. Zusätzlich kann eine Darstellung der funktionalen Anforderungen zum Beispiel als Beschreibung von Use Cases, über Use-Case-Diagramme und in der weiteren Verfeinerung über Aktivitätsdiagramme in grafisch orientierten Analyse-Tools erfolgen. Hier ist die Unified Modeling Language (UML) das geeignete grafische Mittel für die Anforderungsanalyse.
Die nicht-funktionalen Anforderungen, zu denen die Randbedingungen (s.a. Restriktionsanalyse), Aspekte der Performance, Zuverlässigkeit, Nutzbarkeit und Wartbarkeit gehören, werden im Allgemeinen nur textlich beschrieben. Bei diesen Beschreibungen ist auf eine annähernd gleiche Granularität der Anforderungen zu achten.
Requirements Engineering als Daueraufgabe in der IT
Die Anforderungsanalyse kann auch unabhängig von einem Software-Projekt als dauerhafte Aktivität "Anforderungsmanagement" in der Informatik durchgeführt werden. Das Requirements Engineering dient dann in der IV der unternehmensweiten Sammlung und Definition von Anforderungen an die vorhandenen oder neuen Systeme. Die Anforderung wird in diesem Anforderungskatalog
- mit einer eindeutigen Identifikation versehen,
- klassifiziert, zum Beispiel hinsichtlich Verbindlichkeit und Dauerhaftigkeit / Stabilität,
- in ihren Auswirkungen auf andere Komponenten untersucht,
- gemäß der Priorität eingestuft,
- mit ihren strukturellen Abhängigkeiten und ihrem Zustand verwaltet und
- in ihrer Umsetzung im Projekt bzw. Zuordnung zu einem IV-System einschließlich ihrer gesamten Änderungs-Historie verfolgt (Requirement Life Cycle).
Aus zusammengehörenden Anforderungen, die sich eventuell auch auf ein bestehendes System beziehen, werden dann als weiterer Schritt im Vorgehensmodell des Requirements Engineering (eventuell in regelmäßigen Zyklen) einzelne IT-Projekte gebildet (s.a. Affinitätsanalyse).
Als Werkzeuge für die Aufgaben des Anforderungsmanagement kommen in diesem Falle spezialisierte Computer Aided Requirements Engineering (CARE) Tools zur Anwendung; in der allgemein gültigen Betrachtung aber auch ein Werkzeug der Anwendungsentwicklung (zum Beispiel case/4/0, Innovator, objectiF RPM) und des Projektmanagement, bzw. als übergreifendes Tool in-STEP BLUE.
Bei der Formulierung von Anforderungen muss darauf geachtet werden, dass
- eine eindeutige und für alle Beteiligten klare Definition für die Anforderung gewählt wird und dabei auch für den Autor (aber nicht für jeden Leser) selbstverständliche Aspekte beschrieben werden,
- eine positive Formulierung gefunden wird ("Was soll erreicht werden" und nicht "Was soll vermieden werden"),
- keine Lösung für das Projekt durch die Beschreibung der Anforderung vorgegeben wird und
- nach Möglichkeit quantitative Aussagen zur Anforderung gefunden werden.
Die Beschreibung der Anforderungen wird selbstverständlich in die Projektdokumentation aufgenommen.
Zum Thema Requirements Engineering bietet INffORUM die CARE-Tool-Auswahl und die Einrichtung der geeigneten Werkzeugumgebung für die Anforderungsanalyse, die Anpassung der Vorgehensmodelle und die Unterstützung bei der Einführung bzw. Durchführung der Anforderungsanalyse bzw. Aufbau des Anforderungsmanagement.
Zum Angebot gehört auch die Verzahnung des Requirements Engineering mit der Anwendungsentwicklung und dem Projektmanagement, die Einbettung in Vorgehensmodelle sowie den zugehörigen Know-how-Transfer zu Vorgehen, Methoden und Tools in Form von Schulungsmaßnahmen (Seminar, Workshop, Tutorial) und Coaching an.
|