Das Scheitern von IT - Projekten ist eines der größten Probleme der IT - Branche. Wie die CHAOS Studie der Standish Group 1998 darlegte, sind lediglich 26% aller Softwareentwicklungsprojekte erfolgreich und 28% scheitern ganz. Als Hauptgrund wird angeführt, dass die Anforderungen an das System nur unzureichend oder schlecht formuliert sind und dass Änderungen an bereits vorhandenen Anforderungen nicht zentral verwaltet werden. Somit kommt es im Laufe des Projekts ständig zu Problemen, da nicht alle Beteiligte auf die jeweils aktuellen Anforderungen Zugriff haben.
„Das Requirements Engineering befasst sich mit dem Auffinden, dem Verstehen, der Dokumentation und der Überprüfung von Anforderungen an ein System. Es beschreibt einen systematischen Weg von der Projektidee über die Ziele zu einem vollständigen Satz von Anforderungen.“ Neben dem Vorgehen werden auch Qualitätsmerkmale definiert, die jede einzelne Anforderung, aber auch das gesamte Anforderungsdokument erfüllen müssen. Es werden systematische Techniken und Methoden eingesetzt, um die Anforderungen zu erheben, diese dann darzustellen und zu prüfen. Das Ergebnis dieser Tätigkeiten ist die Anforderungsspezifikation, die sich im Projektverlauf ändert und folglich aktualisiert werden muss. Dazu benötigt es das Requirements Management, das als ein Bestandteil des Requirements Engineering angesehen werden kann.
Inhaltsverzeichnis
I. Motivation für Requirements
II. Requirements Engineering – oder wie dokumentiere ich Anforderungen
1. Die Probleme und ihre Ursachen
2. Was sind Requirements?
2.1. Definition
2.2. Klassifikation
2.3. Qualitätskriterien für Anforderungen
3. Beteiligte Personen – Stakeholder
III. Requirements Engineering Prozess
1. Ermittlung von Anforderungen (Requirements Elicitation)
2. Anforderungsanalyse
2.1. Prozessschritte
2.2. Probleme in der Anforderungsanalyse
3. Spezifikation von Anforderungen (Specification)
3.1. Definition
3.2. Qualitätskriterien
3.3. Abgrenzung Lastenheft / Pflichtenheft
4. Validierung / Verifikation von Anforderungen
5. Management von Anforderungen
IV. Fazit
V. Quellenverzeichnis
I. Motivation für Requirements
Das Scheitern von IT - Projekten ist eines der größten Probleme der IT - Branche. Wie die CHAOS Studie der Standish Group[1] 1998 darlegte, sind lediglich 26% aller Softwareentwicklungsprojekte erfolgreich und 28% scheitern ganz[2]. Als Hauptgrund wird angeführt, dass die Anforderungen an das System nur unzureichend oder schlecht formuliert sind und dass Änderungen an bereits vorhandenen Anforderungen nicht zentral verwaltet werden. Somit kommt es im Laufe des Projekts ständig zu Problemen, da nicht alle Beteiligte auf die jeweils aktuellen Anforderungen Zugriff haben[3].
II. Requirements Engineering – oder wie dokumentiere ich Anforderungen
„Das Requirements Engineering befasst sich mit dem Auffinden, dem Verstehen, der Dokumentation und der Überprüfung von Anforderungen an ein System. Es beschreibt einen systematischen Weg von der Projektidee über die Ziele zu einem vollständigen Satz von Anforderungen.“[4] Neben dem Vorgehen werden auch Qualitätsmerkmale definiert, die jede einzelne Anforderung, aber auch das gesamte Anforderungsdokument erfüllen müssen. Es werden systematische Techniken und Methoden eingesetzt, um die Anforderungen zu erheben, diese dann darzustellen und zu prüfen. Das Ergebnis dieser Tätigkeiten ist die Anforderungsspezifikation, die sich im Projektverlauf ändert und folglich aktualisiert werden muss. Dazu benötigt es das Requirements Management, das als ein Bestandteil des Requirements Engineering angesehen werden kann.
1. Die Probleme und ihre Ursachen
Ein System kann aus verschiedenen Gründen unbrauchbar sein. Diese Probleme werden in verschiedenen Kategorien zusammengefasst:
- Prozess: Der Entwicklungsprozess selbst ist fehlerhaft, so dass z.B. Budgets und Zeitvorgaben nicht eingehalten werden können
- Interaktion: Das Softwaresystem arbeitet zwar korrekt, stellt aber nur einen geringen Nutzen für die Anwender dar
- Erwartungen: Die Erwartungen mindestens einer Interessengruppe (außer den Anwendern) konnten nicht erfüllt werden.
Die Ursachen für die Probleme lassen sich in folgenden Punkten unterteilen:
- Entwicklungsprozess: Fehlen eines Vorgehensmodells, Vernachlässigung oder mangelhafte Organisation der früheren Entwicklungsphasen
- Kommunikation: mangelhafte Kommunikation zwischen allen Beteiligten
- Wissen: mangelhaftes Wissen und Verständnis sowie unzureichende Einsicht der Beteiligten bezüglich des Gesamtsystems
- Dokumentation: fehlerhafte, unvollständige oder ungenaue Dokumentation von Anforderungen
- Management: falsches Management von Personen und Ressourcen.
Das Ziel des Requirements Engineering ist die Behandlung der o. g. Ursachen um die Probleme effizient zu lösen. Diese Aufgaben sind in der folgenden Definition enthalten:
Requirements Engineering can be defined as the systematic process of developing requirements through an iterative co-operative process of analysing the problem, documenting the resulting observations in a variety of representation formats, and checking the accuracy of the understanding gained.[5]
Um den Begriff und die Aufgaben des Requirements Engineering besser verstehen zu können, sind zunächst die folgenden Fragen zu klären:
2. Was sind Requirements?
2.1. Definition
Requirements sind detaillierte Aussagen über zu erfüllende Eigenschaften oder zu erbringende Leistungen eines Erzeugnisses, eines Prozesses oder der an einem Projekt Beteiligten.
Für den Begriff Anforderung oder Englisch „Requirement“ gibt es in der Literatur viele Definitionen.
Nach IEEE 610.12 – 1990 ist eine Anforderung[6]:
- Eine Bedingung oder Fähigkeit, die von einer Person zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt wird.
- Eine Bedingung oder Fähigkeit, die eine Software erfüllen oder besitzen muss, um einen Vertrag, eine Norm oder ein anderes, formell bestimmtes Dokument zu erfüllen.
“Requirements are things that you should discover before starting to build your product.., something that the product must do or a quality that the product must have”[7].
2.2. Klassifikation
Die Anforderungen werden in der Literatur unterschiedlich unterteilt:
- Funktionale Requirements beschreiben die durch das Produkt auszuführende Funktionalität oder was das System (Produkt) aufgrund seiner Aufgabenstellung können muss[8] (z.B. ein Bibliothekensystem soll dem Nutzer die Suche nach einem Leihobjekt durch die Angabe von Titel, Autor oder ISBN ermöglichen)
[...]
[1] Vgl. [STGR]
[2] Vgl. [Youn01] S. 4
[3] Vgl. [CHAO98] S. 1
[4] Vgl. [Rupp01] S. 12
[5] Vgl. [POH93]
[6] Vgl. [IEEE90] und [Glin02] S. 3
[7] Vgl. [RobSJ] S. 1 und 5
[8] Vgl. [RobSJ] S. 5
-
-
-
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X.