Systemspezifikation

Eine allgemein anerkannte Definition des Begriffes Systemspezifikation gibt es nicht. Auch über die Abgrenzung zu den benachbarten Phasen Analyse und Entwurf besteht keine Einigung. Zur Bezeichnung der Phase werden häufig folgende Begriffe mehr oder weniger synonym verwendet: requirements specification, requirements definition, concepts definition, functional specification; im Deutschen Anforderungsdefinition, Systemdefinition, Aufgabendefinition . Das Ergebnis der Phase wird ebenfalls als Systemspezifikation bezeichnet. Gängige Synonyme sind: Anforderungsdefinition, Pflichtenheft, Lastenheft. Pomberger/Blaschek definieren:

Systemspezifikation ist die Erabeitung eines Kontraktes zwischen Auftraggeber und Software-Entwickler, der genau festlegt, was das geplante System leisten soll und welche Prämissen für dessen Realisierung gelten sollen.

Aufbau und Inhalt der Systemspezifikation

Eine mögliche Gliederung für eine Systemspezifikation (Pflichtenheft), angelehnt an den ANSI/IEEE Standard 830-1984 Guide to SoftwareRequirements Specification sieht folgendermaßen aus:
Ausgangssituation und Zielsetzung
Systemeinsatz und Systemumgebung
Benutzerschnittstellen
  1. Mensch-Maschine-Schnittstelle: wie kommunizieren menschliche Benutzer mit dem System? Z.B. Bildschirmaufbau, Ein- und Ausgaben, Druckbilder, Interaktionsmechanismen, evtl. Verweis auf einen Benutzerschnittstellenprototyp
  2. sonstige externe Schnittstellen zu Hardware, anderer Software, externen Systemen.
Funktionale Anforderungen
alle notwendigen Angaben zu den erwarteten Systemfunktionen, insbesondere Art, Umfang und Genauigkeit der Daten, die einer Systemfunktion zugeordnet sind. Keine Angaben zu möglichen Lösungen. Pro Anforderung ein Abschnitt.
Nichtfunktionale Anforderungen
z.B. zu Zuverlässigkeit, Portabilität, gewünschte Antwort- und Verarbeitungszeiten.
Fehlerverhalten
Erkennung und Behandlung von Fehlern, welche Auswirkungen haben Fehler auf das Systemverhalten. Maßnahmen zur Verhinderung und Abschwächung von Fehlern.
Dokumentationsanforderungen
Art und Umfang der mitgelieferten Dokumentation. Benutzerdokumentaion ist unverzichtbar für den richtigen Gebrauch des Produktes, Entwicklungsdokumentation wird für die Wartung benötigt.
Abnahmekriterien
Unter welchen Bedingungen ist das System abzunehmen? Empfehlenswert: Zu jeder Anforderung (funktional oder nichtfunktional) Kriterien festlegen.
Glossar
alle verwendeten Begriffe, insbesondere das Vokabular des Anwendungsbereichs, werden definiert, dadurch werden für alle Projektbeteiligten verbindliche Sprachregelungen festgelegt und Wissen über den Anwendungsbereich fixiert.
Index
Selbstverständlich können bei Bedarf auch andere, dem Anwendungsbereich und der Projektsituation angemessenere Gliederungen gewählt werden.

Qualitätsanforderungen an die Systemspezifikation

Als Vertrag zwischen Auftraggeber und SW-Entwickler muß sie für beide verständlich sein. Für den Auftraggeber beschreibt sie das System so, wie es sich im Einsatz, z.B. den Benutzern, darstellen wird. Für den SW-Entwickler enthält sie alle für Entwurf und Realisierung notwendige Information (aber nicht mehr). Weiterhin bildet die Systemspezifikation die Grundlage für Projektmanagement zur Die Systemspezifikation sollte daher folgenden Qualitätsanforderungen genügen:

Grundlegende Probleme bei der Systemspezifikation

Weg/Ziel-Konflikt
Zentrale Aufgabe der Systemspezifikation ist es, das Ziel des Entwicklung festzulegen, und nicht einen Lösungsweg zur Erreichung des Ziels zu beschreiben. D.h. es ist zu beschreiben, was das geplante System leisten soll, aber nicht, wie dies bewerkstelligt wird.
Vorteile Nachteile 
Konzentration auf die Ziele macht die Systemspezifikation kurz und verständlich  Eine Systemspezifikation ist i.d.R. nur dann vollständig und widerspruchsfrei, wenn schon bekannt ist, ob und wie einzelne Systemfunktionen realisierbar sind
Realisierungsdetails auszuarbeiten, lenkt von der eigentlichen Aufgabe ab und verlängert so nur die Spezifikationsphase. Die Systemspezifikation ist nur ein Dokument, d.h. eine statische Darstellung des Softwaresystems. Sein dynamisches Verhalten ist meist nur sehr umständlich zu erläutern.
Beschäftigung mit Realisierungsfragen schränkt die Freiheit der Systementwickler unnötig(?) ein, auch besteht die Gefahr, realisierungsbedingte Einschränkungen der Anforderungen einzuführen.
Was/Wie Trennung:Pro und Contra 
funktionale Anforderungen finden und beschreiben
Es ist sehr schwierig, ohne Experimente zunächst alle Anforderungen zu finden und dann diese identifizierten Anforderungen kurz und präzise zu beschreiben, in welcher Notation auch immer: Umgangssprache, Graphiken, Schaubildern, Mathematik, Formalismen. Ausführbare Prototypen erleichtern diese Aufgabe.
Benutzerschnittstelle darstellen
Grafische Darstellung der Benutzeroberfläche ist aufwendig, und macht im wesentlichen nur ihr Erscheinungsbild deutlich, und nicht so sehr die von ihr zugänglich gemachte Funktionalität.
Eine Möglichkeit, den genannten Schwierigkeiten zu begegenen, ist eine prototyp-orientierte Systemspezifikation.

Durchführbarkeitsstudie

Bevor die Systemspezifikation zum Vertrag zwischen Auftrageber und Hersteller wird, kann als Qualitätssicherungsmaßnahme eine Durchführbarkeitsstudie erstellt werden, die die folgenden Gesichtspunkte prüft:
  1. Qualität der Systemspezifikation
  2. Technische Durchführbarkeit
  3. Personelle Voraussetzungen
  4. Wirtschaftlichkeit