In der Ingenieurwissenschaft bezeichnet eine Anforderung eine Bedingung, die erfüllt sein muss, damit das Ergebnis einer Arbeitsleistung als akzeptabel gilt. Es handelt sich um eine explizite, objektive, klare und oft quantitative Beschreibung einer Bedingung, die ein Material, eine Konstruktion, ein Produkt oder eine Dienstleistung erfüllen muss. [ 1 ]

Eine Spezifikation oder Spec ist eine Reihe von Anforderungen, die typischerweise von Entwicklern in der Entwurfsphase der Produktentwicklung und von Testern im Rahmen des Verifizierungsprozesses verwendet werden.

Bei iterativen und inkrementellen Entwicklungsmethoden wie der agilen Softwareentwicklung werden die Anforderungen parallel zu Design und Implementierung erarbeitet. Beim Wasserfallmodell hingegen sind die Anforderungen vor Beginn von Design oder Implementierung abgeschlossen.

Anforderungen werden in vielen Ingenieurdisziplinen verwendet, darunter Konstruktion , Systemtechnik , Softwareentwicklung , Unternehmensentwicklung , Produktentwicklung und Prozessoptimierung.

Der Begriff „Anforderung“ ist relativ weit gefasst und kann jede notwendige oder gewünschte Funktion, Eigenschaft, Fähigkeit, Charakteristik oder Qualität eines Systems beschreiben, damit dieses für einen Kunden, eine Organisation, einen Benutzer oder einen anderen Interessengruppen Wert und Nutzen hat.

Ursprung des Begriffs

Der Begriff „ Anforderung“ ist in der Softwareentwicklungsgemeinschaft mindestens seit den 1960er Jahren gebräuchlich. [ 2 ]

Gemäß dem Leitfaden zum Business Analysis Body of Knowledge® Version 2 des IIBA (BABOK) [ 3 ] ist eine Anforderung:

  1. Eine Bedingung oder Fähigkeit, die ein Interessensvertreter benötigt, um ein Problem zu lösen oder ein Ziel zu erreichen.
  2. Eine Bedingung oder Fähigkeit, die von einer Lösung oder einer Lösungskomponente erfüllt oder besessen werden muss, um einem Vertrag, einer Norm, einer Spezifikation oder anderen formal auferlegten Dokumenten zu genügen.
  3. Eine dokumentierte Darstellung eines Zustands oder einer Fähigkeit wie in (1) oder (2).

Diese Definition basiert auf IEEE 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology. [ 4 ]

Produkt- versus Prozessanforderungen

Die Anforderungen lassen sich in zwei Bereiche einteilen:

  • Produktanforderungen legen die Eigenschaften eines Systems oder Produkts fest.
  • Prozessanforderungen legen die von der sich entwickelnden Organisation durchzuführenden Aktivitäten fest. Beispielsweise können Prozessanforderungen die einzuhaltenden Methoden und die von der Organisation zu beachtenden Einschränkungen spezifizieren.

Produkt- und Prozessanforderungen sind eng miteinander verknüpft. Eine Produktanforderung spezifiziert die zur Unterstützung einer Prozessanforderung notwendige Automatisierung, während eine Prozessanforderung die zur Unterstützung einer Produktanforderung erforderlichen Aktivitäten festlegt. Beispielsweise kann eine maximale Entwicklungskostenvorgabe (eine Prozessanforderung) festgelegt werden, um eine maximale Verkaufspreisvorgabe (eine Produktanforderung) zu erreichen. Die Anforderung, dass das Produkt wartungsfreundlich sein muss (eine Produktanforderung), wird häufig durch die Festlegung von Anforderungen an bestimmte Entwicklungsstile (z. B. objektorientierte Programmierung ), Styleguides oder einen Prüf-/Inspektionsprozess (Prozessanforderungen) erfüllt.

Arten von Anforderungen

