Softwareanforderung

Windows 2000 als Softwarestack dargestellt: Die einzelnen Komponenten und Subsysteme werden mithilfe von Softwareanforderungen spezifiziert. Diese dienen der Beschreibung der Funktionalität, Leistung und der Schnittstelleneigenschaften.

Eine Softwareanforderung ist eine Anforderung im Rahmen der Softwareentwicklung. Sie beinhaltet die Angabe der Funktionalität, Leistung oder Eigenschaften einer Software bzw. eines Softwaresystems sowie deren internes oder externes Verhalten. Softwareanforderungen dienen somit als Grundlage für die Realisierung (Programmierung) der Software.

Der folgende Artikel beschreibt einen generellen Ansatz, der aufzeigt, wie Software und ihre Anforderungen im Kontext eines Softwareentwicklungsprojekts zusammenspielen. Somit übersteigt der Umfang die eigentlich triviale Definition (s. u.) einer Softwareanforderung.

Allgemeines

Anforderungen an Software sind in der ISO/IEC/IEEE 29148 (früher IEEE 830) genormt. Zusätzlich werden Anforderungen in der Softwaretechnik mithilfe von Modellierungssprachen wie der Unified Modeling Language (UML) entwickelt, womit Software sich in seiner Struktur und seinem Verhalten beschreiben lässt. Die Entwicklung erfolgt dabei im Zuge eines Softwareentwicklungsprozesses.

Im Rahmen des Anforderungsmanagements werden Anforderungen ermittelt, analysiert, spezifiziert und verwaltet. Eine Softwarearchitektur dient außerdem zur Modellierung und Beschreibung der einzelnen Softwareelemente oder Module des Gesamtsystems „Software“. Das Produkt „Software“ ist wiederum Teil des Software-Lebenszyklus.

Aus Sicht des Systems Engineering ist Software neben Hardware, Benutzern (Menschen), Prozessen und weiteren Elementen lediglich ein Bestandteil des Systems. Software ist daher Bestandteil eines informationstechnischen Systems. Sie stellt keine unmittelbaren Anforderungen an Werkstoffe oder Materialien, wohl aber an die Ressourcen der Computerhardware, etwa an den benötigten Speicherplatz für Daten.

Aufgrund der stetigen Weiterentwicklung von Programmiersprachen und Softwaretechnik, neuer Computerhardware (vgl. Rechnertechnik) sowie des Aufkommens des Internets (vgl. Informationszeitalter) haben sich die Anforderungen an Software stets verändert. Die Anforderungen an eine Spieleapplikation unterscheiden sich deutlich von denen an einen Onlinedienst, der in einer Cloud-Umgebung läuft; oder hardwarenahen Firmware oder Algorithmen, oder Codes, die beispielsweise im wissenschaftlichen Rechnen verwendet und in einer Supercomputer-Umgebung eingesetzt werden.

Definition

Die ISO/IEC/IEEE 41062 Software engineering — Life cycle processes — Software acquisition definiert eine Softwareanforderung als (übers.) „Softwarefunktionalität, die ein Benutzer benötigt, um ein Problem zu lösen oder ein Ziel zu erreichen.“

Unter dem Begriff englisch software requirements engineering wird hingegen definiert als eine (übers.) „Wissenschaft und Fachgebiet, die sich mit der Analyse und Dokumentation von Softwareanforderungen befassen.“

Anforderungsebenen

Im Rahmen eines Software-Projekts werden eine Vielzahl verschiedener Anforderungen an das Projekt und das zu erstellende softwarebasierte Produkt bzw. Softwaresystem gestellt. Aus diesen verschiedenen Rahmenbedingungen und Voraussetzungen können sich Anforderungen auf verschiedenen Ebenen an die Software ergeben:

Wirtschaftlicher Kontext

