13.12.2017 23:29

Requirements Engineering

Die möglichen Wege eines Software-Projektes sind vielfältig und oft werden die Weichen mit dem Requirements Engineering gestellt. Schwammige oder unvollständige Anforderungen, überambitionierte Ansprüche ("goldene Wasserhähne") oder Lähmung durch Endlos-Analyse sind zum Beispiel ein sicherer Weg ins Desaster. Keine andere Tätigkeit ist so schwierig und gleichzeitig so entscheidend für den Erfolg eines Software-Produktes wie das Requirements Engineering.

Unsere erfahrenen Software-Ingenieure sind in der Lage, die notwendigen funktionalen und qualitativen Eigenschaften eines Software-Systems herauszuarbeiten, damit es seine Aufgabe optimal erfüllen kann. Ausgehend von den essenziellen Geschäftsfällen ermitteln wir quantifizierte Anforderungen, die verifizierbar sind, aber auch so abstrakt bleiben, dass sie den Lösungsraum möglichst wenig einschränken. Weil das Requirements Engineering zwischen Fachwelt und Software-Technik vermittelt, arbeiten sich unsere Spezialisten so weit wie nötig in das Fachgebiet ein, damit sie auch implizite Anforderungen erkennen können.

Anforderungsentwicklung
Die Betonung der Benutzersicht (User Centered Engineering) ist uns bei der Erhebung der Anforderungen ein wichtiges Anliegen. Die Durchführung von Workshops, an denen verschiedene Stakeholder aus unterschiedlichen Hierarchiestufen bis hin zu den Endbenutzern teilnehmen, ist ein wichtiges Mittel zu diesem Zweck. Dort werden anhand von Mockups und Prototypen mögliche Benutzungsszenarien (storyboards) herausgearbeitet. Dazu kommen Interviews oder die direkte Beobachtung der bestehenden Geschäftsprozesse.

Die Ergebnisse der Anforderungsermittlung werden während der Anforderungsanalyse normalisiert, es werden die Verknüpfungen der Anforderungen untereinander und ihre Gruppierungen ermittelt. Dabei werden die Anforderungen in Geschäftsanforderungen, Benutzeranforderungen, Systemanforderungen  und Projektanforderungen gegliedert. Mögliche Konflikte werden aufgelöst. Schliesslich wird das Software-System abgegrenzt.

Die Anforderungsspezifikation dokumentiert das Ergebnis der Analyse: die funktionalen und qualitativen, nicht-funktionalen Anforderungen werden beschrieben; aus den Benutzeranforderungen werden Anwendungsfälle (use cases) generiert. Die Anforderungsspezifikation bildet die Grundlage für die technische Lösung: die Evaluation und Anpassung einer Standard-Software (COTS) oder die Entwicklung von Individual-Software.

Anforderungsmanagement
Die Eigenschaften eines Software-Systems, die der Kunde wirklich braucht, sind nicht unbedingt diejenigen, die er ursprünglich will: Anforderungen entwickeln sich in einem Lernprozess und können zu Konflikten hinsichtlich Kosten und Terminen führen. Deshalb müssen die Anforderungen während des gesamten Lebenszyklus eines Produktes weiterentwickelt und gelenkt werden, damit keine schleichende Aufblähung des Projektumfangs eintritt. Eine permanente Risikobewertung ist unabdingbar.

Validierung
Der Schlüssel zum Erfolg ist die Einbeziehung des Kunden in jeder Projektphase. Durch Präsentationen von Mockups und Prototypen, aber auch durch formelle Reviews wird die Angemessenheit der Anforderungen laufend überprüft.