Requirements definieren und verwalten oder Warum viele Software- oder Hardwareprojekte scheitern

2
Warum viele Software und/oder Hardware Projekte scheitern! Requirements Engineering wird heutzutage immer noch zu wenig beachtet. Dabei ist es ein grundlegender Baustein eines jeden Entwicklungsprozesses. Im folgenden möchten wir Requirements Management und Requirements Engineering in den Grundsätzen erklären, um dann auch noch auf die Einteilung in funktionale und nicht-funktionale Anforderungen einzugehen. Das Requirements Engineering (RE) befasst sich mit der Ermittlung, Beschreibung, Prüfung und dem Management von Anforderungen. Diese Anforderungen werden für Systeme und/oder Prozesse definiert. Die Hauptaufgabe liegt in der Ermittlung, Analyse und Gewichtung der Anforderungen in einer möglichst exakten Form, um eine qualitative Verbesserung der Anforderungsdefinition und eine Reduktion der Fehler zu erreichen. Das Anforderungsmanagement, auch requirements management genannt, ist ein Teilgebiet des Requirements Engineerings und damit eine zentrale Managementaufgabe zur effizienten und fehlerarmen Entwicklung komplexer Systeme. Dennoch wird häufig zu wenig Zeit aufgewendet, um Anforderungen zu definieren und in der Folge zu analysieren. Requirements-Experten arbeiten erfolgreich mit solchen Anforderungen und unterscheiden dabei funktionale Anforderungen und Qualitätsanforderungen: Funktionale Anforderungen geben an, was das Softwaresystem oder einzelne seiner Komponenten tun sollen Qualitätsanforderungen geben Kriterien für die Güte des Softwaresystems oder einzelner Systembestandteile an Dadurch kann Fehlern im System oder im fortlaufenden Prozess vorgebeugt werden. Maßgeblich im Managementprozess und der Verwaltung von Anforderungen ist das Festlegen von Rahmenbedingungen. Diese Anforderungen schränken die Realisierungsmöglichkeiten ein. Sie können folgenden Ursprung haben: Technologisch Organisatorisch Rechtlich Ethisch Formuliert und festgelegt werden Anforderungen durch Personen oder Organisationen mit Interesse am geplanten Prozess bzw. System. Dies können Nutzer, Entwickler oder Administratoren sein. Außerdem werden Anforderungen immer nach höchst möglicher Qualität und Sicherheit formuliert. Merkmale hierfür sind: Korrektheit Eindeutigkeit Prüfbarkeit Nachverfolgbarkeit

Transcript of Requirements definieren und verwalten oder Warum viele Software- oder Hardwareprojekte scheitern

Page 1: Requirements definieren und verwalten oder Warum viele Software- oder Hardwareprojekte scheitern

Warum viele Software und/oder Hardware Projekte scheitern!

Requirements Engineering wird heutzutage immer noch zu wenig beachtet. Dabei ist es ein grundlegender Baustein eines jeden Entwicklungsprozesses. Im folgenden möchten wir Requirements Management und Requirements Engineering in den Grundsätzen erklären, um dann auch noch auf die Einteilung in funktionale und nicht-funktionale Anforderungen einzugehen.

Das Requirements Engineering (RE) befasst sich mit der Ermittlung, Beschreibung, Prüfung und dem Management von Anforderungen. Diese Anforderungen werden für Systeme und/oder Prozesse definiert.

Die Hauptaufgabe liegt in der Ermittlung, Analyse und Gewichtung der Anforderungen in einer möglichst exakten Form, um eine qualitative Verbesserung der Anforderungsdefinition und eine Reduktion der Fehler zu erreichen.

Das Anforderungsmanagement, auch requirements management genannt, ist ein Teilgebiet des Requirements Engineerings und damit eine zentrale Managementaufgabe zur effizienten und fehlerarmen Entwicklung komplexer Systeme. Dennoch wird häufig zu wenig Zeit aufgewendet, um Anforderungen zu definieren und in der Folge zu analysieren.

Requirements-Experten arbeiten erfolgreich mit solchen Anforderungen und unterscheiden dabei funktionale Anforderungen und Qualitätsanforderungen:

• Funktionale Anforderungen geben an, was das Softwaresystem oder einzelne seiner Komponenten tun sollen