Technischer Kontext

  • Benutzeranforderungen: Eine weitere Klasse sind jene Anforderungen, welche die Anwender der Software betreffen. Sogenannte Anwendungsfälle und andere Verhaltensdiagramme dienen zur qualitativen Beschreibung möglicher Szenarien. Benutzeranforderungen werden beispielsweise von Business Analysten oder Product Ownern (dt. etwa Produktverantwortliche) im Rahmen des Scrum-Vorgehens erarbeitet. Es ist aber auch möglich, dass das Entwicklungsteam oder Vertreter der Benutzer sie selbst ermitteln. Auf dieser Ebene spielt eine Softwarearchitektur eine zentrale Rolle. Benutzeranforderungen müssen die Geschäftsanforderungen erfüllen.
  • Funktionale und nichtfunktionale Anforderungen: Erfasst werden Eigenschaften, Verhalten und Leistung, die eine Software besitzen soll. Dazu kommen auch die Anforderungen an die Schnittstelle (vgl. Inteface Control Document) und die Implementierung, die ebenfalls spezifiziert werden müssen. Die einzelnen Software-Artefakte werden mittels Integration zu einem Ganzen zusammengefügt (vgl. auch die modernen Verfahren CI/CD oder DevOps). Diese technischen Anforderungen werden teilweise aus den Benutzeranforderungen abgeleitet und in Absprache mit der Softwareentwicklung und der Testabteilung definiert. Sie umfassen die grundlegende Struktur und das Verhalten der Software. Dazu zählen unter anderem die Daten und Datentypen.

Format und Spezifikation

Softwareanforderungen werden wie gewöhnliche Anforderungen in den folgenden Formaten erfasst:

Bereits erwähnt wurden Hilfswerkzeuge wie die Modellierungssprache Unified Modeling Language (UML). Müssen die Anforderungen an die Software möglichst detailliert erfasst werden, kommen formale Methoden zum Einsatz. In der agilen Softwareentwicklung werden für Anforderungen als User Stories, Features und Epics eingesetzt, vgl. auch das Vorgehen nach Scrum.

Anforderungen werden kurz, prägnant und eindeutig formuliert. Sie beschreiben, was die Software oder das Softwaresystem leisten oder erfüllen soll, nicht, wie es umgesetzt wird. Dazu werden funktionale Anforderungen geschrieben. Nichtfunktionale Anforderungen beschreiben Qualitätsmerkmale und Rahmenbedingungen, etwa Leistung oder Verfügbarkeit.

Die Verwendung von Schlüsselwörtern konkretisiert die Definition von Anforderungen oder Spezifikationen. Typische Schlüsselwörter sind:

Einfache Beispiele:

Wie bereits erwähnt gibt es eine Vielzahl verschiedener Software. Für Anwendersoftware müssen Design-Anforderungen an die UI/UX/GUI erfasst werden, die für Firmware nicht in allen Fällen relevant sind (ohne Anzeige). Onlinedienste leben von einer Vielzahl von Anwendungsprogrammierschnittstellen und Datenaustauschformaten wie JSON. Um der Komplexität jeder Software gerecht zu werden, ist es daher empfehlenswert, eine Softwarearchitektur zu entwickeln.

Zudem sollten alle Anforderungen verifizierbar sein. Zu diesem Zweck werden Softwaretests eingesetzt und von Testingenieuren oder Softwareentwicklern geplant und ausgeführt. Die Maßnahmen sind Teil einer Verifizierung und Validierung (V&V). Zudem müssen Anforderungen an die Qualität der Software im Rahmen der Qualitätssicherung definiert und erfüllt werden. Gleiches gilt für Anforderungen an die Informationssicherheit (englisch cybersecurity) oder funktionale Sicherheit (englisch safety) der Software.

Im Folgenden wird noch einmal das Vorgehen (Ablauf) bei der Softwareentwicklung vereinfacht zusammengefasst:

  1. Inhalt und Umfang (Planung)
  2. Entwurf und Design (Konstruktion)
  3. Programmierung oder Implementierung (Fertigung)
  4. Testing und Qualitättssicherung (Prüfung)
  5. Installation oder Betrieb (Installation, Wartung)

Erhebung, Dokumentation und Verwaltung

Definitionen von IEEE

Zunächst werden die geschäftlichen und projektbezogenen Anforderungen auf Auftraggeber- (Kunde) und Auftragnehmerseite (Produktmanager, Projektleiter oder Business Analysten) bearbeitet. Dies kann im Rahmen einer Kundenakquise oder Beschaffung erfolgen. Aber auch interne Geschäftseinheiten können als Kunde gegenüber Abteilungen auftreten und ein Softwareprodukt anfordern.

