Anforderungsengineering Flashcards
Definieren Sie Anforderungen.
Anforderungen in der Softwaretechnik legen die qualitativen und quantitativen Eigenschaften eines Softwaresystems fest. Sie sind Messlatte für das Qualitätsmanagement, für Test, Validierung und Abnahme der Software.
Was sind Lastenheft und Pflichtenheft?
• Lastenheft:
o Strukturierte Liste der Anforderungen aus Sicht des Kunden/Auftraggebers
• Pflichtenheft:
o Strukturierte Liste der Anforderungen aus Sicht des Auftragnehmers
o Verfeinerung des Lastenheftes
Was versteht man unter Glossar?
Enthält die verwendeten domänenspezifischen Fachbegriffe, bzw. Begriffsdefinitionen.
Definieren Sie Abnahmekriterien.
Abnahmekriterien legen fest, welche Kriterien die Software-Lieferung erfüllen muss, um den Anforderungen zu entsprechen. Sie sollen messbar dargestellt werden.
Was sind Stakeholder?
Stakeholder sind relevante Beteiligte, Betroffene, Nutzer und Interessierte an der Software/Softwareentwicklung. Abhängig von den Stakeholdern unterscheidet man zwischen Nutzer- und Systementwicklungs-Anforderungen.
Beschreiben Sie das Lastenheft.
- Ein Lastenheft beschreibt die Wünsche und Anforderungen an ein Software-System aus der Sicht des Auftraggebers
- Ein Lastenheft kann als ein Ausschreibungsdokument verwendet werden
- Ein Lastenheft ist ein Dokument, das vom Auftraggeber ohne formale Vorgaben erstellt werden kann.
- Für einen Kunden lohnt es sich dennoch das Lastenheft strukturiert aufzubauen. Je klarer man beschreibt, was man will, umso klarer ist die Position im späteren Projekt, bei Verhandlungen zur Aufwandsschätzung und umso geringer sind die entstehenden Projektrisiken.
Beschreiben Sie das Pflichtenheft.
- Ein Pflichtenheft beschreibt die Anforderungen an ein Software-System aus Sicht des Softwareentwicklers
- Ein Pflichtenheft übersetzt die Anforderungen des Auftraggebers in System-Anforderungen, ergänzt und verfeinert diese Anforderungen.
- Ein Pflichtenheft muss strukturiert sein und bildet die Grundlage für Kalkulationen, Planung, Test und Abnahmen der Software
- Ein Pflichtenheft klärt die Frage „was?“ und nicht die Frage „wie?“ die Softwarelösung aussieht.
Zwischen welchen Phasen des Software-Lebenszyklus werden Lasten- und Pflichtenheft eingeordnet?
• Lastenheft:
o zwischen Planungs- und Definitionsphase
• Pflichtenheft:
o zwischen Definitions- und Entwurfsphase
Welche Anforderungsarten gibt es?
- Funktionale Anforderungen
* Nichtfunktionale Anforderungen
Wie sind funktionale Anforderungen definiert?
Funktionale Anforderungen legen eine vom Softwaresystem bzw. einer seiner Komponenten bereitzustellenden Funktionalität bzw. Service zur Lösung eines Problems fest.
WAS soll ein Softwaresystem tun?
Wie sind nichtfunktionale Anforderungen definiert?
Nichtfunktionale Anforderungen, auch Quality of Service (QoS) Anforderungen genannt, beschreiben alle qualitätsbezogenen Eigenschaften, die das Softwaresystem erfüllen muss.
WIE GUT soll eine Funktion erledigt werden?
Nenne Sie Beispiele für nichtfunktionale Anforderungen.
• Funktionalität o z.B. Genauigkeit • Zuverlässigkeit o z.B. Fehlertoleranz • Benutzbarkeit o z.B. Verständlichkeit • Effizienz o z.B. Zeitverhalten • Wartbarkeit o z.B. Änderbarkeit • Portabilität o z.B. Anpassbarkeit
Was sind Problemschwerpunkte bei der Anforderungsbearbeitung?
• Anforderungen sind oft: o Unvollständig o Vage o Widersprüchlich o Falsch o Nicht strukturiert • Anforderungsfehler werden im Produktlebenszyklus oft zu spät erkannt o Änderungen sin kosten- und zeitintensiv
Welche Qualitätsanforderungen gibt es im Kontext der Anforderungsbearbeitung?
- Vollständigkeit
- Eindeutigkeit
- Verständlichkeit
- Redundanzfreiheit
- Nachprüfbarkeit
- Klassifizierbarkeit
- Widerspruchsfreiheit
- Zurückführbarkeit
Was versteht man unter Vollständigkeit?
- Ein Anforderungsdokument ist vollständig, wenn alle funktionalen und nicht funktionalen Anforderungen enthalten sind.
- Eine Anforderung muss die geforderten Funktionalitäten und deren Eigenschaften vollständig beschreiben. Ist die Anforderung noch unvollständig, dann ist dies zu kennzeichnen.
Was versteht man unter Eindeutigkeit? Nennen Sie ein richtiges und ein falsches Beispiel.
- Die Anforderung ist eindeutig, wenn sie für verschiedene Leser (Stakeholder) keine unterschiedlichen Interpretationsmöglichkeiten zulässt.
- falsch: Die Reaktionszeit der GUI muss schnell sein
- richtig: Die Reaktionszeit der GUI muss unter 25ms liegen
Was versteht man unter Verständlichkeit?
• Die Anforderung ist verständlich formuliert, wenn sie mit den vorliegenden Informationen von den erwarteten Stakeholdern eindeutig verstanden wird.
Was versteht man unter Redundanzfreiheit?
• Ein Anforderungsdokument ist redundanzfrei, wenn sich Aussagen in den darin enthaltenen Anforderungen nicht wiederholen
Was versteht man unter Nachprüfbarkeit?
- Eine Anforderung muss so beschrieben werden, dass sie nach der Realisierung überprüfbar bzw. testbar ist. Es muss ein kosteneffektives Verfahren vorhanden sein, mit der eine Person oder eine Maschine überprüfen kann, dass das System die Anforderung erfüllt.
- nicht überprüfbare Anforderungen enthalten Aussagen wie „Funktioniert gut“, „gute Benutzeroberfläche“, „soll normalerweise eintreten“
Was versteht man unter Klassifizierbarkeit?
• Der Anforderung kann eine Wichtigkeitsstufe zugeordnet werden. Einige Anforderungen können essentiell sein z.B. bei lebenskritischen Anwendungen, während andere nur wünschenswert sind.
• Mögliche Klassen sind:
o Soll-Anforderungen: Das Softwaresystem kann ohne die Erfüllung der Anforderung nicht eingesetzt werden.
o Muss-Anforderung: Die Anforderung wertet das Softwaresystem auf, aber die Nichtrealisierung macht das System nicht unbrauchbar
o Kann-Anforderung: Anforderung, die das System u.U. wertvoller macht. Auftragnehmer die Möglichkeit, etwas Zusätzliches dem Auftraggeber anzubieten
Was versteht man unter Widerspruchsfreiheit?
• Ein Anforderungsdokument ist widerspruchsfrei, wenn sich Anforderungen innerhalb des Anforderungsdokuments oder Anforderungen in mitgeltenden Unterlagen, sowie zwischen diesen Dokumenten nicht widersprechen.
Was versteht man unter Zurückführbarkeit?
• Die Anforderung muss sich eindeutig identifizieren lassen, z.B. durch eine eindeutige Anforderungsnummer, die unverändert bleibt. Anforderungen des Pflichtenheftes müssen Anforderungen des Lastenheftes und der realisierenden Softwaremodule referenzieren.
Was ist Anforderungs-Engineering?
• Anforderungs-engineering ist ein kooperativer, iterativer, inkrementeller Prozess, dessen Ziel es ist zu gewährleisten, dass:
o alle relevanten Anforderungen definiert, formell modelliert, verifiziert und in dem erforderlichen Detaillierungsgrad verständlich dokumentiert sind,
o die Stakeholder eine ausreichende Übereinstimmung über die definierten Anforderungen erzielen,
o alle Anforderungen konform zu den Dokumentationsvorschriften dokumentiert bzw. konform zu den Spezifikationsvorschriften spezifiziert sind.
Was ist Anforderungs-Management?
- Modellhafte Abbildung aller Anforderungen, Anforderungsattribute und –strukturen im gesamten Softwarelebenszyklus
- Verwaltung von Anforderungen im gesamten Softwarelebenszyklus
- Konfigurations- und Änderungsverwaltung der Anforderungen
- Rückverfolgbarkeit von Anforderungen im gesamten Softwarelebenszyklus
Auf welche Phasen beziehen sich Anforderungs-Engineering und Anforderungsmanagement?
• Anforderungs-Engineering:
o Auf die ersten zwei Phasen, also Planungs- und Definitionsphase
• Anforderungs-Management:
o Auf alle Phasen
Wie sieht die Vorgehensweise zur Anforderungsermittlung aus?
• Stakeholder festlegen
• Analyse des Projektumfeldes – z.B. Standards, Normen, Gesetze, kulturelle Besonderheiten, Restriktionen
• Anforderungen ermitteln, dokumentieren und modellieren
• Ergebnis:
o Dokumentation der Ergebnisse
o Anwendungsfalldiagramme
Nennen Sie benutzte Techniken und das Ergebnis der Analyse des Projektumfeldes.
• Techniken: o Mind Maps o Brainstorming • Ergebnis: o Liste mit allen Projektumfeld-Elementen
Nennen sie benutzte Methoden und Hilfsmittel zur Ermittlung, Dokumentation und Modellierung von Anforderungen.
• Methoden o Befragungstechniken o Selbstaufschreibung o Feldbeobachtung o Moderationstechniken o Anwendungsfallanalyse • Hilfsmittel o Vorlagen/Muster/Templates/Schablonen für Anforderungen/Lastenheft/Pflichtenheft
Was ist ein Anwendungsfalldiagramm?
- Ein Anwendungsfalldiagramm beschreibt die Interaktion zwischen externen Objekten (Akteuren) und Vorgängen (Anwendungsfällen) im Software-System.
- Überblick über Struktur der Nutzungsfälle und den Beteiligten Akteuren
Was sind die Ziele des Anwendungsfalldiagramms?
- Abstimmung des Systemverhaltens zwischen Systemnutzern und SW-Entwicklern
- Formalisierung der Nutzeranforderungen im Rahmen der Anforderungsanalyse
- Dokumentierung des Systemumfanges für den Softwareentwicklungsvertrag, als Teil des Pflichtenheftes
- Strukturierung des künftigen SW-Systems
- Basis für die Gestaltung der Benutzeroberfläche der SW
Nennen Sie Methoden zur Anforderungs-Verifikation und Verabschiedung.
• Analysemethoden: o Inspektion o Reviews o Round Tables o Peer Reviews • Validierungsmethoden o Gegenüberstellung der Anforderungen mit den Zielen und Visionen o Prüfung der Anforderungen durch Stakeholder • Verabschiedung o Workshops o Stellungnahme
Nennen Sie Beispiele für Application Lifecycle Managment Systeme.
- Polarion
- PTC Integrity
- SAP Solution Manager
- HP Apllication Lifecycle Management
WAS ist ReqIF (Requirements Interchange Format)?
- ReqIF dient als generisches Austauschformat für Anforderungen zwischen verschiedenen Anforderungsmanagementsystemen
- ReqIF ist XML-basiert
- Etabliert ab 2004 durch vorrangig deutsche Automobilkonzerne
- Seit 2010 durch ProStep gepflegt
- 2013 wurde Version 1.1 durch Object Management Group verabschiedet