Spezifikation und Planung in der Softwareentwicklung
Dieser Beitrag ist eine Begriffserklärung zum Thema Spezifikation und Planung – inklusive Prüfungsfragen, Kernkomponenten und Tags.
In a Nutshell
Die Spezifikation legt fest, was ein System tun soll (nicht wie). Sie ist zentrale Grundlage für Entwicklung, Test und Abnahme. Planung organisiert die Umsetzung.
Kompakte Fachbeschreibung
In der frühen Projektphase wird auf Basis einer Anforderungsspezifikation eine Programmspezifikation erstellt. Diese definiert fachliche und technische Anforderungen detailliert.
Aus funktionalen Anforderungen werden Datenmodelle und Datenstrukturen abgeleitet – oft in Form von ER-Modellen oder UML-Klassendiagrammen. Zusätzlich werden Schnittstellen festgelegt (Datenformate, Protokolle, Authentifizierung, Fehlerverhalten). Eine gute Spezifikation ist vollständig, widerspruchsfrei, nachvollziehbar und prüfbar.
Diese Phase beeinflusst Aufwand, Qualität und Wartbarkeit maßgeblich.
Prüfungsrelevante Stichpunkte
- Programmspezifikation als Grundlage für Entwicklung und Test
- Datenmodellierung aus fachlichen Anforderungen ableiten
- Datenstrukturen nach Zweck und Zugriffsart entwerfen
- Schnittstellen zwischen Modulen und externen Systemen definieren (IHK-relevant)
- Spezifikationen dokumentieren und versionieren (Praxisbezug)
- Fehler in dieser Phase führen zu hohen Kosten (Wirtschaftlichkeit)
- Genaue Spezifikation spart Entwicklungszeit
- Muss im Pflichtenheft/Fachkonzept dokumentiert sein (Dokumentationspflicht)
Kernkomponenten
- Fachliche Anforderungen
- Technische Anforderungen
- Programmspezifikation
- ER-Modell oder UML-Klassendiagramm
- Datenstrukturen (Arrays, Listen, Maps)
- Schnittstellen (REST, SOAP, File-Importe)
- Pflichtenheft als verbindliches Dokument
- Validierungsregeln und Constraints
- API-Dokumentation
- Testkriterien auf Basis der Spezifikation
Einfaches Praxisbeispiel
Fachanforderung (Onlineshop): Vorname, Nachname, E-Mail, Bestellhistorie.
Datenmodell:
Tabelle Kunde(id, vorname, nachname, email)
Tabelle Bestellung(kunden_id, datum, gesamtpreis)
Schnittstelle:
REST-API POST /bestellungen
Request-Body: JSON mit Produkt-IDs und Kundennummer
Erklärung: Aus Anforderungen werden Datenstrukturen (Tabellen) und Schnittstellen abgeleitet.
Vorteile und Nachteile
Vorteile
- Grundlage für klare Kommunikation zwischen Stakeholdern
- Ermöglicht gezielte Entwicklung und Tests
- Reduziert Missverständnisse und spätere Fehler
- Verbessert Wartbarkeit und Skalierbarkeit
Nachteile
- Aufwändig bei unklaren Anforderungen
- Hoher Abstimmungsbedarf
- Hoher Dokumentationsaufwand
Typische Prüfungsfragen (mit Kurzantwort)
- Zweck einer Programmspezifikation? Detailliert beschreiben, was das Programm leisten soll – Basis für Entwicklung und Test.
- Wie leitet man ein Datenmodell ab? Entitäten, Attribute und Beziehungen identifizieren, z.B. mit ER-Diagrammen.
- Was muss bei Schnittstellen spezifiziert werden? Datenformat, Protokoll, Auth, Antwortverhalten, Fehlercodes.
- Warum ist Spezifikation wichtig für QS? Sie macht präzise Tests möglich und verhindert Fehlentwicklungen.
- Was gehört in ein Pflichtenheft? Ziele, Funktionen, Datenflüsse, Schnittstellen, Anforderungen, Testszenarien.
Freie Antwort
Eine gute Spezifikation liefert klare, messbare und testbare Vorgaben. Besonders prüfungsrelevant ist die Ableitung von Datenmodellen und die Definition von Schnittstellen inklusive technischer Details, Grenzfällen und Fehlerzuständen. Gute Spezifikationen denken auch Erweiterbarkeit und Wartbarkeit mit.