• Qualitätsanforderungen geben Kriterien für die Güte des Softwaresystems oder einzelner Systembestandteile an

Dadurch kann Fehlern im System oder im fortlaufenden Prozess vorgebeugt werden. Maßgeblich im Managementprozess und der Verwaltung von Anforderungen ist das Festlegen von Rahmenbedingungen. Diese Anforderungen schränken die Realisierungsmöglichkeiten ein. Sie können folgenden Ursprung haben:

• Technologisch • Organisatorisch • Rechtlich • Ethisch

Formuliert und festgelegt werden Anforderungen durch Personen oder Organisationen mit Interesse am geplanten Prozess bzw. System. Dies können Nutzer, Entwickler oder Administratoren sein. Außerdem werden Anforderungen immer nach höchst möglicher Qualität und Sicherheit formuliert. Merkmale hierfür sind:

• Korrektheit • Eindeutigkeit • Prüfbarkeit • Nachverfolgbarkeit

Page 2: Requirements definieren und verwalten oder Warum viele Software- oder Hardwareprojekte scheitern

Im Requirements Managementprozess betrachten Spezialisten die Menge aller Anforderungen, die an ein System gestellt werden. So muss jede Anforderung einmalig sein, darf sich nicht mit anderen Anforderungen überschneiden (Normalisierung) oder im Widerspruch stehen (Konsistenz). Zudem müssen sowohl die einzelne Anforderung als auch die Anforderungsmenge vollständig sein.

Fazit:

Im Kern zielt die Arbeit der Requirements-Spezialisten darauf ab, Anforderungen zu ermitteln, zu spezifizieren, exakt zu analysieren und genau zu prüfen, damit Qualitätssicherheit und Produktplanung für Kunden und Hersteller gewährleisten werden können.

Der Anspruch an Sicherheit und Qualität ist dabei hoch. Dies liegt auch häufig am sicherheitskritischen Umfeld der Systeme und Produkte die es zu verwalten gilt. Um dies zu garantieren wenden Experten beispielsweise folgende Techniken zum Ermitteln von Anforderungen an:

• vorhandene Softwaresysteme • Dokumente (Dokumentenanalyse wie z.B. Benutzerdokumente, Fehlerberichte,

Referenzmodelle) • Befragung von Nutzern im Umgang mit dem System

Was ist nun der Unterschied von funktionalen Anforderungen zu nicht-funktionalen Requirements?

Funktionale Anforderungen beschreiben die gewünschte Funktionalität eines Systems bzw. Produkts. Nicht-funktionale Anforderungen hingegen sind Anforderungen, an die "Qualität" des Produktes oder Systems z.B. Funktionalitätskriterien zur Reaktionszeit eines Systems.

Nicht-funktionale Eigenschaften sind mindestens so wichtig wie die funktionalen, mitunter sind sie sogar wettbewerbsentscheidend. Ihre Spezifikation macht jedoch besondere Schwierigkeiten, denn sie werden häufig erst wirklich messbar, wenn das Gesamtsystem steht. Außerdem beeinflussen sich nicht-funktionale Anforderungen gegenseitig und machen Vorgänger komplex. Deshalb sind nicht-funktionale Anforderungen schwieriger zu implementieren und zu gewährleisten, weil sie bereits zu Beginn des Entwicklungsprozesses vernachlässigt werden. Aus Zeitmangel oder weil sie zu einem frühen Zeitpunkt schwieriger zu spezifizieren sind.

Fehler, die in einer frühen Phase der Systementwicklung gemacht und erst in späteren Phasen behoben werden, sorgen jedoch für einen Schneeballeffekt, bei dem sich die Fehler fortpflanzen. Das bedeutet, dass die Integration nicht-funktionaler Anforderungen zu einem späteren Projektzeitpunkt deutlich zeitintensiver und teurer ist.

Spezialisten im Bereich Requirements Management sind also hoch qualifizierte und gefragte Mitarbeiter und/oder Projektleiter, die maßgeblich an der erfolgreichen Herstellung eines Produktes oder der Umsetzung eines Systems beteiligt sind.

Möchten Sie mehr zu diesem Thema erfahren? Wir informieren Sie gerne.

Beitrag  von:  Unternehmenskooperation  unitepeople  GmbH  –  AVIDOK  Engineering  Support  GmbH  -­‐  unitepeople.de  /  avidok.de