Anforderungen werden typischerweise in Typen klassifiziert, die in verschiedenen Phasen eines Entwicklungsprozesses entstehen, wobei die Taxonomie vom verwendeten Gesamtmodell abhängt. Beispielsweise wurde das folgende Schema vom International Institute of Business Analysis in seinem Business Analysis Body of Knowledge [ 5 ] entwickelt (siehe auch FURPS und Anforderungstypen ).

Architektonische Anforderungen
Architektonische Anforderungen erklären, was zu tun ist, indem sie die notwendige Integration von Systemstruktur und Systemverhalten , d. h. die Systemarchitektur eines Systems, identifizieren.
In der Softwareentwicklung werden sie als architektonisch relevante Anforderungen bezeichnet. Diese sind definiert als Anforderungen, die einen messbaren Einfluss auf die Architektur eines Softwaresystems haben . [ 6 ]
Geschäftsanforderungen
Zielsetzungen sind übergeordnete Formulierungen der Ziele, Vorgaben oder Bedürfnisse einer Organisation. Sie beschreiben üblicherweise Chancen, die eine Organisation nutzen möchte, oder Probleme, die sie lösen will. Häufig werden sie in einem Business Case dargestellt .
Anforderungen der Nutzer (Interessengruppen)
Bedarfsbeschreibungen auf mittlerer Ebene beschreiben die Bedürfnisse eines bestimmten Stakeholders oder einer Stakeholdergruppe. Sie geben in der Regel Auskunft darüber, wie die Interaktion mit der angestrebten Lösung gestaltet werden soll. Oftmals fungieren sie als Bindeglied zwischen den übergeordneten Geschäftsanforderungen und den detaillierteren Lösungsanforderungen.
Funktionale (Lösungs-)Anforderungen
Üblicherweise handelt es sich dabei um detaillierte Beschreibungen der Funktionen, Fähigkeiten, des Verhaltens und der Informationen, die die Lösung liefern soll. Beispiele hierfür sind die Formatierung von Text, die Berechnung einer Zahl oder die Modulation eines Signals. Sie werden auch als Fähigkeiten bezeichnet .
Anforderungen an die Servicequalität (nicht-funktionale Anforderungen)
Üblicherweise handelt es sich um detaillierte Beschreibungen der Bedingungen, unter denen die Lösung wirksam bleiben muss, der Eigenschaften, die sie aufweisen muss, oder der Einschränkungen, innerhalb derer sie funktionieren muss. [ 7 ] Beispiele hierfür sind Zuverlässigkeit, Testbarkeit, Wartbarkeit und Verfügbarkeit. Sie werden auch als Eigenschaften , Einschränkungen oder Merkmale bezeichnet .
Implementierungs- (Übergangs-) Anforderungen
Detaillierte Beschreibungen von Fähigkeiten oder Verhaltensweisen sind üblicherweise nur erforderlich, um den Übergang vom aktuellen Zustand des Unternehmens zum gewünschten zukünftigen Zustand zu ermöglichen; danach werden sie nicht mehr benötigt. Beispiele hierfür sind Personalbeschaffung, Rollenwechsel, Weiterbildung und die Migration von Daten zwischen Systemen.
Regulatorische Anforderungen
Anforderungen, die durch Gesetze (Bund, Länder, Gemeinden oder Regionen), Verträge (Bedingungen) oder Richtlinien (Unternehmens-, Abteilungs- oder Projektebene) definiert sind.

Merkmale guter Anforderungen

Die Merkmale guter Anforderungen werden von verschiedenen Autoren unterschiedlich beschrieben, wobei jeder Autor im Allgemeinen die Merkmale hervorhebt, die für seine allgemeine Diskussion oder den jeweiligen Technologiebereich am relevantesten sind. Die folgenden Merkmale sind jedoch allgemein anerkannt. [ 8 ] [ 9 ]