Im Rahmen des Stakeholdermanagement werden weitere Interessengruppen abgeholt. Die Informationen werden als Teil des Inhalts- und Umfangsmanagements von Anforderungsmanagern oder Business Analysten ermittelt, analysiert, spezifiziert und meistens in einer geeigneten Anforderungsmanagement-Software zusammengetragen und verwaltet. Ab diesem Zeitpunkt werden Ingenieure und Softwareentwickler die Systemanalyse sowie die Softwarearchitektur und weitere Softwarespezifikationen für eine Implementierung benutzen, wobei das „Wie“, also die Lösung eines technischen Problems, im Fokus steht. Dafür muss das „Was“, also die übergeordneten Anforderungen an die Software, möglichst korrekt und eindeutig spezifiziert worden sein. Dabei spielt der feste Stand (Baseline) der Anforderungen eine bedeutende Rolle, d. h. die Inhalte wurden definiert und von Unstimmigkeiten befreit.

Anforderungen sind Teil des Anforderungsmanagementprozesses und unterliegen einer Versionskontrolle. Jede Anforderung ist außerdem mit einem Status versehen, sodass Änderungen gesteuert werden können. In der Regel übernimmt die Anforderungsmanagement-Software diese unterstützenden Funktionen.

Anforderungen, welche lediglich mündlich, durch Voicemail, auf Klebezetteln, E-Mails, Chats, Mitschriften von Meetings, oder ähnlich unstrukturiert erfasst sind, gehören nicht zum offiziellen Anforderungskatalog des Softwaresystems und können bei der Realisierung nicht berücksichtigt werden. Diese inoffiziellen Informationen müssen zunächst von einem Analysten aufgenommen, ausgewertet und gegebenenfalls strukturiert erfasst werden, bevor sie weiterverwendet werden können.

Je nach Detailierungsebene (vgl. Anforderungsebene) sieht eine Anforderung ein Softwaresystem dabei als „Black Box“ und definiert neben dem Zweck der einzelnen Teilanforderungen auch zugehörige Anwendungsbeispiele aus Sicht der unterschiedlichen Benutzergruppen.

Im Anforderungsprozess sind ein projektbegleitendes Konfigurationsmanagement, ein Variantenmanagement und ein Veränderungsmanagement zu beachten. Ein sogenanntes Issue-Tracking-System kann dabei helfen, Informationen (bzw. Probleme) zu sammeln und zu verwalten. Hierzu existieren auch die Bugtracker. In Einzelfällen kann ein Issue-Tracking-System eine Anforderungsmanagement-Software ersetzen, verfügt in der Regel aber nicht über die gleichen Fähigkeiten wie ein professionelles Werkzeug für Anforderungen.

Die Vorgaben für die oben genannten Prozesse und Werkzeuge stammen aus regulatorischen und normativen Bestimmungen. Dies ist beispielsweise in Branchen wie der Medizintechnik, der Automobilindustrie, der Luftfahrtindustrie, der Raumfahrt sowie der Chemieindustrie speziell vor dem Hintergrund der Sicherheit notwendig. Für Online-Software gelten diese Vorgaben weniger, jedoch müssen stets alle Anforderungen an ein Softwaresystem erfasst werden.

Explizite Anforderungen müssen beispielsweise an den Datenschutz oder die Informationssicherheit gestellt werden. Das Gleiche gilt für die Kryptologie, falls Daten verschlüsselt werden sollen, da der exakte Algorithmus in diesem Fall spezifiziert werden muss.

Es wird implizit erwartet, dass Softwareanforderungen testbar sind, d. h., dass sie durch Unit-Tests überprüft werden können. Anschließend müssen Integrationstests und Systemtests durchgeführt werden, um das Gesamtprodukt zu verifizieren. Eine Abnahme ist nur möglich, wenn das Produkt vom Auftraggeber validiert wurde.

Softwareanforderung aus Kundensicht

In dem Buch Software Requirements definiert Karl Wiegers Rechte und Pflichten des Kunden, welche bei der Erstellung von Anforderungen eingehalten werden sollen:

Rechte des Kunden
  1. Geschäftsanalysten verwenden den Jargon des Kunden.
  2. Geschäftsanalysten erlernen die Geschäftsabläufe und -ziele des Kunden.
  3. Geschäftsanalysten erfassen die Anforderungen derart, dass sie in einer für den Kunden geeigneten Form bereitgestellt werden können.
  4. Anspruch auf Auskunft des Zwecks bestimmter Anforderungen und Auslieferungen
  5. Änderungen der Anforderungen
  6. Anspruch auf gegenseitigen Respekt
  7. Auskunft für alternative Ideen des Dienstleisters
  8. Anforderungen an die einfache Benutzbarkeit
  9. Auskunft über Möglichkeiten die Entwicklung zu beschleunigen, indem die Anforderungen so angepasst werden, dass bestehende Softwarekomponenten verwendet werden können.
  10. Auslieferung eines Systems, welches sowohl den funktionalen Anforderungen als auch den Qualitätsanforderungen gerecht wird.
