Was ist ein Stakeholder?
Ein Stakeholder (Interesseneigener) ist:
Eine Person oder Organisation, die Einfluss auf die Anforderungen des Systems hat oder auf die das System Auswirkungen hat.
Beispiel Smart Home System:
Was versteht man unter Requirements Engineering?
Das Requirements Engineering
Ist in systematischer und disziplinierter Ansatz zur Spezifikation und zum Management von Anforderungen mti dem Ziel, die Wünsche und Bedürfnisse der Stakeholder zu verstehen und die Gefahr zu minimieren, ein System auszuliefern, das diese Wünsche nicht erfüllt.
Kommt die Aufgabe zu, die Anforderungen der Stakeholder zu ermitteln, zwecksmäßig zu dokumentieren, zu überprüfen und abzustimmen, sowie die dokumentierten Anforderungen über den gesamten Lebenszyklus zu verwalten.
Damit gilt: Requirement Engineering ist ein kooperativer, iterativer, inkrementeller Prozess, dessen Ziel es ist zu gewährleisten, dass:
Alle relevanten Anforderungen bekannt und in erforderlichem Detaillierungsgrad verstanden sind
Alle Anforderungen konform zu den Dokumentationsvorschriften dokumentiert bzw. konform zu den Spezifikationsvorschriften spezifiziert sind
Die involvierten Stakeholder ausreichende Übereinstimmung über die bekannten Anforderungen erzielen
Nenne mir die Definition und Arten von Anforderungen
Generell gilt
Anforderungen sidn Funktionen und Eigenschaften, die ein System unterstützten sollen.
Funktionale Anforderungen
Ist eine Anforderung bezüglich des Ergebnisses oder des Verhaltens, das von einer Funktion des Systems bereitgestellt werden soll
Qualitätsanforderungen
Ist eine Anforderung, die sich auf ein Qualitätsmerkmal bezieht, das nicht durch funktionale Anforderungen abgedeckt wird (Funktions-, Verhaltens-, Strukturanforderungen)
Legen also die gewünschte Qualität des zu entwickelnden Systems fest (z.B. Performance, Verfügbarkeit, Zuverlässigkeit, Skalierbarkeit, Portabilität des Systems)
Randbedingungen
Ist eine Anforderung, die den Lösungsraum jenseits dessen einschränkt, was notwendig ist, um die funktionalen Anforderungen und die Qualitätsanforderungen zu erfüllen (beziehen sich sowohl auf das betrachtete System als auch auf den Entwicklungsprozess des Systems, z.B. Gesetze oder auch technische Vorgaben)
Welche Kernaktivitäten gibt es im Requirements Engineering?
Ermittlung der Anforderungen
Requirements Engineer unterstützt bei der Identifikation sowohl der bewussten als auch der unbewussten Anforderungen
Es werden die funktionalen Anforderungen, die Qualitätsanforderungen und die Randbedingungen für ein System identifiziert und bewertet.
Prüfung und Abstimmen der Anforderungen
Ziel: Validierung der ermittelten Anforderungen, dazu werden mit den Stakeholdern (Softwaretester, Entwickler etc.) die ermittelten Anforderungen abgestimmt, um ggf. Missverständnisse, sicher widersprechende, konkurrierende oder sich nachträglich ändernde Anforderungen zu identifizieren
Dokumentation der Anforderungen
Ziel: Sicherstellung des aktuellen Erkenntnissstands mithilfte natürlicher Sprache oder Modellierungssprache (z.B. UML)
Welche Schritte muss ein Requirements Engineer durchführen, um die Anforderungen zu ermitteln?
Systemkontext bestimmen: Es wird analysiert, welche Stakeholder und welche anderen Systeme direkt Abhängigkeiten zu dem erstellenden System haben, um eien Idee über die konkreten Quellen für Anforderungen zu bekommen.
Quellen für Anforderungen ermitteln: Typische Quellen für Anforderungen sidn Stakeholder, Dokumente (z.B. Gesetze, Richtlinien) und andere Systeme (z.B. abzulösende Altsysteme oder Konkurrenzsysteme).
Geeignete Ermittlungstechniken auswählen: Je nach Anforderungsquelle, Projektsituation und Art der Anforderungen muss eine geeignete Ermittlungstechnik oder eine Kombination aus verschiedenen Ermittlungstechniken ausgewählt werden (z.B. Befragungstechnik, Kreativitätstechnik, Beobachtungstechnik, Erstellen von GUI-Prototypen).
Anforderungen unter Einsatz der Techniken ermitteln: Aus den bestimmten Quellen mit den gewählten Ermittlugnstechniken werden Anforderungen in dem für die aktuelle Situation erforderlichen Detailgrad ermittelt.
Welche Schritte zur Dokumentation von Anforderungen gibt es?
Bestimmung von Zweck und Zielgruppe
Auswahl der Detailebene und Dokumentationsform
Prüfung, ob Dokumentation noch zu Zweck und Zielgruppe passt
Welche Schritte gibt es um die Kernaktivät zu prüfen und abzustimmen?
Prüfkriterien festlegen
Prüfprinzipien und Prüftechniken auswählen
Prüfung durchführen udn Ergebnisse dokumentieren
Abstimmen der Anforderungen/Konfliktmanagement
Welche Unterschiede gibt es beim Requirements Engineering und Spezifikation?
Requirements Engineering
Aktivitäten, Methoden und Techniken zur Ermittlung, Dokumentation, Prüfung udn Abstimmung von fachlichen Anforderungen
Spezifikation
Aktivitäten zur Dokumentation von detaillierten technischen Anforderungen
Damit eine Erweiterung udn Detaillierng der Dokumentation von Anforderung
Was versteht man unter Spezifikation?
Begriff
Ein Dokument, das die Anforderungen, den Aufbau, das Verhalten oder andere Charakteristika des Systems bzw. der Komponente beschreibt, idealerweise genau, vollständig, konkret und nachprüfbar
Dient z.B. Entwicklern als Grundlage für die Programmierung udn Testen als Grundlage für die Herleitung von Testfällen
Häufig beinhaltet die Spezifikation auch Vorgaben zur Überprüfung der Anforderungen
…mit anderen worten
Ermittelte fachliche Anforderungen werden um technische Anforderungen erweitert und verfienert als Basis z.B. für das Systemdesign, für Testfälle und für Implementierung des Systems
Achtung
Aus Sicht der Spezifikation ist das System eine Black Box, sprich der innere Aufbau ist unbekannt!
Wie ist die Verwendung einer Spezifikation in der Softwareentwicklung?
Anforderungsermittlung -> Spezifikation -> Design -> Implementierung -> integrationstest -> Systemtest -> Abnahme
Nenne mir die Elemente einer Spezifikation
Datenmodell
Enthält die Geschäftsobjekte des Systems
Fachfunktionen
Enthält die Beschreibung der Aufgaben des Systems
Geschäftsregeln
Enthält potenzielle Regeln zu einem Geschäftsobjekt
Technische Schnittstellen
Enthält den Zweck der Schnittstelle, die Datenstruktur
bei einer Schnittstelle zu einem Anwender die graphische Benutzeroberfläche
Anforderungen an Qualitätseigenschaften und Randbedingungen
Nenne die Benutzerschnittstellen der Spezifikation
Inhalte und Aufbau von Dialogmasken
Validierung von Daten
Dialogfluss
Welche Einzelschritte muss man bei der Spezifikation berücksichtigen, wenn man den Aufbau und die Abläufe des Systems bei Spezifikation von Qualitätseigenschaften berücksichtigt.
4 Einzelschritte
Identifikation und Spezifikation fachlicher Komponenten
Spezifikation fachlicher Datenmodelle
Spezifikation von Geschäftsregeln
Spezifikation technischer Schnittstellen für den Datenaustausch
Softwarequalität
Die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung zur Erfüllung gegebener Erfordernisse bezieht
Last changeda month ago