Merkmal Erläuterung
Einheitlich (kohäsiv) Die Anforderung bezieht sich auf genau eine Sache.
Vollständig Die Anforderung ist vollständig und ohne fehlende Informationen an einer Stelle dargelegt.
KonsistentDie Anforderung steht im Widerspruch zu keiner anderen Anforderung und ist vollständig mit allen maßgeblichen externen Dokumenten vereinbar.
Nicht-konjugiert ( atomar ) Die Anforderung ist atomar , d. h., sie enthält keine Konjunktionen. Beispielsweise sollte „Das Postleitzahlenfeld muss amerikanische und kanadische Postleitzahlen validieren“ in zwei separate Anforderungen aufgeteilt werden: (1) „Das Postleitzahlenfeld muss amerikanische Postleitzahlen validieren“ und (2) „Das Postleitzahlenfeld muss kanadische Postleitzahlen validieren“.
RückverfolgbarDie Anforderung erfüllt ganz oder teilweise einen von den Stakeholdern formulierten und autoritativ dokumentierten Geschäftsbedarf.
Aktuell Diese Anforderung ist durch den Zeitablauf nicht überholt.
EindeutigDie Anforderung ist prägnant formuliert und verzichtet auf Fachjargon , Abkürzungen (sofern nicht an anderer Stelle im Anforderungsdokument definiert) und andere schwer verständliche Ausdrücke. Sie beschreibt objektive Fakten, keine subjektiven Meinungen. Sie ist eindeutig auslegungsbedürftig. Unklare Subjekte, Adjektive, Präpositionen, Verben und subjektive Formulierungen werden vermieden. Negative und zusammengesetzte Aussagen werden ebenfalls vermieden.
Wichtigkeit angeben Viele Anforderungen beschreiben von den Stakeholdern definierte Merkmale, deren Fehlen zu einem gravierenden oder gar fatalen Mangel führt. Andere Anforderungen stellen Funktionen dar, die bei ausreichendem Zeit- und Budgetrahmen implementiert werden können. Die Anforderung muss eine Prioritätsstufe angeben.
ÜberprüfbarDie Umsetzung der Anforderung kann durch grundlegende mögliche Methoden ermittelt werden: Inspektion, Demonstration, Test (instrumentiert) oder Analyse (einschließlich validierter Modellierung und Simulation).

Es gibt viele weitere Attribute, die zur Qualität von Anforderungen beitragen. Unterliegen Anforderungen beispielsweise Regeln der Datenintegrität , sind Genauigkeit/Korrektheit und Gültigkeit/Autorisierung ebenfalls wichtige Attribute. Die Rückverfolgbarkeit bestätigt, dass die Anforderungen den Bedarf decken (nicht mehr und nicht weniger als erforderlich).

Einige ergänzen das oben Genannte um die extern beobachtbare Anforderung, d. h. die Anforderung spezifiziert eine Produkteigenschaft, die extern beobachtbar oder vom Benutzer wahrgenommen wird. Diese Befürworter argumentieren, dass Anforderungen, die interne Architektur-, Design-, Implementierungs- oder Testentscheidungen festlegen, wahrscheinlich Einschränkungen darstellen und im Abschnitt „Einschränkungen“ des Anforderungsdokuments klar formuliert werden sollten. Die gegenteilige Ansicht besagt, dass diese Perspektive in zweierlei Hinsicht fehlerhaft ist. Erstens berücksichtigt sie nicht, dass die Benutzererfahrung durch Anforderungen unterstützt werden kann, die für den Benutzer nicht wahrnehmbar sind. Beispielsweise kann eine Anforderung zur Anzeige geokodierter Informationen für den Benutzer durch eine Anforderung für eine Schnittstelle zu einem externen Geschäftspartner unterstützt werden. Die Schnittstelle selbst ist für den Benutzer nicht wahrnehmbar, die Darstellung der darüber erhaltenen Informationen jedoch schon. Zweitens schränkt eine Einschränkung die Designalternativen ein, während eine Anforderung Designmerkmale spezifiziert. Um beim Beispiel zu bleiben: Eine Anforderung, die eine Webdienstschnittstelle vorgibt, unterscheidet sich von einer Einschränkung, die die Designalternativen auf Methoden beschränkt, die mit einer Single-Sign-On-Architektur kompatibel sind.

