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