Pflichten des Kunden
  1. Aufklären des Dienstleisters über die Geschäftsprozesse
  2. Einplanung der Zeit, welche benötigt wird, um die Anforderungen bereitzustellen und nachzubessern.
  3. Erstellung spezifischer und präziser Anforderungen
  4. Entscheidungen und Auskünfte zu Anforderungen innerhalb angebrachter Zeiträume treffen
  5. Die Einschätzungen der Entwickler zum Zeitbedarf und der Realisierbarkeit einer Anforderung sind zu respektieren.
  6. Treffen realistischer Priorisierung der Anforderungen in Absprache mit den Entwicklern
  7. Regelmäßige Reviews von Anforderungen und das Evaluieren von Prototypen
  8. Festlegen von Akzeptanzkriterien in Absprache mit dem Kunden
  9. Schnelles Kommunizieren von Änderungen an den Anforderungen
  10. Einhaltung des Prozesses zum Erfassen der Anforderungen

Herausforderungen

Dokumente mit Softwareanforderungen können sehr umfangreich sein und je nach Produkt hunderte bis tausende Seiten umfassen. In der Praxis ist es unmöglich, die Anforderungen vollständig oder widerspruchsfrei zu formulieren. Lücken und Widersprüche werden in der Regel erst während der Entwicklung oder im Produktionsbetrieb entdeckt. Zudem werden die Anforderungen im Regelfall während der Entwicklung eines Softwareprodukts geändert. Diese Veränderung gilt es jedoch zu kontrollieren und zu minimieren. Weitere Schwierigkeiten ergeben sich dadurch, dass bei Spezifikationen im Üblichen:

Studien zeigen, dass 40 % bis 50 % aller Fehler in Softwaresystemen durch fehlerhafte Anforderungen entstehen. Alleine im Jahr 2004 wurden in der Europäischen Union 142 Milliarden Euro aufgrund fehlgeschlagener Softwareprojekte verloren. Hiervon ist die Mehrzahl auf Softwareanforderungen zurückzuführen, welche nicht ausreichend auf die Geschäftsziele ausgerichtet waren oder weil sich die Geschäftsziele verändert haben. Zudem kommt, dass 30 % bis 50 % der Projektkosten durch Änderungen der Anforderungen und damit einhergehenden Produktänderungen entstehen. Von diesen Änderungen werden nach Untersuchungen von Barry Boehm 70 % bis 85 % durch Fehler in der Anforderung verursacht. Die in den 2000er Jahren gegründete agile Softwareentwicklung definierte neue Werte und Leitlinien für diesen Bereich. Man erhoffte sich eine Minderung der üblicherweise auftretenden Probleme. Die agile Entwicklung ist jedoch auch von ähnlichen Effekten betroffen.

Aufgrund dieser Herausforderungen kommt dem Anforderungsmanagement und den damit verbundenen Disziplinen eine bedeutende Rolle zu. Im Rahmen des Projektmanagements muss auf eine möglichst effektive Kommunikation zwischen den Stakeholdern geachtet werden. Alle Beteiligten müssen im gleichen Vorgehen und mit den gleichen Werkzeugen vertraut sein und sich einigen. Prozesse müssen aufgebaut, genutzt und bei Bedarf angepasst werden. Alle Anforderungen müssen Qualitätskriterien genügen und testbar sein. Zudem müssen die Beziehungen zwischen Testfällen und Anforderungen hergestellt werden können. Zum Zeitpunkt der Fertigstellung der Software müssen die Anforderungen widerspruchsfrei sein und mit dem Verhalten der entwickelten Software übereinstimmen.

Quellen von Softwareanforderungen

Anforderungen an eine Software oder ein Softwaresystem resultieren aus einer Vielzahl von Themengebieten:

  1. Funktionale Anforderungen an die Software oder das Softwaresystem
  2. Daten- und Informationsanforderungen
  3. Schnittstellenanforderungen
  4. Leistungs-, Stabilitäts- und Verfügbarkeitsanforderungen
  5. Informationssicherheit (Cybersecurity)
  6. Funktionale Sicherheit (Safety)
  7. Qualitätssicherung, Testmanagement und Fehlerbehandlung
  8. Dokumentation
  9. Anforderungen an den Produktlebenszyklus der Software
  10. Rechtliche und kommerzielle Anforderungen

