Requirements Engineering Flashcards
Was sind die Aufgaben des Requirements Engineering
Anforderungen an ein neues Softwareprodukt:
- ermitteln (systematisches Gewinnen der Anforderungen)
- spezifizieren (Beschreibung der Anforderungen unter Berücksichtigung von festgelegten Methoden)
- analysieren und validieren (Unklarheiten beseitigen)
- modellieren (aus Anforderungen fachliche Lösung ableiten)
(Der Weg vom Was (Anforderung) zum Wie (Lösung/Konzept))
Was ist eine Anforderung im Requirements Engineering?
Festlegung, welche Eigenschaften ein zu entwickelndes Softwaresystem besitzen/beschreiben sollen,
sodass damit das Problem gelöst wird.
Welche Schritte durchläuft die Anforderungsspezifikation (aus Kundensicht) bis hin zu der Programmiersicht?
- Anforderungsspezifikation des Kunden
- Modellierung einer fachlichen Lösung (Auftragnehmersicht)
- Entwurf einer technischen Lösung (Architektensicht)
- Implementierung des Systems (Programmiersicht)
- Rückkopplung zwischen benachbarten Sichten führt zu Konkretisierung des Lösungsraums
Was ist ein System in Bezug auf eine gegebene Problemstellung?
= Lösung des Problems
System ist Ausschnitt aus der realen/gedanklichen Welt,
bestehend aus Systemkomponenten bzw. Subsystemen,
die untereinander in verschiedenen Beziehungen stehen.
Warum müssen Anforderungen geändert werden?
- Misskommunikation in der Kommunikation der Stakeholder
- falsche Einschätzung der Machbarkeit
- wachsende/ändernde Anforderungen an das Gesamtsystem
- neue Erkenntnisse durch bspw. Prototypen/Pilotbetrieb
- Änderung im Budget
- ungenaue Formulierung
Was sind typische Probleme bei der Kommunikation von Anforderungen seitens des Auftraggebers?
(Misverständnisse)
- Auftraggeber weiß zu Projektbeginn nicht genau, was er will
- Auftraggeber kann das, wovon er weiß, dass er es will, nicht vollständig mitteilen (implizite Erwartung)
- Auftraggeber versteht nicht, was der Softwareentwickler außer den vorgelegten Beispielen noch leisten könnte
Welche Artefakte werden unabhängig vom Prozessmodell im Requirements Engineering erstellt?
- Anforderungsspezifikation: alle ermittelten, spezifizierten, analysierten und validierten Anforderungen aus Auftraggebersicht
- Glossar: Sammlung der domänenspezifischen Fachbegriffe
- Fachliche Lösung/Produktmodell: analysierte + verifizierte Lösung aus Auftragnehmersicht
Wer erstellt das Lastenheft und was steht darin?
- Auftraggeber
- Gesamtheit der Forderungen an Lieferungen und Leistungen des Auftragnehmers innerhalb eines Auftrags
= Basis eines Angebots
Wer erstellt das Pflichtenheft und was steht darin?
- Auftragnehmer
- erarbeitete Realisierungsvorgaben basierend auf einem vorgegebenen Lastenheft
= typischerweise Inhalt des Angebots (+ Kalkulation und Projektplan)
Wann bedarf es keines Lasten-/Pflichtenhefts?
- z.B. bei internen Kunden
Was ist eine User Story und wann ist die Verwendung von User Stories sinnvoll?
- schriftliche Beschreibung einer Teilfunktionalität, die für den Nutzer/Auftraggeber der Software wertvoll/wichtig ist
- meist in semi-formaler Syntax “Als [Rolle] möchte ich [Funktionalität,…], sodass [Mehrwert]”
User Stories eignen sich, wenn:
- der Kunde tief in den Entwicklungsprozess integriert werden kann
- es vertraglich möglich ist eine Aufwandsschätzung “im Prozess” zu tun (Dienstvertrag/Werkvertrag je Sprint)
- User Stories so genau definiert sind, dass Aufwandsschätzung durch Entwickler möglich ist
- Abnahmekriterien sollten mit jeder Story (Kartenrückseite) dokumentiert werden
–> und somit vor allem in sprintbasierter, also agiler Softwareentwicklung eingesetzt
Nenne vier Ansätze des Requirement-Engineering
- sequentiell
- phasenbezogen (ohne Überlappungen)
- entwicklungsbegleitend (RE findet auch nach Entwicklungsbeginn der Software noch statt)
- produktübergreifend (ein projektunabhängiges RE als Basis für mehrere Software-Entwicklungen)
Was sind Stakeholder?
alle Personen und Organisationen,
die Interesse an einer Softwareentwicklung haben
und/oder von der Softwareentwicklung/dessen Einsatz betroffen sind
- sind Ausgangspunkt für die Erstellung von Anforderungen (explizit: Auftraggeber, implizit: Erwartungshaltung von Nutzern, Verbände, …)
Beschreibe ein Hilfswerkzeug zur Klassifizierung von Stakeholdern
Stakeholder-Matrix:
- je eine Achse für Konfliktpotenzial (bzw. Interesse) am Projekt und Einfluss auf das Projekt
- wichtigste Stakeholder stehen im Quadranten oben rechts –> hohes Konfliktpotenzial und hoher Einfluss
- usw.
Zwischen welchen zwei Kategorien von Anforderungen wird prinzipiell unterschieden?
- Funktionale Anforderungen (legen fest WAS ein System tun soll)
- Nichtfunktionale Anforderungen (legen das WIE fest)