Revision [10105]
This is an old revision of AnforderungsSpezifikation made by ToBo on 2009-09-16 14:51:59.
Anforderungserhebung und -management
engl. requirement engineering
1. Grundlagen
Anforderungserhebung ist der zentrale Gedanke vieler ProzessModelle Vorgehensmodelle, in der frühen Entwicklungsphase ist es der Schwerpunkt beim SystemsEngineering Systems Engineering, in der SoftwareTechnik Softwaretechnik wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe ISO 9001) und die Grundlage für die Orientierung (Ist-Zustand) beim ProjektManagement Projektmanagement. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit StakeHolder Stakeholdern und eigenen Beratern (möglichst Experten). Sie erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen - die Anforderungsspezifikation.
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, ScheiternVonSwProjekten warum viele Software-Projekte scheitern.
Definitionen:
- Eine Anforderung (engl. requirement) an ein Produkt ist die eindeutige, für alle Beteiligten verständliche, präzise Formulierung einer eindeutig identifizierbaren, nachprüfbaren, atomaren Eigenschaft eines Produkts.
- Eine Anforderungsspezifikation ist eine vollständige, einheitlich dokumentierte und konsistente Zusammenstellung aller Anforderungen an ein Produkt. Beispiele hierfür sind das (Lastenheft und ProductBacklog Product backlog).
Vergleiche auch andere Definitionen in Sophist2007 auf S. 13, in IEEE 830 und in IEEE 1233.
Wissenswertes:
- Was sind StakeHolder Stakeholder? (erforderlich für das weitere Verständnis)
- Was sind UseCase Anwendungsfälle?
- Was sind StoryCards User Stories?
- Was ist ein BusinessCase Business Case?
- Was ist Produktpolitik im Marketing?
2. Anforderungserhebung
2.1Definition
Die Anforderungserhebung besteht aus der Anforderungsanalyse, Anforderungsklassifikation, Anforderungspriorisierung und Anforderungsspezifikation.
Siehe auch AnforderungsErmittlung Anforderungsermittlung aus SkriptHopf2008
2.2Anforderungsanalyse
Als Voraussetzung für eine Anforderungsanalyse müssen die Stakeholder bekannt sein und bestenfalls nach Priorität sortiert vorliegen.
Die Interessen aller Stakeholder an einem Produkt und alle Randbedingungen (Normen, Standards, Bestimmungen) müssen erfasst und als Anforderungen formuliert werden.
Zu berücksichtigen ist
- Wie wichtig sind die Stakeholder, die diese Anforderung stellen?
- Jeder Stakeholder wird befragt, aber die Priorität sollte berücksichtigt werden
- Fragestellungen und Vorgehensmodelle der Usability Gebrauchstauglichkeit (Usability) sind hier genau richtig.
- Standards und Normen bieten eine Vorlage für weitere Anforderungen an ein Produkt und müssen berücksichtigt werden
- Bereits eingesetzte Technologie (z.B. der Kunde hat schon alle Systeme in C++ entwickelt bekommen und hat selbst Experten, die kleine Anpassungen machen können, stellt eine Anforderung an das System)
2.3Anforderungsklassifikation
RequirementClassification Klassifikation von Anforderungen (darf hier nicht öffentlich gemacht werden)
Siehe dazu das VolereTemplate13, S. 4
2.4Anforderungspriorisierung
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen.
Hierzu können die folgenden Fragen bereits bei der Anforderungsanalyse helfen:
- Wie hoch ist Enttäuschung des/der betreffenden Stakeholder Stakeholder(s), wenn die Anforderung nicht umgesetzt wird?
- Unmöglich, Produkt dadurch unbrauchbar
- Große Unzufriedenheit, es sollte kein weiteren Vorfall diese Art geben
- Große Unzufriedenheit, unter den Umständen wird es toleriert
- Es wird akzeptiert
- Wie hoch ist Zufriedenheit des/der betreffenden Stakeholder Stakeholder(s), wenn die Anforderung umgesetzt wird?
- Das ist egal, dann sollte es ggf. raus.
- Das ist ok, es war klar, dass das umgesetzt werden muss.
- Das ist eine beachtliche Leistung? Der Stakeholder schätzt diese Anforderung sehr.
- (Advanced: Wie viele kritische Anforderungen können bereits nicht umgesetzt werden?)
Mögliche Verfahren zum Ermitteln von Prioritätsstufen:
- AnforderungenPrioritaetenBeispiel1 Präzise definierten Klassen
- AnforderungenPrioritaetenBeispiel2 Intuitives Einstufen
- PriorisierungRelativitaetsMethode Relativitätsmethode
- AnforderungenPrioritaetenFuzzyLogic Fuzzy-Logic-System zum Ermitteln der Priorität
2.5Anforderungsspezifikation
- Die Anforderungsspezifikation ist eine Liste von Anforderungen an ein Produkt
- Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: AnforderungenFormulieren Formulierung von Anforderungen
- Ein projektspezifisches Glossar hilft eine einheitliche Sprache zu etablieren. Es sollte gleich am Anfang erstellt werden.
- Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die StakeHolder Stakeholder tatsächlich benötigten (nicht so wie es StakeHolder Stakeholder formulieren - eine wahrhaftig schwere Aufgabe).
- Idealerweise befähigt eine Anforderungsspezifikation den Stakeholder zur selbständigen Validierung der Anforderungen
So werden Anforderungen Formuliert: AnforderungenFormulieren Formulierung von Anforderungen
Beispiele für eine Anforderungsspezifikation (also eine Liste von Anforderungen) sind
- ein Lastenheft
- im Entwicklungsprozess Scrum kann das ProductBacklog Product Backlog eine Anforderungskatalog sein; muss aber nicht!
- AnforderungsKatalog Anforderungskatalog im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
- Software Requirements Specification nach IEEE 830
3. Strukturierung von Anforderungen
Mit zunehmender Anforderungesanzahl wird eine reine Liste mit Anforderungen sehr unübersichtlich (schon ab 100) bis tatsächlich unbrauchbar (ab 300). Eine große Hilfe kann hier eine Filterfunktion und auch eine Sortierfunktion sein. Nichts, was man nicht mit einer heute üblichen Tabellenkalkulation machen könnte. Der Anforderungstyp wurde schon oben als Merkmal einer Anforderung erwähnt. So könnte die Liste bereits nach der Anforderungsnummer sortiert und mit der Filterfunktion nur die funktionalen Anforderungen angezeigt werden. Man schafft damit eine sortierte Teilliste mir funktionalen Anforderungen. Auf diese Weise schaft man sich etwas mehr Überblick.
Bei mehreren Hundert Anforderungen reicht das nicht. Man muss bedenken: Projekte können Jahre dauern. Was heute aufgrund einiger verinnerlichter Zusatzinformationen für einen selbst übersichtlich erscheint, kann in einem Jahr bereits unüberschaubar sein, weil diese Information dann fehlt. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Zusätzliche Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
- Abhängigkeit – Anforderungen können voneinander abhängig sein. So ist es interessant zu wissen, ob eine Anforderung erst erfüllt werden kann, wenn eine andere umgesetzt wurde.
- Gruppieren – Thematisch zusammenhängende Anforderungen, können gruppiert werden. So kann beispielsweise ein bestimmte Eingabemaske oder ein teil eines Gerätes oder von Software gemeint sein.
- Teams – arbeiten mehrere Teams an einem Projekt, so ist es sehr hilfreich, wenn Fragestellungen, die nur ein bestimmtes Team betreffen nur die Anforderungen die das Team betreffen angezeigt werden können.
- Status – Generell kann man hier zwischen umgesetzt und nicht ungesetzt unterscheiden. Aber eine Anforderung kann auch zur Überarbeitung markiert sein, weil Fragen aufgekommen sind; oder einfach als irrelevant markiert werden. So können beispielsweise bereits umgesetzte Funktionen ausgeblendet werden.
Die Strukturierung hilft bei der Arbeit mit den Anforderungen - dem Anforderungsmanagment.
4. Anforderungsmanagment
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in sehr großen Projekten eines Anforderungsmanagement (siehe weiter unten) oder auch RequirementsEngineering Requirements Engineering bedarf.
Das Anforderungsmanagment ist eine Tätigkeit, die sich über die gesamte Projektlaufzeit zieht und eigentlich vor dem Projektstart beginnt, wenn der erste Kontakt zu dem Stakeholder Stakeholdern aufgenommen wird.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den Stakeholder Stakeholdern bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Aber! Das Einfrieren eine Anforderungsliste, während der Entwicklungsphasen ist jedoch von großer Bedeutung. Dabei werden Änderungen der Anforderungen aufgenommen, die Entwicklung läuft jedoch mit der alten Anforderungsliste weiter. Erst ab einer neuen Entwicklungsphase wird die neue Liste der Anforderungen an die Entwicklung gegeben. Wie sie Entwicklungsphasen definieren ist eine andere Philosophie. Siehe dazu als Beispiel die Sprints in Scrum.
Das Anforderungsmanagment umfasst:
- vor allem die Priorisierung bestehender Anforderungen!
- das Kommunizieren mit den Stakeholdern
- das Erfassen neuer Anforderungen
- das Erfassen von Änderungen der Anforderungen
- die Priorisierung von neuen Anforderungen
- das Validieren von Anforderungen
- das Kommunizieren von Änderungen an die Entwicler
Definition in Wikipedia:Anforderungsmanagement
5. Aufwanadschätzung
Die AufwandSchaetzung Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur AufwandSchaetzung Aufwandschätzung gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
6. Anforderungserhebung und -management in der Praxis
Eine Zusammenstellung von Empfehlungen, Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management. Vor allem die ersten Zwei sind sehr empfehlenswert.
- Anforderungserhebung nach Volere (VolereTemplate13) - eine gute Wahl und zugleich eine Vorlage in Word!
- Anforderungserhebung und -management der SOPHISTen (Sophist2007) - sehr gut!
- Anforderungserhebung nach AnforderungsSpezifikationHubertHofmann Hubert F. Hofmann, Franz Lehner, IEEE SOFTWARE July / August 2001
- Anforderungsanalyse mit Hilfe der StrukturierteAnalyse strukturierten Analyse
- Anforderungsentwicklung und -management nach CMMI (Prozessgebiete RD und REQM, Kategorie Entwicklung)
- IEEE 830 - Software Requirements Specification
- IEEE 1233 - Guide for Developing System Requirements Specifications
- Vorgehensbaustein Anforderungsfestlegung im V-Modell XT (DokuVModellXT1V3 Dokumentation zum V-Modell XT in der Version 1.3, Seite 3-115)
- ISO 9001 fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
- Anforderungsspezifikation als ein Teil eines Lastenheft Lastenheftes (Balzert2000, S. 62)
- Anforderungsspezifikation in Rahmen von Scrum in Form eines ProductBacklog Product Backlogs
- Laut INCOSE konzentriert sich das SystemsEngineering Systems Engineering auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
- Praktiken im Requirements Engineering auf re-wissen.de
- IREB (International Requirements Engineering Board); Lehrplan; Buch zur Vorbereitung auf die Prüfung zum CPRE (Certified Professional for Requirements Engineering)
- Probleme und Fehler bei im Requirements Engineering: Ergebnisse einer Studie (ZeitschriftObjektSpektrum OBJEKTspektrum, 1/2009, S. 10)
- Erfolgreiches Anforderungsmanagement in KMUs dank bausteinorientierter Prozessverbesserung, Michael Eisenbarth, Fraunhofer IESE
- [[http://www.sophist.de/sophist-blog/blog/einfuehrungsstrategien-fuer-re-das-pilotierungskonzept/sophist-blog/2009/september.html?tx_ttnews[day]=16&cHash=1a795d3763 Einführungsstrategien für RE: das Pilotierungskonzept]] von der Sophist-Group
- Konferenz Requirements Days
- Konferenz REConf
CategoryStudiumSE
Siehe auch • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •