Anforderungserhebung und -management


engl. requirement engineering

a
Grundlagen
a

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 Norm9001 DIN EN 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:
Vergleiche auch andere Definitionen in Sophist2007 auf S. 13, in IEEE 830 und in IEEE 1233.

Wissenswertes:

a
Anforderungserhebung
a

=a=Definition=a=

Die Anforderungserhebung besteht aus der Anforderungsanalyse, Anforderungsklassifikation, Anforderungspriorisierung und Anforderungsspezifikation.

Siehe auch AnforderungsErmittlung Anforderungsermittlung aus SkriptHopf2008

=a=Anforderungen sammeln=a=

Es stehen diverse RequirementElicitation Techniken zum Sammeln von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die Stakeholder bekannt sein und 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.


=a=Anforderungsanalyse=a=

Als Voraussetzung für eine Anforderungsanalyse müssen die Stakeholder bekannt sein und bestenfalls nach Priorität sortiert vorliegen.

Der Vorgang der Anforderlungsanalyse kann ggf. stark mit dem Sammeln von Anforderungen verzahnt sein. In der Regel ist es empfehlenswert den Stakeholder nicht mit der Analyse zu beeinflussen (siehe UnaffectedStakeholder).

Zu berücksichtigen ist

=a=Anforderungsklassifikation=a=

RequirementClassification Klassifikation von Anforderungen (darf hier nicht öffentlich gemacht werden)

Siehe dazu das VolereTemplate13, S. 4


=a=Anforderungspriorisierung=a=

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 (Passender Artikel dazu: AnforderungenWollmilchsau Die eierlegende Wollmilchsau).

Hierzu können die folgenden Fragen bereits bei der Anforderungsanalyse helfen:
Mögliche Verfahren zum Ermitteln von Prioritätsstufen:

=a=Anforderungsspezifikation=a=

So werden Anforderungen Formuliert: AnforderungenFormulieren Formulierung von Anforderungen

Beispiele für eine Anforderungsspezifikation (also eine Liste von Anforderungen) sind

a
Strukturierung von Anforderungen
a

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.
Die Strukturierung hilft bei der Arbeit mit den Anforderungen - dem Anforderungsmanagment.


a
Anforderungsmanagment
a

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:
Definition in Wikipedia:Anforderungsmanagement


a
Aufwanadschätzung
a

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.


a
Anforderungserhebung und -management in der Praxis
a

Eine Zusammenstellung von Empfehlungen, Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management. Vor allem die ersten Zwei sind sehr empfehlenswert.


CategoryStudiumSE
Siehe auch AgileProjectManagement
ALM
AnforderungenFormulieren
AnforderungenWollmilchsau
Anwendungsszenario
AufwandSchaetzung
AufwandsschaetzungScrum
BusinessCase
EmpfehlungenZumElernenEinerProgrammiersprache
ManuellePruefmethoden
MasterArbeit
MasterarbeitProtokoll
MasterStudieninhalte
Meilenstein
NLP
NotizenPmDay2009Vortrag6
PriorisierungRelativitaetsMethode
ProductBacklog
ProductOwner
Produktpolitik
Projektplanung
RequirementsEngineering
ScheiternVonSwProjekten
Scrum
ScrumIncrement
SgsAnalysis
SoftwareQualitaet
SoftwareTechnik
SoftwareTechnikMehr
SoftwareTestsHaftungsrisiko
SpaghettiCode
StakeHolder
StakeHolderMartinGinz
SysMl
SystemModellingSortedByLanguage
SystemsEngineering
Usability
VModellXT
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki