Powerpoint - Requirements Engineering Flashcards
Requirements Engineering - Motivation
Was ist Requirements Engineering?
- Ermittlung von Anforderungen an ein (Software-)projekt in ingenieurmäßiger Herangehensweise
- Automatische Massenberechnung mit DGMs!
- Datenschutz
- Einfache Bedienung!
——>Requirements Engineer
Wieso brauchen wir Requirements Engineering?
- Anforderungen sind oft unklar definiert -> müssen ermittelt werden
- Fehlende Anforderungen sind Hauptursache für Projektfehlschläge
- Die ausführliche Ermittlung der Anforderungen bildet die Grundlage für funktionierende Software
Die Anwender von Software sind i.d.R. nicht die Programmierer der Software!
https://ibb.co/kGFcgJK
Requirements Engineering - Hauptaufgaben des Requirements Engineers
1 Ermitteln von Anforderungen
2 Dokumentation der Anforderungen
3 Prüfen & Abstimmen der Anforderungen
4 Verwalten der Anforderungen
Requirements Engineering - Anwendungsfälle - Definition:
Anwendungsfälle (Use Cases) beschreiben bestimmte Nutzungssituationen, in denen das System eine bestimmte Funktionalität einem oder mehreren Akteuren zur Verfügung stellt. Der Akteur verfolgt ein bestimmtes Ziel und mithilfe des Systems wird das Ziel durch die Ausführung der jeweiligen Systemfunktion erreicht.
Requirements Engineering - Methoden zur Informationsgewinnung:
- Gespräch mit Nutzer
- Beobachtung der Nutzer
- Fragebogen
- Workshop
→ Ermittlung von Szenarien, welche dann verallgemeinert als Anwendungsfälle beschrieben werden
Requirements Engineering - Beschreibung von Anwendungsfällen:
- Use-Case-Diagramm
- Use-Case-Beschreibung
Use-Case-Diagramm
https://ibb.co/GQMrHJJ
Use-Case-Beschreibung
- Erläutern die einzelnen Anwendungsfälle in Textform näher
- Beinhaltet folgende Informationen:
- Name
- Kurzbeschreibung
- Akteure
- Vorbedingung
- Fachlicher Auslöser
- Hauptszenario
https://ibb.co/kc0W1Cw
Requirements Engineering - Was ist eine Anforderung?
(1) Bedingung oder Fähigkeit, die ein Benutzer benötigt um ein Problem zu lösen.
(2) Bedingung, die ein System erfüllen muss, um die vom Nutzer gestellten Probleme zu lösen.
(3) Dokumentiert Repräsentation einer Bedingung oder Eigenschaft.
Requirements Engineering - Wie wird eine Anforderung erstellt?
- Anforderungskontext identifizieren und darstellen
- Anforderungen textuell erfassen
- Anforderungstemplates anwenden
- Natürlichsprachliche Methode anwenden
- Anforderungsqualitätsmerkmale definieren und berücksichtigen
- Produkt-, Projekt- und Plattformanforderungen differenzieren
- Funktional, nicht-funktional und Zusicherung differenzieren
- Qualitätsanforderungen definieren und erfassen
Requirements Engineering - Funktionale Anforderungen beschreiben
- Dienste die das System leisten soll: z.B. Laden einer Karte
- Das Ermöglichen von Eingaben: z.B. Eingabe Koordinatendatei
- Reaktionen des Systems auf Eingaben: z.B. Darstellung der Datei
- Situationsunabhäniges Verhalten des Systems: z.B. Reaktion des Systems soll von Fall zu Fall verschieden sein
- Funktionen, die nicht Teil des Systems sind
- Siehe auch Seite 30 (Satz-/ Anforderungsschablonen)
- Unterteilt in drei verschiedene Faktoren:
- Basisfaktoren
- Leistungsfaktoren
- Begeisterungsfaktoren
https://ibb.co/MPqTmDF
Requirements Engineering - Dokumentieren der Anforderungen
- Adäquates, natürlichsprachliches Beschreiben
- Eindeutig, testbar und verständlich
- Modellbasierte Dokumentationstechniken
- Nutzung von Videos o.ä. um Verbindung zwischen Vorstellung und Realität herzustellen
Requirements Engineering - Nicht-funktionale Anforderungen
https://ibb.co/gSGXsqs
Technologische Anforderungen:
- Hardwareanforderungen
- Architekturanforderungen
- Anforderungen an Programmiersprachen und -Datenaustausch
Dokumentation:
-natürlich-sprachlich
-graphisch
———————————————————————
Anforderungen an die Benutzeroberfläche:
-Schnittstellen zur Interaktion des Menschen mit dem System
-Form und Funktion von Ein- und Ausgabeelementen
Dokumentation: -bildlich -Zustands-automaten -Tabellen -Prototypen -------------------------------------------------------------------------- Qualitätsanforderungen: - Angaben über Güte des Produktes, des Prozesses oder der am Prozess beteiligten Personen
Dokumentation:
- natürlich-sprachlich
—————————————————————————
Anforderungen an sonstige Lieferbestände:
z.B. Lieferung eines Installationshandbuches neben Software
Dokumentation:
natürlich-sprachlich
—————————————————————————
Anforderungen an durchzuführende Tätigkeiten:
-Nach welcher Art und Weise soll das System entwickelt und eingeführt werden.
-Anforderungen an Vorgehensweise, anzuwendende Standards
-Hilfsmittel/Tools
-Durchführung von Besprechungen und Abnahmetests sowie Festlegung von Terminen
Dokumentation:
- natürlich-sprachlich
- Geschäfts-prozess-analyse
Rechtlich-vertragliche Anforderungen:
- z.B. Angaben zu Zahlungen und zu Vertragsstrafen
- Umgang mit Änderungen der Anforderungen
Dokumentation:
- natürlich-sprachlich
- im Vertrag geregelt
Requirements Engineering - Wozu werden nicht-funktionale Anforderungen benötigt?
- vollständige Anforderungsspezifikation
- zufriedene Kunden
- sichere Planung
- Rechtssicherheit
- gesteigerte Produktivität
Requirements Engineering - Funktionale Anforderungen
- Technologische Anforderungen
- Anforderungen an die Benutzer-oberfläche
- Qualitäts-anforderungen
- Anforderungen an sonstige Liefer-bestandsteile
- Anforderungen an durchzuführende Tätigkeiten
- Rechtlich-vertragliche Anforderungen
Requirements Engineering - Qualitätskriterien für jede einzelne Anforderung
Für jede einzelne Anforderung gilt:
Zentrale Frage:
Wie erkenne ich, dass die eigens verfassten Anforderungen wirklich gut sind?
Erster Ansatz:
Vorm Verfassen muss bekannt sein wie eine Anforderung aufgebaut sein soll.
Ziel:
Anforderungen eindeutig verfassen und realistisch sowie umsetzbar gestalten.
Merke:
Alle Anforderungen unterliegen Qualitätskriterien.
https://ibb.co/g90L4XN
Requirements Engineering - Qualitätskriterien für Anforderungsspezifikation
https: //ibb.co/BzJMj97
https: //ibb.co/1Xpf2cR
Requirements Engineering - Qualitätsstandards
https://ibb.co/7KqhsZt
Requirements Engineering - Satz-/ Anforderungsschablonen
= Bauplan, der die syntaktische Struktur einer einzelnen Anforderung festlegt
- Nur Syntax (Struktur)
- Keine Semantik (Inhalt)
- Für funktionale- und nicht-funktionale Anforderungen
- Vereinheitlichung von Formulierungen und Äußerungen
- Um typische Formulierungsfehler zu verhindern/ von vornherein ausschließen
Requirements Engineering - Satz-/ Anforderungsschablonen 1 Schritt:
Verb (Prozesswort) bestimmen, welches als Systemverhalten gefordert wird
drucken, berechnen, speichern, …
Requirements Engineering - Satz-/ Anforderungsschablonen 2 Schritt:
Schablone der Art der Systemaktivität wählen, die vom System gefordert wird
Selbstständige Systemaktivität
-Das System führt den Prozess selbstständig aus.
Benutzerinteraktion
-Das System stellt dem Nutzer die Prozessfunktionalität zur Verfügung.
Schnittstellenanforderung
- Das System führt einen Prozess in Abhängigkeit von einem Dritten aus, ist an sich passiv und wartet auf externes Ereignis.
https: //ibb.co/1n3hTFY
Requirements Engineering - Satz-/ Anforderungsschablonen 3 Schritt:
Rechtliche Verbindlichkeiten festlegen
MUSS rechtlich verbindlich
SOLL dringend empfohlen
WIRD zukünftige Anforderung
https://ibb.co/nm3ySJS
Requirements Engineering - Satz-/ Anforderungsschablonen 4 Schritt:
Objekte und Ergänzungen hinzufügen
Was? Wohin?
Wird vor das Prozesswort gesetzt
https://ibb.co/yWjccW3
Requirements Engineering - Satz-/ Anforderungsschablonen 5 Schritt:
Randbedingungen festlegen
Anforderungen müssen nicht immer ausgeführt werden, sondern unter bestimmten zeitlichen / logischen Bedingungen
WENN zeitliche Bedingung FALLS logische Bedingung
Satzumstellung -> rechtliche Bedingung wird vor das Subjekt gesetzt
https://ibb.co/kgW0Fr1
Requirements Engineering - Satz-/ Anforderungsschablonen 6 Schritt:
Prüfung
Ist alles eindeutig formuliert? Alle – wer alle?
https://ibb.co/0MjdcYN
Requirements Engineering - Satz-/ Anforderungsschablonen MIT und OHNE Bedingung
https://ibb.co/NKKMXst
Requirements Engineering - Satz-/ Anforderungsschablonen Beispiel:
1) bezahlen
2) Benutzerinteraktion:
Das System bietet den Studierenden die Möglichkeit zu bezahlen.
3) Das System soll den Studierenden die Möglichkeit bieten zu bezahlen.
4) ohne Bedingung:
Das System soll den Studierenden die Möglichkeit bieten, das ausgewählte Essen mit der Karte zu bezahlen.
5) mit Bedingung:
Falls genügend Geld auf der Karte ist, soll das System dem Studierenden die Möglichkeit bieten, das ausgewählte Essen mit der Karte zu bezahlen.
6) Unklarheiten beseitigen:
z.B. Wieviel ist genügend Geld? Wer zählt als Student?