Überprüfung

Alle Anforderungen müssen überprüfbar sein. Die gängigste Methode hierfür ist der Test. Ist dies nicht möglich, sollte stattdessen eine andere Verifizierungsmethode angewendet werden (z. B. Analyse, Demonstration, Inspektion oder Überprüfung des Entwurfs).

Bestimmte Anforderungen sind aufgrund ihrer Struktur nicht überprüfbar. Dazu gehören Anforderungen, die besagen, dass das System eine bestimmte Eigenschaft niemals oder immer aufweisen darf. Ein ordnungsgemäßes Testen dieser Anforderungen würde einen unendlichen Testzyklus erfordern. Solche Anforderungen müssen so umformuliert werden, dass sie überprüfbar sind. Wie bereits erwähnt, müssen alle Anforderungen überprüfbar sein.

Nichtfunktionale Anforderungen, die auf Softwareebene nicht verifizierbar sind, müssen dennoch als Dokumentation der Kundenabsicht aufbewahrt werden. Sie können jedoch auf Prozessanforderungen zurückgeführt werden, die sich als praktikabler Weg zu ihrer Erfüllung erweisen. Beispielsweise kann die nichtfunktionale Anforderung, frei von Hintertüren zu sein , durch die Prozessanforderung der Verwendung von Paarprogrammierung erfüllt werden . Andere nichtfunktionale Anforderungen lassen sich auf andere Systemkomponenten zurückführen und werden auf dieser Ebene verifiziert. So wird beispielsweise die Systemzuverlässigkeit häufig durch Analysen auf Systemebene verifiziert. Avioniksoftware mit ihren komplexen Sicherheitsanforderungen muss dem DO-178B -Entwicklungsprozess folgen.

Aktivitäten, die zur Ableitung der System- oder Softwareanforderungen führen. Das Anforderungsmanagement kann eine Machbarkeitsstudie oder eine Konzeptanalysephase des Projekts sowie die Anforderungserhebung (Erfassung, Verständnis, Überprüfung und Formulierung der Bedürfnisse der Stakeholder ), die Anforderungsanalyse [ 10 ] ( Prüfung auf Konsistenz und Vollständigkeit), die Spezifikation (Dokumentation der Anforderungen) und die Validierung (Sicherstellung der Korrektheit der spezifizierten Anforderungen) umfassen. [ 11 ] [ 12 ]

Anforderungen sind anfällig für Mehrdeutigkeiten, Unvollständigkeiten und Inkonsistenzen. Techniken wie die sorgfältige Prüfung haben sich als hilfreich erwiesen, um diese Probleme zu beheben. Mehrdeutigkeiten, Unvollständigkeiten und Inkonsistenzen, die in der Anforderungsphase behoben werden können, verursachen in der Regel um ein Vielfaches geringere Korrekturkosten als dieselben Probleme, wenn sie in späteren Phasen der Produktentwicklung entdeckt werden. Die Anforderungsanalyse zielt darauf ab, diese Probleme zu lösen.

Es gilt, einen technischen Kompromiss zwischen zu vagen Anforderungen und solchen, die so detailliert sind, dass sie

  • Die Herstellung dauert lange – manchmal so lange, dass die Produkte nach ihrer Fertigstellung bereits veraltet sind.
  • die verfügbaren Implementierungsoptionen einschränken
  • sind kostspielig in der Herstellung

Agile Ansätze entwickelten sich als Mittel zur Überwindung dieser Probleme, indem Anforderungen auf einer hohen Ebene als Basis festgelegt und Details erst bei Bedarf oder zum letzten verantwortlichen Moment ausgearbeitet werden .

Dokumentationsanforderungen

