Die Anforderungsdefinition zielt auf eine verbindliche Festlegung von Anforderungen, die an ein zu entwickelndes oder zu beschaffendes System gestellt werden. Der Prozess der Gewinnung und Systematisierung von Anforderungen erfordert eine enge Kooperation zwischen Systemanalytikern und Repräsentanten der verschiedenen Interessensgruppen.
Definition und Abgrenzung
Der Begriff Anforderungsdefinition (auch: Anforderungsanalyse) meint zielgerichtete Tätigkeiten um eine möglichst vollständige und für alle Seiten verbindliche Sammlung von Anforderungen zu formulieren, die ein technisches Informationssystem erfüllen soll. Diese werden in Dokumenten zusammengefasst, die als Lastenheft und Pflichtenheft bezeichnet werden.
Die Anforderungsdefinition ist eine Aktivität, die eine sehr enge Zusammenarbeit zwischen den Auftraggebern und (künftigen) Anwendern eines Informationssystems auf der einen Seite und den Systemanalytikern auf der anderen Seite erforderlich macht. Letztlich wird durch ein einzuführendes System angestrebt, die Arbeit aus der Perspektive der einzelnen Benutzer oder einer übergeordneten organisationalen Perspektive zu verbessern. Diesbezüglich werden von den jeweiligen Interessensgruppen bestimmte mehr oder weniger präzise Erwartungen an ein wünschbares Informationssystem entwickelt. Diese sind im Zuge der Anforderungsdefinition in möglichst vollständige, eindeutige und konsistente Anforderungen umzusetzen, die als Ausgangspunkt für eine Realisierung des Systems dienen können.
Der deutsche Begriff Anforderungsdefinition ist im weiteren Sinn mit dem englischen Begriff Requirements Engineering gleichzusetzen. Zudem überdeckt sich der Begriffsinhalt mit jenem der Systemanalyse. Eine Unterscheidung kann mit Hinblick auf die Perspektive erfolgen: Während bei der Anforderungsdefinition die Formulierung von Anforderungen an ein Informationssystem im Vordergrund steht, liegt bei der Systemanalyse die Betonung auf das Verstehen und Modellieren von Informationssystemen.
Gewinnung von Anforderungen
[ein anonym bleibender IT-Leiter]
Anforderungen werden von den Auftraggebern einer Software-Entwicklung bzw. –Beschaffung gestellt. Diese wollen mit Informationstechnologie bestimmte Ziele erreichen. Im Zusammenhang mit der Nutzung eines Informationssystems können verschiedene Interessensgruppen (Stakeholder) von Bedeutung sein. Für die Anforderungsdefinition ist es von hoher Bedeutung, die relevanten Interessensgruppen zu identifizieren und ihre jeweiligen Anforderungen nach Möglichkeit angemessen zu berücksichtigen.
Die Gewinnung von Anforderung geschieht typischerweise über Befragungen. Eine übliche Erhebungstechnik besteht in der Durchführung eines un- oder semistrukturierten Interviews mit ausgewählten Repräsentanten der jeweiligen Interessensgruppe, deren Vorstellungen abgefragt werden. Jedoch können auch andere Techniken wie etwa Workshops eingesetzt werden, welche dem Ziel einer Ideenfindung und Konsensbildung in einer Gruppe dienen.
Die Erhebung von Anforderungen ist nicht trivial. Systemanalytiker müssen damit rechnen, dass die ermittelten Anforderungen nicht vollständig und widerspruchsfrei sind. Dafür kann es verschiedene Gründe geben. Die befragten Personen haben oftmals nur eine sie betreffende Teilperspektive auf das System. Außerdem sind ihnen vielleicht bestimmte Aspekte ihrer Arbeit nur unbewusst klar oder sie halten diese für selbstverständlich und kommunizieren sie daher nicht. Zudem haben sie typischerweise eine unklare Vorstellung von den Implikationen und Möglichkeiten eines erst noch zu realisierenden technischen Informationssystems. Es ist die Aufgabe der Systemanalytiker, die Benutzer dabei zu unterstützen, ihre Anforderungen zu artikulieren und mögliche Missverständnisse bei der Aufnahme der artikulierten Anforderungen zu klären.
Dokumentation von Anforderungen
Erhobene Anforderungen müssen systematisiert und schriftlich niedergelegt werden. Auf diese Weise werden die in den Köpfen der Beteiligten bestehenden Modelle sichtbar gemacht und gemeinsame Materialien geschaffen, auf deren Basis die beteiligten Parteien besser miteinander kommunizieren können. Diese dienen zum einen als Rückkopplung bei der Gewinnung von Anforderungen, zum anderen als Ausgangspunkt und Referenz für den weiteren Entwicklungsprozess. Je nach Phase und Rolle im Entwicklungsprozess wird diesbezüglich zwischen Lastenheften und Pflichtenheften unterschieden.
Die spezifizierten Anforderungen müssen bestimmten Qualitätsanforderungen genügen. Dazu gehört, dass die Anforderungen verständlich, eindeutig, vollständig, konsistent und überprüfbar sind. Mit Hinblick auf die allgemeine Verständlichkeit werden Anforderungen typischerweise vor allem in einer verbalen Form niedergelegt, allenfalls ergänzt um einfach verständliche Diagramme. Da Anforderungen weiter entwickelt werden und als Ausgangspunkt für die Systemspezifikation dienen, sollten sie zudem referenzierbar und rückverfolgbar sein.
Literatur
Balzert, Helmut: Lehrbuch der Software-Technik: Basiskonzepte und Requirements Engineering. 3. Auflage. Heidelberg: Spektrum 2009, S. 455 ff.
Rupp. C.: Requirements-Engineering und -Management: Professionelle, iterative Anforderungsanalyse für die Praxis. 4. Auflage. München, Wien : Hanser, 2007.
Scharbert, K.: Requirements Analysis realisieren: Praktischer Leitfaden für die Anforderungsanalyse in IT-Projekten – Kundenanforderungen erfragen, verstehen und spezifizieren. Vieweg+Teubner, 2005.
Schienmann, B.: Kontinuierliches Anforderungsmanagement: Prozesse – Techniken – Werkzeuge . München : Addison-Wesley, 2002.