Anforderungsmanagement

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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.

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.

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]

Ein von der Deutschen Automobilindustrie heraus entwickelter Standard zum einheitlichen Austausch von Anforderungen ist das 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. Der Standard wird durch Prostep ivip von Projektpartnern stets weiterentwickelt (Stand 2022).

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.

Zudem existieren mehrere grafische Notationen zur Modellierung und Dokumentation von Anforderungen und Zielen. Dabei handelt es sich u. a. um die künstlichen Sprachen:

Anforderungsmanagement-Software

[Bearbeiten | Quelltext bearbeiten]

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.

Standardwerke (mit mindestens 2. Auflage):

  • Klaus Pohl: Requirements Engineering. Grundlagen, Prinzipien, Techniken. 2. Auflage. dpunkt.verlag, Heidelberg 2008, ISBN 978-3-89864-550-8.
  • Helmut Balzert: Lehrbuch der Softwaretechnik. Basiskonzepte und Requirements Engineering. 3. Auflage. Spektrum, Heidelberg 2009, ISBN 978-3-8274-1705-3.
  • Helmuth Partsch: Requirements-Engineering systematisch. 2. Auflage. Springer, Berlin / Heidelberg 2010, ISBN 978-3-642-05357-3.
  • Marcus Grande: 100 Minuten für Anforderungsmanagement. Kompaktes Wissen nicht nur für Projektleiter und Entwickler. 2. Auflage. Springer Vieweg, Wiesbaden 2014, ISBN 978-3-658-06435-8.
  • Inge Hanschke, Gunnar Giesinger, Daniel Goetze: Business Analyse – einfach und effektiv. Geschäftsanforderungen verstehen und in IT-Lösungen umsetzen. 2. Auflage. Hanser, München 2016, ISBN 978-3-446-44345-7.
  • Peter Hruschka: Business Analysis und Requirements Engineering. Produkte und Prozesse nachhaltig verbessern. 2. Auflage. Hanser, München 2019, ISBN 978-3-446-45589-4.
  • Markus Unterauer: Workshops im Requirements Engineering. Methoden, Checklisten und Best Practices für die Ermittlung von Anforderungen. 2. Auflage. dpunkt.verlag, Heidelberg 2020, ISBN 978-3-86490-695-4.
  • Chris Rupp, die SOPHISTen: Requirements-Engineering und -Management. 7. Auflage. Hanser Verlag, München 2021, ISBN 978-3-446-45587-0.
  • Klaus Pohl, Chris Rupp: Basiswissen Requirements Engineering. Aus- und Weiterbildung nach IREB-Standard zum Certified Professional for Requirements Engineering Foundation Level. 5. Auflage. dpunkt.verlag, Heidelberg 2021, ISBN 978-3-86490-814-9.
  • Christof Ebert: Systematisches Requirements Management. Anforderungen ermitteln, dokumentieren, analysieren und verwalten. 7. Auflage. dpunkt.verlag, Heidelberg 2022, ISBN 978-3-86490-919-1.
  • Johannes Bergsmann: Requirements Engineering für die agile Softwareentwicklung. Methoden, Techniken und Strategien. 3. Auflage. dpunkt.verlag, Heidelberg 2022, ISBN 978-3-86490-929-0.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Karl Wiegers, Joy Beatty: Software Requirements. 3. Auflage. Microsoft Press, 2013, ISBN 978-0-7356-7966-5.
  2. 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.
  3. ISO/IEC/IEEE 29148:2011 – Systems and software engineering – Life cycle processes – Requirements engineering. Abgerufen am 8. Februar 2018 (englisch).
  4. Scott Bradner: RFC 2119 – Key words for use in RFCs to Indicate Requirement Levels. (englisch).
  5. RE for Testers – Requirements Engineering Magazine. International Requirements Engineering Board (IREB), abgerufen am 16. August 2019 (englisch).