Spezifikation von Software Flashcards
Lastenheft
- Anforderungen aus Sicht des Auftraggebers
- Ist-Zustand vs. Soll-Zustand
- Funktionale Anforderungen
- Nichtfunktionale Anforderungen
- Grundlage der Angebote potentieller Auftragnehmer
Pflichtenheft
- Realisierungsvorhaben aus Sicht des Auftragnehmers
- detailliert das Lastenheft
- enthält Kriterien für die Abnahme
- begründet grundsätzliche Plattformentscheidungen
Softwareanforderungen
- schriftlich fixiert, um Missverständnisse zu vermeiden
- funktionale Anforderungen beschreiben, was das System leisten und wie es auf Eingaben und Situationen reagieren soll
- nichtfunktionale Anforderungen beschreiben Beschränkungen der vom System angebotenen Dienste (zeitliche Einschränkungen, Einhaltung von Standards, Plattformkompatibilität)
Ursprünge nichtfunktionaler Anforderungen
- Produkt (z.B. min. Anzahl concurrent users)
- Organisation (z.B. Zugriff auf Unternehmensdatenbanken)
- externen Quellen (z.B. Gesetze, Standards)
Funktionale Anforderungen sollen..
- vollständig sein, also alles enthalten, was der Benutzer benötigt
- konsistent sein, also keine Widersprüche enthalten
Nichtfunktionale Anforderungen
- werden oft als Systemziel formuliert (besser sind messbare Formulierungen)
z. B. Performance: messbar in Transaktionen pro Sekunde bei gegebener Zahl von concurrent users
z. B. Portierbarkeit: konkretisierbar mittels Auflistung der Zielplattformen
Systemziel
Das System sollte für erfahrene Benutzer einfach zu bedienen und so aufgebaut sein, dass Fehler durch den Benutzer minimiert werden.
Verifizierbare nichtfunktionale Anforderung
- erfahrene Benutzer sollen nach 2h Schulung alle Systemfunktionen verwenden können (max. 2 Fehler pro Tag)
Dokumentation von Anforderungen
1) Funktionalität beschreiben
2) Systemaktivität beschreiben (Benutzerinteraktionen, Schnittstelleninteraktion)
3) Verbindlichkeitsgrad beschreiben (Vertragsbestandteil, Leistungsausschluss)
4) Daten beschreiben (Muss- und Kannfelder)
5) Bedingungen beschreiben (Pre- und Postconditions in Use-Case-Dokumenten)
Arten, um Softwareanforderungen zu formulieren
1) natürliche Sprache (Nachteile: ungenaue, verwirrende Formulierungen und Gefahr der Verschmelzung von Anforderungen)
2) in vorstrukturierten Formularen (z.B. Use-Case-Dokument)
3) als graphisches Modell (Sequenz- und Aktivitätsdiagramme aus UML)
Definition Requirement Engineering
- Zur Sammlung der Anforderungen arbeitet das Softwareteam u.a. mit Kunden und Endbenutzern zusammen
- Erfassung von Use Cases
- IT-Terminologie vermeiden
Schwierigkeiten bei Requirement Engineering
- Beteiligten haben unklare Erwartungen
- Beteiligte können Erwartungen nicht in Worte fassen
- Beteiligte haben unrealistische Erwartungen
- Benutzung von unternehmensspezifischer Terminologie
- Erwartungen der Beteiligten widersprechen sich
Nachgelagerter Prozess Requirement Engineering
Anforderungen werden
- klassifiziert, strukturiert, gruppiert
- priorisiert, verhandelt, Konflikte gelöst
- dokumentiert
Requirement Validation
- Validierung der Anforderungen in Review-Meeting von Anbieter und Kunde
- Verständlich? Verifiziert? Vollständig? Widerspruchsfrei? Budget-realistisch?
Was kann Requirement Validation vereinfachen?
- früher Prototyp
- frühzeitiges Ableiten von Testfällen aus Anforderungen