E-Book, Deutsch, 268 Seiten
Reihe: Basiswissen
Pohl / Rupp Basiswissen Requirements Engineering
überarbeitete und aktualisierte Auflage
ISBN: 978-3-96910-245-9
Verlag: dpunkt
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Aus- und Weiterbildung nach IREB-Standard zum Certified Professional for Requirements Engineering Foundation Level
E-Book, Deutsch, 268 Seiten
Reihe: Basiswissen
ISBN: 978-3-96910-245-9
Verlag: dpunkt
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Kompaktes Grundlagenwerk für den Requirements Engineer
Standardwerk in 5. Auflage
konform zum IREB-Lehrplan Version 3.0
mit interaktiven Elementen: animierte Grafiken, Videos
Dieses Lehrbuch umfasst den erforderlichen Stoff zum Ablegen der Prüfung "Certified Professional for Requirements Engineering (Foundation Level)" nach IREB-Standard. Es vermittelt das Grundlagenwissen und behandelt die wesentlichen Prinzipien und Praktiken sowie wichtige Begriffe und Konzepte. Die Themen im Einzelnen:
- Grundlegende Prinzipien des Requirements Engineering
- Arbeitsprodukte und Dokumentationspraktiken
- Praktiken für die Erarbeitung von Anforderungen
- Prozess und Arbeitsstruktur
- Praktiken für das Requirements Management
- Werkzeugunterstützung
Das Buch eignet sich gleichermaßen für das Selbststudium, zur Vorbereitung auf die Zertifizierung sowie als kompaktes Basiswerk zum Thema in der Praxis und an Hochschulen.
Die 5. Auflage wurde komplett überarbeitet, ist konform zum IREB-Lehrplan Foundation Level Version 3.0 und wurde angereichert mit interaktiven Elementen wie animierte Grafiken und Videos.
Autoren/Hrsg.
Weitere Infos & Material
1 Einleitung und Grundlagen
Die Bedeutung des Requirements Engineering für die erfolgreiche, den Kunden1 zufriedenstellende Entwicklung von Systemen ist mittlerweile nicht mehr zu übersehen. In der Praxis ist es üblich, einen entsprechenden Aufwand für das Requirements Engineering einzuplanen. Der Requirements Engineer ist dementsprechend meist eine eigenständige Rolle im Projekt mit anspruchsvollen Tätigkeiten. 1.1 Requirements Engineering – Was?
Um ein Entwicklungsprojekt zum Erfolg zu führen, muss zunächst bekannt sein, was die Anforderungen an das System sind. Definition 1–1: Anforderung Eine Anforderung ist: (1) Ein notwendiges Bedürfnis eines Stakeholders. (2) Eine Fähigkeit oder Eigenschaft, die ein System erfüllen muss. (3) Eine dokumentierte Repräsentation eines Bedürfnisses, einer Fähigkeit oder Eigenschaft. Übersetzta aus [IREB-Glossar 2020] a. Die Begriffe sind im IREB-Glossar sowohl in Deutsch als auch in Englisch angegeben, die Definition aber nur in Englisch. Die Bedeutung der Stakeholder Stakeholder (Interesseneigner) ist einer der zentralen Begriffe im Requirements Engineering. Stakeholder dienen u.a. als wichtigste Quellen für Anforderungen, und das Übersehen eines Stakeholders hat häufig zur Konsequenz, dass die ermittelten Anforderungen an das System lückenhaft sind [Macaulay 1993]. Stakeholder sind also alle diejenigen Personen oder Organisationen, die Anforderungen in irgendeiner Weise beeinflussen. Das können natürliche Personen sein, die das System später nutzen werden (z.B. Nutzer oder Administrator), und natürliche Personen, die Interesse an dem System haben, es aber nicht nutzen werden oder sollen (z.B. das Management oder Hacker, vor denen man das System schützen muss). Stakeholder können aber auch juristische Personen oder Institutionen sein, die allerdings durch natürliche Personen vertreten werden müssen, die die Anforderungen des betrachteten Systems beeinflussen bzw. definieren können. Definition 1–2: Stakeholder (Interesseneigner) Ein Stakeholder ist eine Person oder Organisation, die Einfluss auf die Anforderungen des Systems hat oder auf die das System Auswirkungen hat. Übersetzt aus [IREB-Glossar 2020] Anforderungen werden für eine Vielzahl von Dingen erhoben, die im Requirements Engineering häufig alle vereinfacht als Systeme bezeichnet werden. Hierzu zählen: Dem Kunden zur Verfügung gestellte Produkte
Hierunter werden häufig klassische Softwaresysteme verstanden, die an den Kunden ausgeliefert werden. Daneben finden sich vermehrt Systeme mit einem Softwareanteil, die aber auch Hardware oder mechatronische Bestandteile umfassen. Dem Kunden zur Verfügung gestellte Dienstleistungen
Neben den zuvor angesprochenen Systemen, die als Produkt an den Kunden ausgeliefert werden, zählen hierzu beispielsweise Services, die zur Verfügung gestellt werden. Andere Arbeitsergebnisse
Neben Softwareprodukten und Dienstleistungen können Stakeholder aber auch Anforderungen an andere Systeme definieren. Dies können u.a. Arbeitsprodukte, Geräte, Hardwarebauteile oder beliebige Subsysteme oder Komponenten eines Systems umfassen, die benötigt werden, um ein bestimmtes Ziel der Stakeholder zu erreichen. Zusammensetzungen oder Bestandteile der oben genannten Dinge. Also beispielsweise Komponenten oder sonstige Zulieferungen für Systeme des Kunden. Ziel des Requirements Engineering Dem Requirements Engineering im Entwicklungsprozess kommt die Aufgabe zu, die Anforderungen der Stakeholder zu ermitteln, zweckmäßig zu dokumentieren, zu überprüfen und abzustimmen sowie die dokumentierten Anforderungen über den gesamten Lebenszyklus des Systems hinweg zu verwalten. Definition 1–3: Requirements Engineering Das Requirements Engineering ist ein systematischer und disziplinierter Ansatz zur Spezifikation und zum Management von Anforderungen mit dem Ziel, die Wünsche und Bedürfnisse der Stakeholder zu verstehen und die Gefahr zu minimieren, ein System auszuliefern, das diese Wünsche und Bedürfnisse nicht erfüllt. Übersetzt aus [IREB-Glossar 2020] Im Allgemeinen unterscheidet man zwischen drei Arten von Anforderungen: Funktionale Anforderungen Qualitätsanforderungen Randbedingungen (Constraints) Funktionale Anforderungen legen die Funktionalität fest, die das geplante System zur Verfügung stellen soll. Sie werden typischerweise in Funktions-, Verhaltens- und Strukturanforderungen unterteilt. Definition 1–4: Funktionale Anforderung Eine funktionale Anforderung ist eine Anforderung bezüglich des Ergebnisses oder des Verhaltens, das von einer Funktion des Systems bereitgestellt werden soll. Übersetzt aus [IREB-Glossar 2020] Qualitätsanforderungen legen gewünschte Qualitäten des zu entwickelnden Systems fest und beeinflussen häufig – in größerem Umfang als die funktionalen Anforderungen – die Gestalt der Systemarchitektur. Typischerweise beziehen sich Qualitätsanforderungen auf die Performance, die Verfügbarkeit, die Zuverlässigkeit, die Skalierbarkeit oder die Portabilität des betrachteten Systems. Definition 1–5: Qualitätsanforderung Eine Qualitätsanforderung ist eine Anforderung, die sich auf ein Qualitätsmerkmal bezieht, das nicht durch funktionale Anforderungen abgedeckt wird. Übersetzt aus [IREB-Glossar 2020] Zusammenhang zwischen funktionalen Anforderungen und Qualitätsanforderungen Qualitätsanforderungen stehen häufig mit verschiedenen funktionalen Anforderungen in Beziehung. Qualitätsanforderungen können etwa funktionale Anforderungen weiter konkretisieren oder ihre Umsetzung wird durch funktionale Anforderungen beschrieben. Dennoch empfiehlt es sich, Qualitätsanforderungen und funktionale Anforderungen getrennt voneinander zu spezifizieren. Zudem sollte der Bezug von Qualitätsanforderungen und funktionalen Anforderungen nachvollziehbar dokumentiert werden, um eine größtmögliche Nachvollziehbarkeit zu erreichen. Exkurs: Qualitätsanforderungen In der Praxis werden die Qualitätsanforderungen eines Systems häufig nur unzureichend dokumentiert und zwischen Stakeholdern abgestimmt. Dies gefährdet den Projekterfolg oder die spätere Akzeptanz des entwickelten Systems erheblich. Der Requirements Engineer sollte daher im Entwicklungsprozess eines Systems möglichst frühzeitig besonderes Augenmerk auf die Ermittlung, Dokumentation und Abstimmung der Qualitätsanforderungen legen. Typischerweise werden sehr unterschiedliche Qualitäten eines Systems der Anforderungsart »Qualitätsanforderung« zugeordnet. Um auf strukturierte Art und Weise mit den Qualitätsanforderungen eines Systems umgehen zu können, wurden verschiedenste Kategorisierungen von Qualitätsanforderungen vorgeschlagen. Beispielsweise schlägt der Standard [ISO/IEC 25010:2011] eine Kategorisierung für Qualitätsanforderungen vor, die als Standardstruktur für die Dokumentation von Qualitätsanforderungen und als Checkliste zur Ermittlung und Überprüfung von Qualitätsanforderungen dienen kann. Typische Kategorien dieses Standards sind: Anforderungen, die die Leistung des Systems definieren, insbesondere das Antwortzeitverhalten und der Ressourcenverbrauch. Anforderungen, die die Sicherheit des Systems definieren, beispielsweise die Nachweisbarkeit, Authentizität, Vertraulichkeit und Integrität, aber auch der Schutz des Nutzers vor körperlichen Schäden. Anforderungen, die die Zuverlässigkeit der Funktionalität des Systems definieren, insbesondere in Bezug auf Verfügbarkeit, Fehlertoleranz und Wiederherstellbarkeit. Anforderungen, die die Benutzbarkeit des Systems definieren, insbesondere in Bezug auf Barrierefreiheit, Erlernbarkeit und Bedienbarkeit. Anforderungen, die die Änderbarkeit (Wartbarkeit) des Systems definieren, insbesondere in Bezug auf die Wiederverwendbarkeit, Analysierbarkeit, Modifizierbarkeit und Prüfbarkeit. Anforderungen, die die Übertragbarkeit des Systems definieren, insbesondere in Bezug auf Anpassbarkeit, Installierbarkeit und Austauschbarkeit. Anforderungen einiger der o.g. Kategorien werden vorherrschend für einzelne Funktionen definiert (z.B. Leistung, Zuverlässigkeit), andere meist für das gesamte System gefordert (z.B. Änderbarkeit, Übertragbarkeit). Qualitätsanforderungen werden gegenwärtig meist in natürlicher Sprache formuliert, da eine formalere Beschreibung nur mit viel Aufwand und Expertise durchgeführt werden...