Anforderungsanalyse Flashcards
(30 cards)
Softwarelebenszyklus
Ist ein Prozess der Entwicklung und beinhaltet alle Phasen, die ein Software-Produkt von der ersten Idee bis zur Außerbetriebnahme durchläuft
Phasen im Softwarelebenszyklus
Entwicklung
Anwendung
Wartung
Mögliche Gründe für das Fehlschlagen von Projekten
- unvollständige Anforderungen
- unzureichende Ressourcen
- unrealistische Erwartungen
- Schwächen bei der Planung
- System wurde nicht mehr gebraucht
Qualität der Anforderungen entscheidend!
Gründe für mangelhafte Anforderungsanalyse
- Falsche Annahmen der Stakeholder
- “Fachsprache”
- Kommunikationsprobleme
- unterschiedlicher Erfahrungs- und Wissensstand bei den Projektbeteiligten
Was ist eine Anforderung?
Eine Bedingung oder Fähigkeit, die von einem Benutzer zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt wird
Aktive Stakeholder
Aktive Stakeholder arbeiten direkt am Projekt mit oder sind direkt vom Projekt betroffen
- Leitung
- Projektmitarbeiter
Passive Stakeholder
Passive Stakeholder sind von der Projektdurchführung oder den Projektauswirkungen nur indirekt betroffen
- Interessenvertretung
- Verbände
Anforderungsanalyse
ist ein kooperativer, iterativer, inkrementeller Prozess, dessen ziel es ist zu gewährleisten, dass
- alle relevanten Anforderungen bekannt und in dem erforderlichen Detaillierungsgrad verstanden sind,
- die involvierten Stakeholder eine ausreichende Übereinstimmung über die bekannten Anforderungen erzielen,
- alle Anforderungen konform zu den Dokumentationsvorschriften dokumentiert bzw. konform zu den Spezifikationsvorschriften spezifiziert sind.
Vier Haupttätigkeiten der Anforderungsanalyse
Ermitteln
- Nutzung verschiedener Techniken und Methoden (Interviews, Beobachtung,…)
- Detaillierung und Verfeinerung
Dokumentieren
- Beschreibung der Anforderungen
- Textuelle Beschreibungen
- Modelle (UML)
Prüfen und abstimmen
- Prüfung dokumentierter Anforderungen
- Vielfältige Methoden: Reviews, Prototyping,…)
- Gewährleistung, dass sie geforderten Qualitätskriterien entsprechen
Verwalten
- Anforderungsmanagement
- Strukturierung, Aufbereitung
Arten von Anforderungen
Funktionale Anforderungen
- legt fest, was das Produkt tun soll
Beispiel: Programm soll den Saldo eines Kontos zum Stichtag berechnen
Qualitätsanforderungen,
nichtfunktionale Anforderungen
- geht über die funktionale Anforderung hinaus.
- beschreiben, wie gut das System die Leistung erbringen soll
Beispiel: Programm soll innerhalb einer Sekunde antworten
Randbedingungen (Rahmenbedingungen)
- ist eine organisatorische oder technologische Vorgabe, die die Art und Weise einschränkt, wie das betrachtete System realisiert werden kann.
Beispiel: Programm muss bis zur Messe am … fertig sein
Aufgabe der System- und Kontextabgrenzung
das System von dessen Umgebung abzugrenzen und den Teil der Umgebung zu identifizieren, der die Anforderungen an das zu entwickelnde System bestimmt
Systemkontext
ist der Teil der Umgebung eines Systems, der für die Definition und das Verständnis der Anforderungen des betrachteten Systems relevant ist
Systemkontext - Welche Aspekte müssen beachtet werden
Personen Systeme im Betrieb Prozesse Ereignisse Dokumente
Warum Systemkontext betrachten
- Falscher oder fehlender Systemkontext führt zu unvollständigen oder fehlerhaften Anforderungen
- Anforderungen kommen aus dem Systemkontext
> Ermittlung und Dokumentation des Systemkontextes ist überaus hilfreich
Prozessaktivität Überblick
- Software Spezifikation
- Software Design und Implementierung
- Überprüfung/Testen
- Software Weiterentwicklung
Software Spezifikation
Was soll die Software können
Was sind die Grenzen der Systemoperation & Entwicklung?
Anforderungen analysieren, spezifizieren und validieren
Softwaredesign und Implementierung
Definition, Aktivitäten, Methoden
Eine Softwarestruktur, die Spezifikationen erfüllt
Aktivitäten:
- Architektur-, Komponenten- und Interfacedesign, Abstrakte Spezifikation
- Umsetzung der Anforderungen
Methoden:
- Modelle (Objekt-, Zustands-,…Modelle)
Softwareüberprüfung
Phasen der Softwareüberprüfung
Validation und Verifikation (Tests)
- Komponenten sind unabhängig voneinander
- Systeme und Akzeptanz testen
Phasen: - Fehler finden - Wie kann der Fehler beseitigt werden - Fehler entfernen Programm erneut testen
Softwarevalidation + Teststufen
- Sind die Überlegungen zum Projekt korrekt?
- Entspricht es dem Kundenwunsch?
Teststufen:
- Component - einzelne Komponenten werden getestet
- Systemtest - Test des gesamten Systems
- Akzeptiertes Testen - Mit dem Kunden testen (Herausfinden, ob Spezifikationen eingehalten wurden und der Kunde zufrieden ist)
Softwareevolution
- Weiterentwicklung
- Anpassung an wechselnde Wirtschaftsbedingungen
- Anforderungen können sich ändern/neu hinzu kommen
RUP (Rational Unified Prozess)
3 Sichten
- Dynamische: beschreibt Phasen über Zeit
- Statische: zeigt Aktivitäten des Prozesses
- Praktische: schlägt gute Anwendung vor
- Beginn: für System wird Wirtschaftsfall aufgebaut
- Ausarbeitung: Entwicklung und Verständnis des Problembereichs und Systemarchitektur
- Konstruktion: Systemdesign, Programmierung, Testen
- Wandel: System in operativer Umgebung anwenden
Vorgehensweise:
- Software iterativ entwickeln, Anforderungen managen, Komponentenbasierte Architektur nutzen, Qualität & Veränderungen prüfen
Computer-aided software engineering
Wir sind in der Lage unsere eigenen Werkzeuge für die Systementwicklung herzustellen
- grafische Editoren
- Verwaltung von Begriffen
- GUI
- Debugger zur Fehlerfindung
- Übersetzer
CASE technology (Werkzeuge)
Unterstützt Softwareentwicklung und Evolution (kann Kreativität & Teamarbeit nicht ersetzen)
Aktivitäten:
- Debugger, grafischer Editor, automatischer Übersetzer
CASE technology (Werkzeuge) Klassifikationen
Funktionale Perspektive:
- Tools sind nach Spezifikationen gegliedert
Prozessperspektive:
- Tools sind nach Prozessaktivitäten gegliedert
Integrierende Perspektive:
- nach Organisation in Integrierungseinheiten gegliedert