Grundsätzlich sollten die Vorgaben der IETF-, W3C-, ISO-, IEEE- und IEC-Normen berücksichtigt werden.

1. Funktionale Anforderungen

An die zu entwickelnde Software bzw. das Softwaresystem werden von außen gewisse Anforderungen gestellt. Diese kommen beispielsweise aus einem Lastenheft oder anderen vertraglichen Dokumenten. In der Anforderungsanalyse werden diese Anforderungen geprüft, präzisiert und so aufbereitet, dass sie als Grundlage für die Entwicklung und den Entwurf dienen können. Dabei werden auch das System und seine wesentlichen Aufgaben untersucht und strukturiert. In der Synthese werden die Anforderungen, Entwurfsideen, technischen Komponenten und Rahmenbedingungen zu einem stimmigen Ganzen zusammengeführt.

Die Softwarearchitektur dient dabei als zentrales Artefakt zur Verteilung der Verantwortlichkeiten und Anforderungen an die einzelnen Softwareteile sowie zur Beschreibung ihrer Interaktionen. Sie wird mit verschiedenen Werkzeugen modelliert und durch verschiedene Darstellungen, wie beispielsweise ein Blockdiagramm des Softwarestacks, begleitet.

2. Daten- und Informationsmanagement

Dazu zählen die Spezifikation der Datentypen, Datenstrukturen und Datenbanken (sofern erforderlich). Zu den Anforderungen gehören die Datenarchivierung, die Datenspeicherungsinfrastruktur und die Speicherorte für Daten (z. B. Endgerät, Rechenzentrum, Cloud, Geschäftspartner, öffentlich).

Des Weiteren sind die Anforderungen an eindeutige Bezeichner (IDs, UIDs, URIs, URNs, Clean URLs) sowie die Anforderungen an Datentransaktionen (unter Berücksichtigung des CAP-Theorems) zu berücksichtigen. Weitere Anforderungen an die Verarbeitung von Daten können aus den Konzepten ETL, OLTP oder CEP abgeleitet werden.

Ebenso sind die Historie und Erhaltung der Daten für verschiedene Zwecke, beispielsweise für den Datenschutz, zu berücksichtigen. Zu berücksichtigen sind außerdem die Anforderungen an eine Datenwiederherstellung im Katastrophenfall (Datenverlust).

Zu den Flexibilitätsanforderungen an die Daten zählen die Skalierbarkeit, Erweiterbarkeit, Unparochialität (Unabhängigkeit von der Infrastruktur) und Vielfältigkeit (Bereitstellung von Daten für andere Systeme).

Die Eingabe und Anzeige von Informationen und Daten für Benutzer muss spezifiziert werden. Für die Lokalisierung und Internationalisierung (i18n) sind Anforderungen an die Mehrsprachigkeit, den Umgang mit Zeitzonen, sowie Schaltsekunden und -stunden, Währungen, Leserichtung, Kulturelle Symbolik und Regional unterschiedliche gesetzliche Anforderungen zu stellen.

3. Schnittstellenanforderungen

Zu berücksichtigen sind die Schnittstellen Mensch-Maschine (MMI) bzw. Hardware-Software (HSI) und ihr Verhalten sowie Informationen zu ihrer Steuerung oder Kontrolle. Wenn Daten übertragen werden sollen, muss die Datenflusssteuerung spezifiziert werden. Siehe auch das OSI-Modell. Des Weiteren sind die Import-/Exportschnittstellen für Daten zu berücksichtigen. Zur Dokumentation der Anforderungen dieses Themas werden Schnittstellenbeschreibungssprachen sowie das Schnittstellensteuerdokument verwendet. Zur Dokumentation der Anforderungen dieses Themas werden Schnittstellenbeschreibungssprachen sowie das Schnittstellensteuerdokument verwendet.

4. Leistungsanforderungen

An die Software können Anforderungen zur Performance und Verfügbarkeit gestellt werden. Dazu zählen Antwortzeiten, Durchsatzratenbegrenzungen, statische oder dynamische Kapazitätsgrenzen und Verfügbarkeitsanforderungen. In speziellen Anwendungen wie Kraftfahrzeugen oder Fluggeräten werden manchmal besondere Echtzeitanforderungen an eingebettete Systeme und die Firmware (Software) gestellt.

