4 Detailaufgaben im Entwicklungsprozess Flashcards
Was ist Requirements Engineering?
Requirements Engineering (RE) ist der Prozess der systematischen Ermittlung, Spezifikation, Validierung und Verwaltung von Anforderungen an ein System oder eine Software.
Welche Phasen umfasst Requirements Engineering?
- Elicitation: Sammeln von Anforderungen von Stakeholdern durch Interviews, Umfragen, Workshops usw.
- Specification: Dokumentation der Anforderungen in klarer und präziser Sprache, oft mit Modellen wie UML oder SysML.
- Validation: Überprüfung, ob die Anforderungen korrekt und vollständig sind.
- Management: Kontinuierliche Verwaltung und Aktualisierung der Anforderungen während des gesamten Projektlebens.
Was ist Anforderungsermittlung?
- relevante Stakeholder identifizieren
- deren Anforderungen aufnehmen
o Sonst Risiko Erfolg des Systems durch Nichtbeachtung einzelner Interessensgruppen
Methoden für das Erheben und Dokumentieren von Anforderungen
o Abfrage über einfache Templates oder Formulare
o Interviews oder Workshops
o Stakeholdern erste Visualisierungen und Prototypen gezeigt werden, um weitere Anforderungen zu entlocken.
wireframes, mockup, szenarien
Dokumentationsformen von Anforderungen
o einfache Listen
o Use Cases (Beschreibung eines bestimmten Anwendungsszenarios)
o User Stories (oft im agilen Umfeld genutzt, beschreibt Anforderungen zielorientiert aus der Sicht des Nutzers in alltäglicher Sprache).
Anforderungsermittlung Wasserfall vs. Agil
o Wasserfallmodell versucht vollständige Dokumentation aller Anforderungen zu erreichen
o Agiles Vorgehen alle relevanten Anforderungen so detailliert kennen, Lösung darauf basieren zu lassen
Was ist eine User Story?
- kurze, informelle Beschreibung einer Softwarefunktion aus der Perspektive des Endnutzers
- in agilen Softwareentwicklung, um Anforderungen zu spezifizieren
- Format: “Als [Rolle], möchte ich [Ziel/Wunsch], um [Nutzen].” Zum Beispiel: “Als Kunde möchte ich meine Bestellung online verfolgen können, um sicherzustellen, dass sie rechtzeitig ankommt.”
Beispiel: “Als Kunde möchte ich meine Bestellung online verfolgen können, um sicherzustellen, dass sie rechtzeitig ankommt.”
Was beschreibt eine User Journey?
- beschreibt den gesamten Weg, den ein Nutzer von der ersten Interaktion mit einem Produkt oder einer Dienstleistung bis zum Erreichen seines Ziels nimmt
- Umfasst alle Schritte und Interaktionen, die der Nutzer durchläuft, einschließlich Emotionen und Herausforderungen
- Beispiel: Ein Kunde sucht nach einem neuen Laptop, informiert sich über verschiedene Modelle, liest Bewertungen, kauft schließlich den Laptop und gibt nach dem Kauf Feedback.
Welche Anforderungskategorien gibt es?
- Funktionale Anforderungen: tatsächlich benötigte Verhaltensweisen der Software
o Bsp: Möglichkeit ein Dokument elektronisch zu signieren - Nicht-funktionale Anforderungen: besonderen Aspekte neben der reinen Funktionalität
o Bsp: Leistungs- und Qualitätsanforderungen (Benutzerfreundlichkeit, Geschwindigkeit, Datenmengen, usw.)
o Randbedingungen (einzuhaltende Gesetze, Sicherheitsaspekte) - Übergreifende Projektanforderungen: Zeit und Kosten
o Zieltermin Projekt oder Zwischenergebnisse, Budgethöhe
Beispiel: Möglichkeit ein Dokument elektronisch zu signieren.
Wie werden Anforderungen geprüft?
- Wichtig bei größeren Vorhaben mit verschiedenen Stakeholdergruppen und größeren Projektteam
- Prüfung, dass Anforderungen eindeutig, konsistent und korrekt sind
- überschneidungs- und widerspruchsfrei in Bezug zu den restlichen Anforderungen
- Priorisierung > kritische Funktionen zuerst entwickeln
Was ist Anforderungsmanagement?
- Umgehen mit Änderungen
- klare Definition wie Änderungen an Anforderungen entschieden und dokumentiert (Stichwort Versionisierung) werden
- Anforderungen über Lebenszyklus hinaus nachverfolgen
o in Dokumentation Zusammenhang zwischen Anforderung, Stand der Umsetzung und Dokumentation von Tests einheitlich
Zusammenhang von Agilen Methoden und RE
Agile Methoden und RE ergänzen sich, indem sie eine strukturierte Herangehensweise an die Anforderungsermittlung und -spezifikation mit der Flexibilität und Anpassungsfähigkeit der agilen Entwicklung kombinieren.
Was sind Software Design Patterns?
- Abstrakte Lösungsansätze für wiederkehrende Probleme, die eine Art Lösungsschablone bieten.
- Geeignet für erfahrene Entwickler, die von gemeinschaftlichen Best Practices profitieren und eine gemeinsame Sprache für die Architektur schaffen.
3 Kategorien von Entwurfsmustern
o Erzeugungsmuster (Creational Patterns): Beschreiben die Objekterzeugung.
o Strukturmuster (Structural Patterns): Definieren Beziehungen zwischen Klassen.
o Verhaltensmuster (Behavioral Patterns): Beschreiben das Verhalten der Software.
Architekturmuster:
Muster auf höherer Abstraktionsebene, wie z. B. das Model View Controller (MVC) Muster, das die Software in Daten (Model), Benutzeroberfläche (View) und Steuerlogik (Controller) trennt. Ziel ist erhöhte Wiederverwendbarkeit und Anpassbarkeit, , so dass Änderungen und Erweiterungen an jeweils einer der drei Komponenten weitgehend unabhängig von den anderen Komponenten vorgenommen werden kann