Anforderungen dienen üblicherweise der Kommunikation zwischen den verschiedenen Beteiligten. Daher sollten sie sowohl für normale Anwender als auch für Entwickler leicht verständlich sein. Eine gängige Methode zur Dokumentation von Anforderungen besteht darin, zu beschreiben, was das System leisten muss. Beispiel: „Der Auftragnehmer muss das Produkt bis spätestens Datum xyz liefern.“ Weitere Methoden sind Anwendungsfälle und User Stories .

Änderungen der Anforderungen

Anforderungen ändern sich in der Regel im Laufe der Zeit. Nach ihrer Definition und Genehmigung unterliegen sie dem Änderungsmanagement . Bei vielen Projekten werden Anforderungen bereits vor Fertigstellung des Systems geändert. Dies liegt unter anderem an der Komplexität von Software und daran, dass Anwender oft erst nach der Implementierung wissen, was sie genau benötigen. Diese Eigenschaft von Anforderungen hat zu Studien und Praktiken im Bereich des Anforderungsmanagements geführt.

Probleme

Wettbewerbsstandards

Es gibt verschiedene, teils unterschiedliche Auffassungen darüber, was Anforderungen sind und wie sie verwaltet und genutzt werden sollten. Zwei führende Branchenverbände sind das IEEE und das IIBA. Beide Organisationen haben zwar unterschiedliche, aber dennoch ähnliche Definitionen von Anforderungen.

Streitigkeiten über die Notwendigkeit und die Auswirkungen von Softwareanforderungen

Viele Projekte waren erfolgreich, obwohl es kaum oder gar keine Einigung über die Anforderungen gab. [ 13 ] Es gibt zudem Hinweise darauf, dass die Spezifizierung von Anforderungen Kreativität und Designleistung beeinträchtigen kann. [ 14 ] Anforderungen behindern Kreativität und Design, weil sich Designer zu sehr mit den bereitgestellten Informationen beschäftigen. [ 15 ] [ 16 ] [ 17 ] Allgemeiner gefasst legen einige Forschungsergebnisse nahe, dass Softwareanforderungen eine Illusion sind , die entsteht, indem Designentscheidungen fälschlicherweise als Anforderungen dargestellt werden, obwohl keine wirklichen Anforderungen vorliegen. [ 18 ]

Die meisten agilen Softwareentwicklungsmethoden stellen die Notwendigkeit einer detaillierten Beschreibung von Softwareanforderungen im Vorfeld infrage, da diese als dynamisch betrachtet werden. Extreme Programming beispielsweise beschreibt Anforderungen informell mithilfe von User Stories (kurze, auf eine Karteikarte passende Zusammenfassungen, die einen Aspekt der Systemfunktionalität erläutern) und sieht es als Aufgabe des Entwicklers an, den Kunden bei Unklarheiten direkt zu kontaktieren. Agile Methoden versuchen, Anforderungen in einer Reihe automatisierter Akzeptanztests zu erfassen .

Anforderungen schleichen sich immer weiter aus

Durch sich im Laufe der Zeit ändernde Anforderungen kann es zu einer Ausweitung des Projektumfangs kommen. Im Anforderungsmanagement ist die Änderung von Anforderungen zwar zulässig, doch wenn diese nicht ausreichend nachverfolgt werden oder vorhergehende Schritte (Geschäftsziele zuerst, dann Benutzeranforderungen) nicht durch zusätzliche Kontrollen eingeschränkt oder als Kostenfaktor und potenzielles Projektrisiko betrachtet werden, sind Anforderungsänderungen leicht und wahrscheinlich. Es kann leicht passieren, dass sich Anforderungen schneller ändern, als Entwickler arbeiten können, und der damit verbundene Aufwand, frühere Änderungen rückgängig zu machen , ist entsprechend hoch.

Taxonomien für mehrere Anforderungen

Es gibt verschiedene Taxonomien für Anforderungen, je nachdem, welches Rahmenwerk verwendet wird (z. B. die Standards des IEEE im Vergleich zu den Ansätzen des IIBA oder des US-Verteidigungsministeriums). Unterschiedliche Formulierungen und Vorgehensweisen in verschiedenen Kontexten oder informelle Ausdrücke können zu Verwirrung und Abweichungen vom gewünschten Prozess führen.

