05. Dezember 2017
Verantworten Sie die Umsetzung von Anforderungen an ein Software-Produkt, das die Kundenansprüche erfüllen soll?
Dann wissen Sie, wie auch viele Tester, welche Konsequenzen ein unzureichendes Requirements Engineering mit sich bringt. Fehler und Widersprüche in den Anforderungen sollten frühzeitig entdeckt werden, um unnötige Kosten und Zeitaufwände einer späteren Fehlerbehebung entgegen zu wirken.
Merklich oft zeigen sich beispielsweise bei der Testfallermittlung abweichende Vorstellungen der Projektbeteiligten über das korrekte Softwareverhalten. Eine ausgeprägte Fehlerquelle im Integrationstest ist, dass Anforderungsänderungen nicht systemübergreifend konsistent umgesetzt wurden. Und im Abnahmetest wird zuzeiten empfindlich deutlich, dass wichtige Kundenanforderungen übersehen wurden. Diese können dann nur noch als Change Request mit deutlicher Zeit- und Budgetüberschreitung überholt werden.
Ein funktionierendes Requirements Engineering setzt diesen Risiken einen systematischen Prozess
entgegen.
Dieser Prozess besteht aus vier Hauptaktivitäten:
- ermitteln (aus diversen Quellen, mit geeigneten Methoden)
- dokumentieren (natürlichsprachig, modellbasiert
- prüfen / abstimmen (Qualität sichern / Konflikte auflösen)
- verwalten (strukturiert bereitstellen, kontrollierte Änderungen)
Requirements Engineering darf nicht auf den zu verwaltenden Aspekt des Requirements Managements reduziert werden, die inhaltliche Arbeit mit den Anforderungen muss im Vordergrund stehen. So könnte womöglich in einem Projekt ein Werkzeug genutzt werden, in dem unterschiedliche Gruppen formlos beschriebene Anforderungen beschreiben, die dann bewertet und möglicherweise zur Umsetzung eingeplant werden. Ein solches Werkzeug unterstützt zwar beträchtliche Aufgaben des Requirements Managements, unterstützt aber nicht dabei, dass Anforderungen systematisch erhoben und entsprechend dokumentiert werden. Genauso wenig kann ein Werkzeug dafür sorgen, dass Anforderungen gewisse Qualitätskriterien erfüllen, oder dass Unstimmigkeiten in den Anforderungen behoben werden. Der Erfolg eines Projekts hängt oft sehr entscheidend davon ab, solche Prozesslücken rechtzeitig zu erkennen und zu beseitigen.
Anforderungen bilden die Basis für nahezu alle Aktivitäten im Software-Lebenszyklus. Daher ist es nicht erstaunlich, dass die Maßnahme zur Einführung oder Verbesserung des RE-Prozesses oft von Beteiligten wie Fachspezialisten oder Entwicklern ausgeht, deren primäre Aufgaben eigentlich andere wären.
Konnte ein grundlegender RE-Prozess erst einmal in einer Organisation etabliert werden, ergeben sich weitere Verbesserungspotentiale. Zwei wesentliche Handlungsbereiche sind dabei auf der einen Seite die eingesetzten Dokumentationstechniken und auf der anderen der Umgang mit Stakeholdern und anderen Anforderungsquellen bei der Ermittlung und Konsolidierung von Anforderungen.
Bei den Dokumentationstechniken geht es darum, dass Anforderungen in natürlicher Sprache häufig mehrdeutig oder interprätierbar sind. Solchen sprachlichen Effekten kann durch sprachwissenschaftliche Methoden entgegengewirkt und Anforderungen deutlicher formuliert werden. Parallel bietet sich die Nutzung grafischer Modelle wie Diagramme der UML an, um die Vollständigkeit und Eindeutigkeit der Anforderungen zu erhöhen.
Weiterführend geht es bei der Ermittlung und Konsolidierung von Anforderungen erst einmal um die wesentlichen Anforderungsquellen. Viele Projekte straucheln bereits daran, dass wichtige Stakeholdergruppen, gesetzliche Gegebenheiten oder Altsysteme überhaupt nicht als Anforderungsquelle verstanden werden. Bei der Ermittlung von Anforderungen setzt man oft einspurig auf die Befragung der Stakeholder und übersieht dabei häufig vorhandenes Wissen, das den Befragten so natürlich erscheint, dass sie es gar nicht mehr anbringen. Hier wären Beobachtungstechniken sicherlich wirkungsvoller, während sich für eine innovative Ideenfindung eher Techniken wie Brainstorming eignen. Auf die die Ermittlung folgend müssen die relevanten Stakeholder dann zweifellos auch in die Konsolidierung der Anforderungen einbezogen werden. Vorwiegend gilt es hierbei, Konflikte hinsichtlich der Anforderungsanalyse zu entwirren – also, Abweichungen zu erkennen, zu bewerten und zu bearbeiten.