Das Verhalten bei Überlastung oder Ausfall eines externen Systems (z. B. Sicherung, Bulkheads und Verbindungs-Pooling) sollte festgelegt werden oder das im Fehlerfall einer Instanz des Systems (z. B. dynamisches Routing). Die sogenannten Single Point of Failures (SPF) sind zu berücksichtigen.

5. Informationssicherheit (Cybersecurity)

Aus dem Bereich Informationssicherheit stammen zahlreiche Anforderungen aus Gesetzen, Verordnungen und technischen Vorgaben. Dazu zählen die NIS-2-Richtlinie, das BSI-Gesetz (BSIG) und die Mindeststandards des BSI. Hinzu kommen Anforderungen an die Identität, Authentifizierung und Autorisierung. Zu berücksichtigen sind außerdem spezielle Berechtigungen für Benutzergruppen/Rollen, eine föderierte Identität und Zero-Knowledge-Anforderungen. Weitere Anforderungen werden an den Schutz nach außen (Firewall, Access Control List) gestellt. Hinzu kommen Aspekte aus der Kryptologie (Verschlüsselung). Zur Verbesserung des Cybersicherheits-Risikomanagements dienen Rahmenwerke wie das NIST Cybersecurity Framework (CSF). Das CSF berücksichtigt die Normen ISO 27001, COBIT uvm.

6. Funktionale Sicherheit (Safety)

Neben den Anforderungen an Informationssicherheit und Datenschutz können auch Anforderungen an die funktionale Sicherheit einer Software gestellt werden. Aus der Norm IEC 61508 wurden zahlreiche branchenspezifische Standards wie ISO 26262 oder IEC 61511 abgeleitet. Auch hier spielen umfangreiche und spezielle Tests eine bedeutende Rolle bei der Verifikation der Sicherheitsanforderungen.

7. Softwareproduktqualität

Zur Qualitätssicherung werden im Rahmen des Testmanagements Softwaretests mit hoher Testabdeckung, Peer Review des Quelltextes, statische Code-Analyse (SCA) sowie Konzepte wie A/B-Tests, Fehlerinjektion, Software-in-the-Loop (SIL), Exploratives Testen, SOLID-Prinzipien und Clean Code angewendet. Weitere Methoden und Verfahren sind das Debugging und die Ablaufverfolgung. Bei der Programmierung der Software sind außerdem gewisse Stilrichtlinien zu beachten.

Des Weiteren sind von Bedeutung die Erfüllung von Vorgaben aus den Normen ISO/IEC 9126 bzw. ISO/IEC 25000er-Serie, beispielsweise hinsichtlich der Funktionalität, Zuverlässigkeit, Benutzerfreundlichkeit, Barrierefreiheit, Effizienz, Änderbarkeit oder Übertragbarkeit der Software. Das Fehlermanagement begleitet das Qualitätsmanagement.

Die ISO 9001 kann außerdem einen Rahmen für das Qualitätsmanagement eines Softwareherstellers bieten. Bei Bedarf kann sich das Unternehmen danach zertifizieren lassen.

8. Dokumentationsanforderungen

Im Rahmen des Dokumentationsmanagements muss festgelegt werden, welche Form und welchen Umfang die benötigte technische bzw. Benutzerdokumentation (z. B. eine Bedienungsanleitung) haben soll. Alle Systemelemente, also auch Softwarefunktionen, müssen dokumentiert werden. Siehe auch Softwaredokumentation.

9. Software-Produktlebenszyklus

Aus dem Software-Lebenszyklus oder dem IT-Service-Management (ITSM) ergeben sich Anforderungen an die Software und das Produkt, siehe auch ITIL. Zu den festzulegen Aufgaben gehören das Releasemanagement, Auslieferung (z. B. automatisiert mittels CI/CD) und die Aktualisierungszyklen sowie die Inbetriebnahme, beispielsweise von einer Testumgebung in eine operative Umgebung, der laufende Betrieb und am Ende des Lebenszyklus eine Abkündigung und Stilllegung oder die Umstellung auf eine neue Software bzw. ein neues Produkt.

10. Rechtliche und kommerzielle Anforderungen

Anforderungen können letztendlich aus gesetzlichen Richtlinien oder regulatorischen Vorgaben, beispielsweise zur Steuerberechnung, oder aus dem Sarbanes-Oxley Act im Falle der Berichterstellung resultieren.

Siehe auch