Prozesskorruptionen

Ein von Menschen gesteuerter Prozess unterliegt menschlichen Fehlern in der Steuerung, bei denen Bequemlichkeit, persönliche Wünsche oder politische Erwägungen zu Ausnahmen oder gar zur Untergrabung des Prozesses und zu Abweichungen vom eigentlich vorgesehenen Ablauf führen können. Beispiele hierfür sind:

  • Prozesse ohne Strenge finden keinen Respekt – Wenn Ausnahmen oder Änderungen häufig vorkommen, beispielsweise weil die Organisation, die den Prozess durchführt, wenig Unabhängigkeit oder Macht besitzt oder in ihren Aufzeichnungen nicht zuverlässig und transparent ist, kann dies dazu führen, dass der gesamte Prozess ignoriert wird.
  • Neue Akteure, die eine zweite Chance wollen – z. B. die natürliche Tendenz neuer Mitarbeiter, die Arbeit ihrer Vorgänger zu verändern, um ihre Macht oder ihren Wertanspruch zu demonstrieren, wie etwa ein neuer CEO, der die Planung des vorherigen CEOs, einschließlich der Geschäftsziele, für etwas (z. B. eine Softwarelösung) ändern möchte, das sich bereits in der Entwicklung befindet, oder neu erstellte Büroobjekte in die aktuelle Entwicklung eines Projekts einbeziehen möchte, weil diese zum Zeitpunkt der Erstellung der Benutzeranforderungen noch nicht existierten, sodass sie versuchen, das Projekt zurückzuverfolgen und neu zu definieren.
  • Malen außerhalb der Linien - z.B. geben Benutzer, die mehr Kontrolle wünschen, nicht nur Dinge ein, die der Definition des Anforderungsmanagements von "Benutzeranforderung" oder der Prioritätsstufe entsprechen, sondern fügen Designdetails oder bevorzugte Eigenschaften von Anbietern als Benutzeranforderungen ein oder alles, was ihr Büro als höchstmögliche Priorität angibt.
  • Spätes Erscheinen – z. B. geringe oder gar keine Bemühungen bei der Anforderungserhebung vor der Entwicklung. Dies kann darauf zurückzuführen sein, dass man annimmt, unabhängig von der individuellen Beteiligung denselben Nutzen zu erzielen, oder dass es sinnlos erscheint, Anforderungen einfach in der Testphase und beim nächsten Durchlauf einzufügen, oder auf die Präferenz, durch das Abwarten auf Feedback nach der Arbeit immer Recht zu haben.

Im Rahmen des Prozesses des US-Verteidigungsministeriums gibt es einige historische Beispiele für Probleme mit den Anforderungen:

  • die in Pentagon Wars dargestellten Probleme der Bewegungsabläufe beim M-2 Bradley ;
  • Das Wachstum der F-16 vom Konzept des leichten Kampfflugzeugs durch die „Fighter Mafia“ wird darauf zurückgeführt, dass das F-15-Programm versucht, die Konkurrenz zu sabotieren, oder dass einzelne Abteilungen lokale Interessen verfolgen, wodurch das Konzept von geringem Gewicht und niedrigen Kosten untergraben wird.
  • Die Begeisterung für „Net-Ready“ um 1998 führte dazu, dass es vom Net-Ready-Büro als Key Performance Parameter (KPP) festgelegt wurde, außerhalb des Büros, das den Prozess der Anforderungsdefinition festlegte und nicht mit dem zuvor definierten Prozess dieses Büros, seiner Definition dessen, was ein KPP ist, oder der Tatsache, dass einige Bemühungen möglicherweise nicht geeignet oder in der Lage sind, zu definieren, was „Net-Ready“ ausmacht.

Siehe auch

