Anforderungsmanagement
Anforderungsmanagement (AM; englisch requirements management, RM) umfasst Maßnahmen zur Steuerung, Kontrolle und Verwaltung von Anforderungen: Risikomanagement, Änderungsmanagement und Umsetzungsmanagement. Es dient der effizienten und fehlerarmen Entwicklung komplizierter Systeme, an denen arbeitsteilig gearbeitet wird. Denn Probleme mit Anforderungen resultieren zumeist aus mangelndem Management ebendieser. Alleine das Aufstellen von Anforderungen reicht nicht aus, sondern für die Planung und Realisierung eines Produktes oder Systems ist ebenso der Prozess des Anforderungsmanagements notwendig.
Anforderungsmanagement ist ein Teilgebiet des Requirements Engineerings (RE) und der Business-Analyse. Deren weitere Disziplinen sind z. B. Anforderungsdefinition, Anforderungsanalyse, Anforderungsdokumentation, Anforderungsvalidierung.
Ziele
Das Ziel des Anforderungsmanagements ist es, ein gemeinsames Verständnis über ein zu entwickelndes System zwischen Auftragnehmer und Auftraggeber zu erreichen. Dieses gemeinsame Verständnis kann durch die Einführung und Umsetzung von Anforderungsmanagementmethoden (u. a. Scoping, Anforderungsanalyse, Anforderungsspezifikation, Anforderungsmodellierung, Anforderungsreviews) erreicht werden. Durch den Einsatz dieser Methoden kann die Aktualität und Qualität der Anforderungsdokumentation gesteigert werden. Qualitätskriterien einer Anforderungsdokumentation sind u. a. Verständlichkeit, Eindeutigkeit, Nachweisbarkeit (Rückverfolgbarkeit), Widerspruchsfreiheit, Vollständigkeit, Testbarkeit.[1] Zur halbautomatischen Prüfung einiger Qualitätskriterien kann, in Anlehnung an Code-Smells, in der Anforderungsdokumentation nach sogenannten Requirements Smells gesucht werden, die potenzielle Probleme im Text aufdecken.[2] Zugleich dienen die resultierenden Dokumente häufig für die Erstellung von Testfällen und als vertragliche Basis für die Umsetzung.
Normen
Anforderungsmanagement gehört zu den Prozessen in den Software- und System-Reifegrad-Modellen CMMI und ISO/IEC 15504 (SPICE) sowie im Standard ISO/IEC 12207. Anforderungen und Charakteristiken für die Erstellung von Anforderungen sind in der ISO/IEC/IEEE 29148 beschrieben.[3] Weiterhin wird auf RFC 2119 referenziert.[4]
In Deutschland hat sich ein Standard zum einheitlichen Austausch von Anforderungen etabliert: Requirements Interchange Format (ReqIF™, ehemals RIF). ReqIF wird durch ein XML-Schema definiert und ist ein Format und Datenmodell, das Strukturen für Anforderungen, deren Attribute, Typen, Zugriffsrechte, Relationen (Links) enthält.
Sprache
Ziel einer Anforderungsspezifikation (u. a. Lastenheft, Pflichtenheft, Fachkonzept) ist es, die Anforderungen so zu formulieren, dass zwischen dem Auftraggeber und Auftragnehmer ein gemeinsames Verständnis über das zu entwickelnde System geschaffen wird. Zur Darstellung wird natürliche Sprache verwendet oder eine formalisierte natürliche Sprache mit eingeschränktem Vokabular und festen Satzkonstruktionen, z. B. Satz-Schablonen oder Requirements Templates. Dabei sollten Regeln eingehalten werden, um die Qualität der Anforderungen zu verbessern. Empfehlenswert ist beispielsweise, kurze Sätze zu formulieren, ungenaue Adjektive und Adverbien nicht zu verwenden (sogenannte „schwache Wörter“, wie z. B. schneller, schöner, automatisch, circa), sowie Passiv (z. B. „Es kann berechnet werden“) zu vermeiden, sondern stattdessen das handelnde System zu nennen, und Konjunktiv (z. B. „müsste“ oder „sollte“) zu vermeiden.
Anforderungen sollten nicht nur Aussagen über gewünschte Eigenschaften eines Produkts oder Systems treffen, sondern auch Kriterien beinhalten, wie diese Eigenschaften überprüft werden können (Akzeptanzkriterien).[5] Diese Kriterien dienen der Qualität der Anforderungen selbst, da sie zu einer inhaltlichen Überprüfung der Anforderung anregen.
Daneben kommen künstliche Sprachen zur Modellierung wie z. B. UML oder Message Sequence Charts (MSC) zum Einsatz, um Anforderungen zu dokumentieren.
Anforderungsmanagement-Software
Um ein Anforderungsmanagement besser zu strukturieren, Redundanzen zu reduzieren sowie Versions-/Konfigurationsmanagement und Rückverfolgbarkeit (engl. Requirements Traceability) zu ermöglichen, wird spezialisierte Software eingesetzt. Diese basiert in aller Regel auf einer Datenbank, in der die Einzel-Requirements gespeichert und im Zeitverlauf weiterverfolgt werden. Zu den Requirements wird der Start ihrer Bearbeitung, die Erreichung von Meilensteinen und der (erfolgreiche) Abschluss der Arbeit vermerkt. Die Software ermöglicht es meist auch Anforderungen in Beziehung zu setzen. So können zum Beispiel Systemanforderungen auf Kundenanforderungen zurückgeführt werden. Ist diese Beziehung nicht ersichtlich, liegt möglicherweise ein Overengineering vor. Genauso können Tests mit den Anforderungen in Beziehung gesetzt werden.
Werden Standard-Programme zur Textverarbeitung oder Tabellenkalkulation anstelle spezialisierter Software eingesetzt, können die soeben beschriebenen Verfolgbarkeit und Beziehungen häufig nicht oder nur aufwändig gepflegt werden.
Siehe auch
- Feature-Request
- Volere – Ressourcen zur Anforderungsanalyse
- Epic (Anforderungsmanagement)
Literatur
- C. Ebert: Systematisches Requirements Management. 6. Auflage, München 2019. ISBN 978-3-86490-562-9.
- R. Fahney, Th. Gartung u. a.: Requirements Engineering und Projektmanagement. Berlin 2013. ISBN 978-3-642-29431-0.
- C. Hood, S. Wiedemann u. a.: Requirements Management: Interface Between Requirements Development and All Other Systems Engineering Processes. Berlin 2008. ISBN 978-3-540-47689-4.
- K. Pohl, C. Rupp: Basiswissen Requirements Engineering. 4. Auflage, München 2015, ISBN 978-3-86490-283-3.
- Chris Rupp & Die SOPHISTen: Requirements-Engineering und -Management: Aus der Praxis von klassisch bis agil. 6. Auflage, München 2014. ISBN 978-3-446-43893-4.
Einzelnachweise
- Karl Wiegers, Joy Beatty: Software Requirements. 3. Auflage. Microsoft Press, U.S. 2013, ISBN 978-0-7356-7966-5.
- Henning Femmer, Daniel Méndez Fernández, Stefan Wagner, Sebastian Eder: Rapid quality assurance with Requirements Smells. In: Journal of Systems and Software. Band 123, 2017, S. 190–213, doi:10.1016/j.jss.2016.02.047, arxiv:1611.08847.
- ISO/IEC/IEEE 29148:2011 - Systems and software engineering -- Life cycle processes -- Requirements engineering. Abgerufen am 8. Februar 2018 (englisch).
- Scott Bradner: Key words for use in RFCs to Indicate Requirement Levels. Abgerufen am 5. Juni 2020 (englisch).
- International Requirements Engineering Board (IREB): RE for Testers – Requirements Engineering Magazine. Abgerufen am 16. August 2019 (englisch).