In diesem Artikel werden wir uns eingehend mit dem Thema Software Requirements Specification befassen und seine Ursprünge, Entwicklung, Auswirkungen und möglichen Zukunftsaussichten analysieren. Software Requirements Specification war im Laufe der Geschichte Gegenstand von Interesse und Debatten und beeinflusste verschiedene Aspekte der Gesellschaft, Kultur und Politik. In den nächsten Abschnitten werden wir uns mit seiner Bedeutung, seinen Implikationen und seiner Relevanz im aktuellen Kontext befassen und dabei die verschiedenen Facetten beleuchten, die dieses Phänomen ausmachen. Darüber hinaus werden wir verschiedene Ansätze und Meinungen untersuchen, um eine umfassende und ausgewogene Sichtweise zu bieten und dem Leser ein umfassenderes und tieferes Verständnis von Software Requirements Specification zu vermitteln.
| Definitionen von IEEE |
|---|
|
Die Software Requirements Specification (SRS) ist ein Standard zur Spezifikation von Software, der durch den IEEE-Berufsverband (Institute of Electrical and Electronic Engineers) veröffentlicht wird. 1984 wurde die erste Version unter ANSI/IEEE Std 830-1984 veröffentlicht. Es erfolgen regelmäßig Überarbeitungen, die aktuelle Version ist Std 29148-2018.
Die SRS umfasst das Lastenheft wie auch das Pflichtenheft.
Die IEEE Kap. 4.3 definiert acht Charakteristika guter SRS:
„Korrekt“ und „vollständig“ beziehen sich dabei auf die in der SRS genannten tatsächlichen Anforderungen (externer Bezug). Widerspruchsfreiheit bezieht sich auf die Anforderungen in Form der SRS alleine (interner Bezug). Unzweideutigkeit lässt genau eine Interpretation zu, Verifizierbarkeit begrenzt die Komplexität einer Anforderungsbeschreibung zusätzlich auf ein effizient prüfbares Maß. Modifizierbarkeit setzt insbesondere Redundanzfreiheit voraus. Traceability umfasst die vor- und rückwärtige Richtung.
Die IEEE hat mit dieser Definition festgelegt, wie das Dokument aufgebaut werden soll. Die Kapitel, die in diesem Dokument vorkommen sollen, stehen somit fest. Dabei besteht das Dokument grundsätzlich aus zwei Teilen:
Unter C-Requirement sind die Anforderungen aus Sicht des Kunden und/oder des End-Anwenders zu erfassen. Unter D-Requirement versteht man die Entwicklungsanforderungen. Dies ist die Sicht aus den Augen des Entwicklers, der technische Aspekte in den Vordergrund stellt, im Gegensatz zum Kunden.
Mit Requirements (deutsch: ‚Anforderungen‘) ist sowohl die qualitative als auch die quantitative Definition eines benötigten Programms aus der Sicht des Auftraggebers gemeint. Im Idealfall umfasst eine solche Spezifikation ausführliche Beschreibung von Zweck, geplantem Einsatz in der Praxis sowie dem geforderten Funktionsumfang einer Software.
Hierbei sollte fachlichen („Was soll die Software können?“) wie auch technischen Aspekten („In welchem Umfang und unter welchen Bedingungen wird die Software eingesetzt werden?“) Rechnung getragen werden.
Eine SRS enthält nach IEEE-Standard mindestens drei Hauptkapitel. Die vorgeschlagene Gliederung sollte zwar in den Kernpunkten eingehalten werden, in der Praxis wird diese jedoch häufig im Detail modifiziert. Eine exemplarische Gliederung könnte wie folgt aussehen:
Die Schwierigkeiten, die sich in der Praxis bei einer solchen Anforderungsanalyse ergeben, sind