Referenzen

  1. ^ Form und Stil von Normen, ASTM Blue Book (PDF) . ASTM International . 2012. Archiviert vom Original (PDF) am 6. November 2015. Abgerufen am 5. Januar 2013 .
  2. ^ Boehm, Barry (2006). „Ein Blick auf die Softwareentwicklung des 20. und 21. Jahrhunderts“ . ICSE '06 Proceedings of the 28th international conference on Software engineering . University of Southern California, University Park Campus, Los Angeles, CA: Association for Computing Machinery, ACM New York, NY, USA. S.  12–29 . ISBN 1-59593-375-1Abgerufen am 2. Januar 2013 .
  3. ^ „1.3 Schlüsselkonzepte – IIBA | International Institute of Business Analysis“ . www.iiba.org . Abgerufen am 25.09.2016 .
  4. ^ „IEEE SA - 610.12-1990 - IEEE Standard Glossary of Software Engineering Terminology“ . Archiviert vom Original am 10. Januar 2011.
  5. ^ Iiba; Analysis, International Institute of Business (2009). A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide) Version 2.0 . ISBN 978-0-9811292-1-1Die{{cite book}}: |first2=hat einen generischen Namen ( Hilfe )
  6. ^ Chen, Lianping; Ali Babar, Muhammad; Nuseibeh, Bashar (2013). „Charakterisierung architektonisch relevanter Anforderungen“. IEEE Software . 30 (2): 38–45 . doi : 10.1109/MS.2012.174 . hdl : 10344/3061 . S2CID 17399565 . 
  7. ^ Ralph, P., und Wand, Y. Ein Vorschlag für eine formale Definition des Designkonzepts. In: Lyytinen, K., Loucopoulos, P., Mylopoulos, J. , und Robinson, W. (Hrsg.), Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, S. 103–136.
  8. ^ Davis, Alan M. (1993). Software Requirements: Objects, Functions, and States, Second Edition . Prentice Hall. ISBN 978-0-13-805763-3Die
  9. ^ IEEE Computer Society (1998). IEEE Recommended Practice for Software Requirements Specifications . Institute of Electrical and Electronics Engineers, Inc. ISBN 978-0-7381-0332-7Die
  10. ^ Stellman, Andrew; Greene, Jennifer (2005). Angewandtes Software-Projektmanagement . O'Reilly Media. S. 98. ISBN 978-0-596-00948-9Archiviert vom Original am 09.02.2015.
  11. ^ Wiegers, Karl E. (2003). Software Requirements, Second Edition . Microsoft Press. ISBN 978-0-7356-1879-4Die
  12. ^ Young, Ralph R. (2001). Effektive Anforderungsmanagement-Praktiken . Addison-Wesley. ISBN 978-0-201-70912-4Die
  13. ^ Checkland, Peter (1999). Systemisches Denken, systemische Praxis . Chichester: Wiley.
  14. ^ Ralph, Paul; Mohanani, Rahul (Mai 2015). „Ist Requirements Engineering von Natur aus kontraproduktiv?“ . Proceedings of the 5th International Workshop on the Twin Peaks of Requirements and Architecture . Florenz, Italien: IEEE. S.  20–23 .
  15. ^ Jansson, D.; Smith, S. (1991). „Design fixation“. Design Studies . 12 (1): 3– 11. doi : 10.1016/0142-694X(91)90003-F .
  16. ^ Purcell, A.; Gero, J. (1996). „Design and other types of fixation“. Design Studies . 17 (4): 363– 383. doi : 10.1016/S0142-694X(96)00023-3 .
  17. ^ Mohanani, Rahul; Ralph, Paul; Shreeve, Ben (Mai 2014). „Anforderungsfestlegung“ . Proceedings of the International Conference on Software Engineering . Hyderabad, Indien: IEEE. S.  895–906 .
  18. ^ Ralph, Paul (2012). „Die Illusion der Anforderungen in der Softwareentwicklung“. Requirements Engineering . 18 (3): 293–296 . arXiv : 1304.0116 . doi : 10.1007 /s00766-012-0161-4 . S2CID 11499083 .