Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S...

138
Vorlesung „Softwaretechnologie“ Wintersemester 2014/15 R O O T S Kapitel 4 Anforderungserhebung und Analyse („Requirements Engineering”) Stand: 30.01.2015

Transcript of Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S...

Page 1: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Vorlesung „Softwaretechnologie“

Wintersemester 2014/15 R O O T S

Kapitel 4

Anforderungserhebung und Analyse („Requirements Engineering”)

Stand: 30.01.2015

Page 2: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-2 R O O T S

Kontext

Bisher: Grundlagen

Konfigurationsmanagement

UML

Ab jetzt: Arbeitsabläufe („Aktivitäten“ / „Workflows“)

und dazugehörige Technologien, Werkzeuge, etc.

Anforderungserhebung

Systementwurf

Objektentwurf

Implementierung

Testen

Refactoring

Danach: Prozessmodelle

Organisation des Projektes

Wann, wie viel von welchem Workflow?

Page 3: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Requirements Engineering

System

Design

Object

Design

Implemen-

tation

TestenAnforderungs-

erhebung

Anforderungs-

analyse

Aktivitäten bei der Softwareentwicklung („Workflows“)

Analysis

ModelSubsysteme

class ...

class ...

class ...

Entwurf Quellcode Testfälle

?

class....?

Domain

Object Model

ausgedrückt

als

strukturiert

durchimplementiert

von

realisiert

durch

verifiziert

durch

Use Case

Model

Page 4: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

Requirements Engineering– Was und warum? –

Motivation und Definition

Page 5: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-5 R O O T S

Können Sie so etwas bauen?

Widersprüchliche

Anforderungen

Page 6: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-6 R O O T S

Was ist das?

Mehrdeutige

Anforderungen

Page 7: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-7 R O O T S

Mögliches ObjektmodellInuit

lebt_in

2

anziehen()

laecheln()

schlafen()

Inuit

groesse

Mantel

groesse

farbe

typ

Schuh

anziehen()

beleuchtung

eingang

Iglu

betrete()

verlasse()

groesse

farbe

typ

anziehen()

Page 8: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-8 R O O T S

Genauso mögliches ObjektmodellKopf

2

Gesicht

nase

laecheln()

augenZu()

Ohr

groesse

hoehr()

Kopf

haare

Mund

zahn

groesse

oeffnen()

sprechen()

anziehen()

laecheln()

schlafen()

Page 9: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-9 R O O T S

Objektmodell aus der Sicht des Künstlers

Bild

Sicht 1 Sicht 2

Bild einer

Skulptur

MundAuge Nase JackeHand Bein

Bild eines

Inuit

Page 10: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-10 R O O T S

Welches System sollen Sie bauen?

Unscharfe

Anforderungen

Page 11: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-11 R O O T S

Was ist Requirements Engineering (RE)?

Ziele

Kennen lernen der Anwendungsdomäne

Identifikation von Konzepten, Beziehungen, grundlegendem Verhalten

Bestimmung der Anforderungen an das System

Identifikation der Geschäftsprozesse, die das System unterstützen soll

Identifikation der Funktionen die das System dafür bieten soll

Aktivitäten („Workflows“)

Anforderungserhebung (‚Requirements Elicitation‘):

Definition des Systems in einer Form, die Kunden und Entwickler verstehen

Anforderungsanalyse (‚Requirements Analysis‘)

Technische Spezifikation des Systems in einer für die Entwickler

verständlichen und handhabbaren Form.

Page 12: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-12 R O O T S

Der Requirements Engineering Prozess: Aktivitäten und Produkte

benutzt natürliche

Sprache (abgeleitet von

der Problemstellung)

Requirement

Specification

: Model

erzeugt

benutzt formale oder

semiformale Notation

(z.B. UML)

Analysis Model

: Model

erzeugt

führt zu

Verfeinerung von

Voraussetzung für

Anforderungs-analyse

Notwendigkeit,

Eindeutigkeit,

Konsistenz,

Korrektheit,

Vollständigkeit,

Machbarkeit

Problemstellung

AnforderungenDynamisches Modell,

Objekt Modell

Grundlage

für

: Text

Idee

informelle

Kurzfassung

beschrieben

durch

Anforderungs-erhebung

Page 13: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-13 R O O T S

AnforderungserhebungErhebungsstufen

(1)

Zielsetzung: Unternehmensziele identifizieren: Warum wird das

System gebraucht

Hintergrundanalyse: Sammeln und verstehen von

Hintergrundinformationen über das System

Geschäftsziele

Probleme

System-

grenzen

Ziele

festlegen

Anwendungs-

domäne

Organisations

Struktur

existierende

Systeme

Hintergrund-

analyse

Page 14: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-14 R O O T S

AnforderungserhebungErhebungsstufen

(2)

Wissensorganisation: Organisation, Gewichtung und Zuordnung

der Daten die in den vorherigen Phasen gesammelt wurden

Anforderungen sammeln: Die Nutzer des Systems mit einbinden

um deren Anforderungen zu erfahren

Geschäftsziele

Probleme

System-

grenzen

Ziele

festlegen

Anwendungs-

domäne

Organisations

Struktur

existierende

Systeme

Hintergrund-

analyse

Akteure

identifizieren

Ziele gewichten

Fachwissen

filtern

Wissen

organisieren

Anforderungen

der Anwender

Fachliche

Anforderungen

Organisatori-

sche

Anforderungen

Anforderungen

sammeln

Page 15: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-15 R O O T S

Anforderungsanalyse

Spezifikationsprüfung Überkreuzprüfung der Eindeutigkeit, Konsistenz, Korrektheit und

Vollständigkeit

Notwendigkeitsprüfung Welche Anforderungen tragen nicht zu den Geschäftszielen der Firma bei?

Machbarkeitsprüfung Budget und Zeitplan einhaltbar?

Anforderungsanalyse

NotwendigkeitsprüfungSpezifikationsprüfung Machbarkeitsprüfung

unnötige

Anforderungen

mehrdeutige, ...

Anforderungen

Nicht realisierbare

Anforderungen

Anforderungsverhandlung

Anforderungsdiskussion

Prioritätensetzung

Präzisierung und

Vervollständigung

Anforderungs-

vereinbarung

Page 16: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-16 R O O T S

Anforderungsverhandlung

Anforderungsdiskussion Problematische Anforderungen mit Kunden und Anwendern diskutieren

Prioritätensetzung Identifizierung der kritischen Anforderungen

Anforderungsvereinbarung Verständigung auf die zu erfüllenden Anforderungen (und gegebenenfalls

Änderungen von Anforderungen)

Anforderungsanalyse

NotwendigkeitsprüfungSpezifikationsprüfung Machbarkeitsprüfung

unnötige

Anforderungen

mehrdeutige, ...

Anforderungen

Nicht realisierbare

Anforderungen

Anforderungsverhandlung

Anforderungsdiskussion

Prioritätensetzung

Präzisierung und

Vervollständigung

Anforderungs-

vereinbarung

Page 17: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-17 R O O T S

ProzessqualitätenProduktqualitäten

QualitätVerschiedene Sichten

Inte

rne

Sic

ht

Exte

rne S

icht

BenutzerIn

EntwicklerIn ManagerIn

Zuverlässigkeit

Effizienz

Benutzer-

freundlichkeit

...

Produktivität

Pünktlichkeit

Kontrollierbarkeit

Verifizierbarkeit

Wartbarkeit

Portabilität

Erweiterbarkeit

Page 18: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1 Anforderungserhebung („Requirements Elicitation“)

5.1.1 Anforderungen, Szenarien und Anwendungsfälle („Use Cases“)

5.1.2 Aus Szenarien Anwendungsfälle destillieren

5.1.3 UML Anwendungsfall-Diagramme

5.1.4 Das statische Modell der Anwendungsdomäne („Domain Object Model“)

5.1.5 Dynamische Modellierung der Anwendungsfälle

5.1.6 Zusammenfassung „Anforderungserhebung“

Page 19: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.1 Anforderungen, Szenarien und Anwendungsfälle („Use Cases“)

Arten von Anforderungen

Szenarien und Anwendungsfälle („Use Cases“)

UML Anwendungsfall-Diagramme („Use Case Diagrams“)

Page 20: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-20 R O O T S

Anforderungstypen

WAS: Funktionale Anforderungen

Beschreiben die Interaktionen zwischen dem System und seiner

Umgebung unabhängig von der Implementierung

Die Uhr muss die Zeit ortsabhängig anzeigen

WIE: Nichtfunktionale Anforderungen

Für den Nutzer sichtbare Aspekte des Systems, welche nicht direkt mit

dem funktionalen Verhalten in Beziehung stehen.

Die Reaktionszeit muss unter einer Sekunde liegen

Die Genauigkeit muss innerhalb einer Sekunde sein

Die Uhr muss 24 Std am Tag verfügbar sein, außer zwischen 02:00-02:01 und

03:00-03:01

Nebenbedingungen (“Pseudo requirements”)

Alles was uns in der Umsetzung des Was und Wie einschränkt

Die Implementierung muss in COBOL erfolgen unter Verwendung von DB2.

Muss mit dem Abfertigungssystem von 1956 zusammenarbeiten.

Bedingt durch den Kunden oder der Einsatzumgebung des Systems

Page 21: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-21 R O O T S

Arten der Anforderungserhebung

Greenfield Engineering („Planung auf der grünen Wiese“)

Es existiert kein vorheriges System

Die Anforderungen werden vom Kunden und den Endbenutzern bestimmt

Ausgelöst durch Nutzerbedarf

Reengineering

Re-Design und/oder Re-Implementierung eines existierenden Systems mit

neuerer Technologie

Ausgelöst durch neue verfügbare Technologie

Interface Engineering

Bietet die Dienste eines existierenden Systems in neuer Umgebung

Ausgelöst durch neue verfügbare Technologie oder neuen Marktbedarf

Page 22: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-22 R O O T S

Szenarien und Use Cases

Herausforderung der Anforderungserhebung: Zusammenarbeit von

Leuten mit unterschiedlichem Hintergrund

Nutzer mit Wissen über die Anwendungsdomäne

Entwickler mit Wissen über die Implementierungsdomäne

Überbrücken der Lücke zwischen Nutzer und Entwickler

Szenario: Beispiel der Nutzung des Systems in Form einer Reihe von

Interaktionen zwischen externen Akteuren und dem System

Use Case (UC): Abstraktion, welche eine Klasse von Szenarien beschreibt

Page 23: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-23 R O O T S

Szenarien

“Eine erzählende Beschreibung dessen, was Menschen tun und

erfahren wenn sie versuchen, Computersysteme und Anwendungen zu

benutzen”

[M. Carrol, Scenario-based Design, Wiley, 1995]

Eine konkrete, fokussierte und informelle Beschreibung einer einzelnen

Funktionalität eines Systems, aus Sicht eines einzelnen Akteurs.

Page 24: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-24 R O O T S

Arten von Szenarien

Szenarien können während eines Software-Lebenszyklus an vielen

Stellen Anwendung finden.

As-is Szenario

Zur Beschreibung einer momentanen Situation. Normalerweise während

des Reengineering genutzt. Der Benutzer beschreibt das System.

Visionäres Szenario

Zur Beschreibung eines zukünftigen Systems. Normalerweise genutzt beim

Greenfield Engineering oder Reengineering.

Kann oft weder von Benutzer noch Entwickler alleine erstellt werden

Evaluationsszenario

Benutzeraufgaben, anhand derer das System bewertet wird

Trainingsszenario

Schritt–für–Schritt Anweisungen, um einen Neuling durch das System zu

führen

Page 25: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-25 R O O T S

Wie finden wir Szenarien? Interview-Techniken

Siehe Exkurs in Ergänzungsfoliensatz „05-exkurs-interviews“.

Page 26: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-26 R O O T S

Ein Akteur hat Verantwortlichkeiten aus denen sich Ziele ergeben

Im System umgesetzte Use Cases dienen dem Erreichen der Ziele

Die Use Cases sind nach den Zielen benannt

Jeder Use Case fasst eine Menge von Szenarien zusammen

Ein Szenario kann sich auf Teil-Use Cases beziehen.

BeziehungenAkteur-Ziel-UseCase-Szenario

Akteur Ziel Use Case Szenariohat benennt fasst zusammen

1 n

1

nBedingung

Erfolgreich/

nicht erfolgreich

Verantwortlichkeithat

1

n

bezieht sich auf

1

nTeil-UseCase

Page 27: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-27 R O O T S

Ziele, Use Cases und Szenarien (1)

Ein Ziel fasst eine Systemfunktion in einer verständlichen,

überprüfbaren Weise zusammen

Ein Use Case verbindet ein Ziel mit den zugehörigen Szenarien

Der Name des Use Case ist seine Zielsetzung:

“Bestelle Produkt”

Beachte die Grammatik: das aktive Verb steht am Anfang

Ein Szenario spezifiziert wie sich eine Voraussetzung auswirkt

Szenario (1): Alles funktioniert wie vorhergesehen...

Szenario (2): Zu wenig Guthaben...

Szenario (3): Produkt nicht mehr vorrätig...

Page 28: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-28 R O O T S

sz1 sz2 sz6 sz7 ...sz3

Erfolgreiche endende SzenarienNicht erfolgreich

endende Szenarien

sz4 sz5Nebenziel

(Szenario):

Ziele, Use Cases und Szenarien (2)

Ziel (Use Case): “Bestelle Produkt”

Page 29: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Requirements Engineering

System

Design

Object

Design

Implemen-

tation

TestenAnforderungs-

erhebung

Anforderungs-

analyse

Use-Case-getriebener Softwareentwicklungsprozeß

Analysis

ModelSubsysteme

class ...

class ...

class ...

Implementa-

tion Domain

Objects

Quell

Code

Test

Fälle

?

class....?

Domain

Object Model

ausgedrückt

als

strukturiert

durchimplementiert

von

realisiert

durch

verifiziert

durch

* Die erzeugten dynamischen Modelle (und Andere) sind hier aus Platzgründen nicht explizit dargestellt.

Use Case

Model

Page 30: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.2 Von Szenarien zu Use Cases

Aus Szenarien Use Cases destillieren an einem Beispiel

Page 31: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-32 R O O T S

Aus Szenarien Use Case destillieren

Use case Abstraktion zusammengehöriger Szenarios

Szenario Konkreter Einzelfall = Instanz eines Use Case

Scenario

“Brand im Lagerhaus”

Scenario

“Brand in Appartment”

Scenario

“Katze im Baum”

Use Case

“Notfall melden”“Notfall melden”=

Page 32: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-33 R O O T S

Beispiel„Brand im Lagerhaus“ Szenario

Bob, der die Hauptstraße mit seinem Streifenwagen entlangfährt,

bemerkt Rauch der aus einem Lagerhaus dringt.

Seine Kollegin Alice meldet den Notfall von ihrem Wagen aus. Alice

gibt die Adresse des Gebäudes ein, eine kurze Beschreibung des

Ortes (z.B., nordwestliche Ecke) und eine Notfallstufe. Zusätzlich zu

einem Feuerwehrwagen fordert sie mehrere Sanitäter an, da die

Gegend sehr belebt scheint. Sie bestätigt ihre Eingabe und wartet auf

Bestätigung.

John, der Disponent, wird durch einen Piepton seiner Workstation

alarmiert. Er überprüft die Informationen von Alice und bestätigt ihre

Meldung. Er schickt einen Feuerwehrwagen und zwei Sanitäter zum

Unglücksort und sendet Alice ihre voraussichtliche Ankunftszeit.

Alice empfängt die Bestätigung und die voraussichtliche Ankunftszeit.

Page 33: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-34 R O O T S

BeispielNotfall-Management-System

Was benötigt man, wenn jemand einen „Brand in einem Lagerhaus“

meldet?

Wer ist an der Meldung eines Unfalls beteiligt?

Was tut das System, wenn keine Polizeiwagen verfügbar sind?

Was, wenn der Polizeiwagen auf dem Weg zum Brand einen Unfall hat?

Was ist zu tun, um eine „Katze im Baum” zu melden?

Was tut man, wenn die „Katze im Baum” zu einer „von der Leiter

gefallenen Oma” wird?

Kann das System mit gleichzeitigen Brand-im-Lagerhaus-Meldungen

umgehen? Wie?

Page 34: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-35 R O O T S

Aus Szenarien Use Case destillieren

Finde eine „Use Case“-Bezeichnung, die alle Szenarien adäquat

beschreibt

“Notfall melden“ im zweiten Paragraph des „Brand im Lagerhaus“-

Szenarios ist ein möglicher Use Case

Erstelle eine strukturierten textuellen Beschreibung des Use Cases

Siehe Schema auf nächster Folie

Siehe Beispiel auf übernächster Folie

Page 35: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-36 R O O T S

Strukturierte Use Case Beschreibung Schema

Name des Use Case und Kurzbeschreibung

Akteure

Beschreibung der am Use Case beteiligten Akteure

Vorbedingung

Was gelten muss, damit der Use Case durchgeführt werden kann

Ereignisfluss

Schritte die im Standardablauf des Use Case durchgeführt werden

Nachbedingung

Was nach erfolgreichem Ende des Ereignisflusses gilt

Sonderfälle (Alternativabläufe und Fehlerfälle)

Jeweils Name, Verzweigungspunkt („extension point“) im Standardablauf,

auslösende Bedingung, Ereignisfluss im Sonderfall und Nachbedingung

des Sonderfalls ( siehe „extends“-Beziehung)

Spezielle Anforderungen

Nichtfunktionale Anforderungen und Nebenbedingungen

Page 36: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-37 R O O T S

Strukturierte Use Case Beschreibung Beispiel „Termin erfassen“

Kurzbeschreibung: Ein Termin wird für einen oder mehrere Teilnehmer eingetragen.

Akteure: Benutzer

E-Mail-System (zum Versenden von Benachrichtigungen)

...

Vorbedingung: Benutzer ist dem System bekannt und eingeloggt.

Ereignisfluss: 1. Neuer Termin wird erfasst (Zeit, Ort, ...)

2. Teilnehmer werden zugeordnet.

3. Benutzer ist berechtigt für alle Teilnehmer Termine zu

erfassen.

4. Benachrichtigungen werden verschickt.

5. Sichten werden aktualisiert

Nachbedingung: Neuer Termin ist erfasst. Alle Teilnehmer sind verständigt und

alle Sichten sind aktualisiert.

Alternativablauf A1: 3'. Benutzer hat für mind. einen Teilnehmer keine Berechtigung.

...

Fehlerfall F1: Benutzer hat für keinen Teilnehmer die Berechtigung, einen ...

Nachbedingung zu F1: Neuer Termin erfasst, aber ohne Zuordnung zu Teilnehmern. ...

Sta

nd

ard

ab

lau

f

Page 37: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Schrittweise Formulierung eines Use Case Beispiel „Melde Notfall“ (1)

Benenne zuerst den Use Case

„Melde Notfall“

Benenne Akteure: Ersetze Namen durch Rollen die die Akteure spielen

„Streifenbeamter“ (Rolle von Bob und Alice)

„Disponent“ (Rolle von John)

Schreibe den Ereignisfluss auf

Der Streifenbeamte betätigt die “Melde Notfall”-Funktion seines Terminals.

Das System reagiert durch Anzeige eines Formulars.

Der Streifenbeamte füllt das Formular durch Angabe von Stufe, Art und Ort

des Notfalls sowie einer kurzen Lagebeschreibung aus. Zudem schlägt er

mögliche Reaktionen vor. Wenn es ausgefüllt ist, sendet der Streifenbeamte

das Formular, und der Disponent wird sofort benachrichtigt.

Der Disponent überprüft die erhaltenen Informationen und erstellt einen

Notfall in der Datenbank durch Aufruf des NeuerNotfall Use Case. Er wählt

eine passende Reaktion auf den Notfall aus und bestätigt die

Notfallmeldung.

Der Streifenbeamte empfängt die Bestätigung und die gewählte Reaktion.

Page 38: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-39 R O O T S

Schrittweise Formulierung eines Use Case Beispiel „Melde Notfall“ (2)

Schreibe die Ausnahmen auf

Wenn die Verbindung zwischen seinem Terminal und der Zentrale abbricht

wird der Streifenbeamte sofort benachrichtigt, indem ...

Wenn die Verbindung zu einem der eingeloggten Streifenbeamten abbricht

wird der Disponent sofort benachrichtigt, indem ...

Notiere Nichtfunktionale Anforderungen und Nebenbedingungen

Die Meldung des Streifenbeamten wird innerhalb von 30 Sekunden

bestätigt.

Die gewählte Reaktion trifft innerhalb von 0,5 Sekunden nach der Wahl

durch den Disponenten ein.

Page 39: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-40 R O O T S

Verwendung der Use Case Beschreibung Beispiel „Melde Notfall“

Aus der textuellen Beschreibung des Use Cases muss alles Weitere

herleitbar sein

Konzepte und Beziehungen der Objektdomäne

Verhalten des Systems

Techniken

Abbott’s Technik zur Objektidentifikation (siehe Abschnitt über

Anforderungs-Analyse)

Sie kann schon während der Use Case Modellierung genutzt werden

zwecks Erstellung des „Domain Object Model“

Page 40: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.3. Anwendungsfalldiagramme(“UML Use Case Diagrams”)

Wir haben nun Use Cases…Viele …

Wie behalten wir die Übersicht???

Page 41: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-42 R O O T S

Use Case Diagramm „Notfallzentrale“

Melde Notfall

FieldOfficer Disponent

Lege Akte an

Weise Ressourcen zu

Flow of Events:

...

Entry Conditions:

...

Exit Conditions:

...

Special Requirements:

...

Flow

Entry

Exit...

Special

Flow

Entry

Exit...

Special

Notfallzentrale

Page 42: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-43 R O O T S

Beispiel

Use-Case DiagrammElemente

Einsatz

Analysephase

Kommunikation mit Kunde / Benutzer

Strukturierte Erfassung von Use Cases

Elemente

Akteure

System

Use Cases

Annotationen

Beziehungen

System

place order

name

<<extend>>BA

<<include>>A B

<<inherit>>BA

salespersoncustomer

Rolle eines

Akteurs

When placing an

order, ...

...

Page 43: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-44 R O O T S

Verfeinerung und Strukturierung von Use Cases

Ausgangspunkt: Mehrere Use Cases erfasst

Verfeinere und strukturiere die Use Cases durch Assoziationen

Use Case Assoziation = Beziehung zwischen Use Cases

Beziehungen zwischen Use-Cases

Include (funktionale Dekomposition)

Ein Use Case benutzt einen anderen

Extend (Sonderfall)

Ein Use Case ergänzt einen anderen unter bestimmten Bedingungen

Inherit (Generalisierung/Spezialisierung)

Ein abstrakter Use Case mit verschiedenen Spezialisierungen

Page 44: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-45 R O O T S

<<include>>-BeziehungSemantik

Jeder Ablauf des Gesamt-Anwendungsfalls beinhaltet einen Ablauf des

enthaltenen Anwendungsfalls

Die include-Beziehung von A nach B bedeutet, dass A all das

Verhalten von B ausführt (“A delegiert an B”).

A ist abhängig von B (daher auch die Richtung und Art des Pfeiles: der

übliche Abhängigkeitspfeil, lediglich mit einem passenden Stereotyp)

ErzeugeDokument

Scan OCR Prüfe

<<include>><<include>><<include>>

Gesamt-Anwendungsfall

Enthaltener

Anwendungsfall

Page 45: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-46 R O O T S

<<include>>-BeziehungVerwendung

Funktionale Dekomposition

Problem

Ein Use Case ist zu komplex

und muss zerlegt werden.

Gemeinsame Verwendung

Problem

Gemeinsames Verhalten

verschiedener Use Cases muss

ausgedrückt werden

ErzeugeDokument

Scanne OCR Prüfe

<<include>>

Gesamt-Anwendungsfall

Enthaltene Anwendungsfälle

Karte Anzeigen

Notfall

erfassen

Ressourcen

zuweisen

<<include>>

Gesamt-Anwendungsfälle

Enthaltener Anwendungsfall

Page 46: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-47 R O O T S

<<extend>>-Beziehung

Problem

Unter bestimmten Bedingungen (Sonderfälle, Fehlerfälle, …) muss der

Ablauf eines Use-Cases erweitert werden

Lösung / Semantik

Eine extend-Beziehung von Use Case A nach B bedeutet, dass A eine

Erweiterung von B ist, die nur unter der angegebenen Bedingung aktiv ist.

Der erweiterte UC ist unabhängig vom erweiternden UC.

Beispiel

“Notfall erfassen” ist komplett, kann aber in einem Szenario, in dem der

Benutzer Hilfe braucht, durch „Help“ erweitert werden.

Help

Notfall Erfassen

<<extend>>

{F1 gedrückt}Ressourcen zuweisen

<<extend>>

{F1 gedrückt}

Page 47: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-48 R O O T S

System

Erweiternder

Anwendungsfall

«extend»

<<extend>>-BeziehungExtension Points (1)

Anwendungsfall

extension points

XYZ

extension point:

…Ext. Point…

condition:

{…Bedingung…}

Deklaration im erweiterten Use Case

Benannte Stellen im Ereignisfluss

des erweiterten Use Case, wo der

Ablauf des erweiternden Use Cases

einzufügen ist

Bezugnahme in <<extends>>-

Beziehung

Erweiternder Use Case am

Extension Point aktiviert

… falls die spezifizierte extends-

Bedingung gilt

Anwendungsfall

Ereignisfluss:

1. …

2. …

3. …

4. XYZ

5. …

Page 48: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-49 R O O T S

Bestellungssystem

Ware

nachbestellen

«extend»

<<extend>>-BeziehungExtension Points (2)

Bestellung bearbeiten

extension points

Verfügbarkeit sicherstellen

condition:

{ keine Ware vorrätig }

extension point:

Verfügbarkeit sicherstellen

„Ware

nachbestellen“

ist ein Sonderfall

... der an der

Stelle

„Verfügbarkeit

sicherstellen“ im

Ereignisfluss von

„Bestellung

bearbeiten“ auftritt

… falls dann die

Bedingung „keine

Ware vorrätig“ gilt

Bestellung bearbeiten

Vorbedingung: …

Ereignisfluss:

1. …

2. …

3. …

4. Verfügbarkeit sicherstellen

5. …

Nachbedingung: …

Page 49: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-50 R O O T S

<<extend>>-BeziehungExtension Points (3)

Wenn der Auslöser ein „Ereignis“ ist, werden Extension Points

weggelassen

Notfall erfassen

extension points

Hilfe anzeigen

Ersatzstreife

schicken

«extend»

«extend»

condition: { Verbindung abgebrochen }

extension point: ---

condition: { F1 gedrückt }

extension point: ----

Notizen die an die extends-Beziehung

geheftet sind können Bedingung und

Namen von extension points enthalten

Merke: Die Bedingung kann nicht weggelassen werden!

Page 50: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-51 R O O T S

Generalisierung von Use Cases

Ziel

Modellieren, dass verschiedene Use Cases Varianten eines allgemeineren

Ablaufs sind

Prinzip

Die „Kinder“ erben die Kommunikationsbeziehungen, die Bedeutung und

das Verhalten der „Eltern“, modifizieren es aber im Detail.

Beispiel

“Authentifizierung“ prüft die Benutzeridentität. Der Kunde könnte zwei

Umsetzungen fordern: „Via Passwort“ und „Via Fingerabdruck“

Authentifizierung via Passwort

Authentifizierung via Fingerabdruck

Authentifizierung

Page 51: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-52 R O O T S

Beziehungen zwischen Use-Cases

Include-Beziehung

Immer wenn A ausgeführt wird, muss auch Bausgeführt werden

B ist unbedingt nötig, um A auszuführen

Extend-Beziehung

Wenn A ausgeführt wird, kann auch Bausgeführt werden

B ist nicht zwingend nötig, um A auszuführen

Generalisierungs-Beziehung

B und C sind jeweils spezielle Ausprägungen des gesamten Ablaufs von A

Nur eine der verschiedenen Spezialisierungen wird durchgeführt, die aber komplett

BA<<include>>

BA<<extend>>

A B

C

Page 52: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-53 R O O T S

Beispiel „Kalender-Manager“

Benutzer

Kalender-Manager

to-do-Eintrag

erfassen

Termin

erfassen

Page 53: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-54 R O O T S

Beispiel „Kalender-Manager“Varianten

der Eintragserfassung als Generalisierung

Benutzer

Kalender-Manager

to-do-Eintrag

erfassen

Eintrag

erfassen

Termin

erfassen

Page 54: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-55 R O O T S

Beispiel „Kalender-Manager“ <<include>>

für Teilschritte der Terminerfassung

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintrag

erfassen

Eintrag

erfassen

Termin

erfassen

Kalender

aktualisieren

Teilnehmer

verständigen

«include»

«include»

Page 55: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-56 R O O T S

Beispiel „Kalender-Manager“<<extend>>

für Sonderfälle der Programmverwaltung

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintrag

erfassen

Eintrag

erfassen

Termin

erfassen

Kalender

aktualisieren

Teilnehmer

verständigen

«include»

«include»

Programm

verwalten

Einstellungen

verwalten

Zugriffsrechte

verwalten

«extend»

{… geklickt}

Page 56: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-57 R O O T S

Beispiel „Kalender-Manager“Generalisierung zwischen Akteuren

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintrag

erfassen

Eintrag

erfassen

Termin

erfassen

Kalender

aktualisieren

Teilnehmer

verständigen

«include»

«include»

Administrator

Termintypen

verwalten

Benutzer

verwalten

Programm

verwalten

Einstellungen

verwalten

Zugriffsrechte

verwalten

«extend»

“Der

Administrator

ist ein

Benutzer.”

“Er kann auch

alle Use

Cases des

Benutzers

durchführen”

{… geklickt}

Page 57: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-58 R O O T SAdministrator

Termine

Benutzer

Verwaltung

Administrator

Beispiel „Kalender-Manager“Modularisierung durch Packages

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintrag

erfassen

Eintrag

erfassen

Termin

erfassen

Kalender

aktualisieren

Teilnehmer

verständigen

«include»

«include»

Termintypen

verwalten

Benutzer

verwalten

Programm

verwalten

Einstellungen

verwalten

Zugriffsrechte

verwalten

«extend»

{… geklickt}

Page 58: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-59 R O O T S

<<system>>

Kalender-Manager

Beispiel „Kalender-Manager“ Gesamt-

System als geschachtelte Pakete

Pakete können weitere Artefakte beinhalten

Aktivitätsdiagramme

Sequenzdiagramme

Klassendiagramme des Domain Object Model

Textuelle Beschreibungen der Use Cases

Termine Verwaltung

Page 59: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.4 Domain Object Model

Abbott's Technik zur Objektidentifikation

Objektmodellierung

BeispieleGrundlagen der Objektmodellierung

auf dem Detaillierungsgrad der

Anforderungserhebung.

Weitere Notationen, Techniken und

Methoden der Objektmodellierung

werden später schrittweise ergänzt

Page 60: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-61 R O O T S

Domain Object Model (DOM)

Das DOM ist eine Menge von Klassendiagrammen, die Konzepte der

Anwendungsdomäne beschreiben

Klassen

Attribute

Beziehungen

(wenige Operationen)

Vorgehensweise

Dialog mit Benutzer Textuelle Anforderungsspezifikation (Use Cases)

Hauptwörter-Erfassung und –Filterung Verfahren von Abbott

1

Use Case

Model

Domain

Obj. Model

Interface

Model

1

1

Use Case

Diagramm1

Use Case

Beschreibung*

Requirements

Model

UI Spezifikation*

System-

Schnittstellen*

Klassen-Diagramm1

Page 61: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-62 R O O T S

Domain Object ModelBeispiel

„Terminverwaltung“

ToDoListe*1

ToDoEintrag

fälligAm : Datum

relevantAb : Datum

Einzeltermin Serientermin

wiederhDauer

wiederhFrequenz

0,11..*

Werktagstermin

Termin

begin: DatumUndZeit

dauer: Zeit

istVerschiebbar:bool

art:TerminArt

kollidiertMit

*

*

Teilnehmer

1..*

*

Ansicht

Jahresansicht Monatsansicht Wochenansicht Tagesansicht

Exportformat Fax HTML Zeitintervall

Drucker EMail

Page 62: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-63 R O O T S

Objektmodellierung

Hauptziel

Allgemein: Finden der strukturellen Abstraktionen des Systems

Während Anforderungserhebung: Finden der wichtigen Abstraktionen des

Systems soweit sie für den Anwender beobachtbar sind.

Schritte der Objektmodellierung

1. Identifikation von Typen

2. Identifikation von Attributen

3. Identifikation von Methoden

4. Identifikation von Assoziationen zwischen Typen

Reihenfolge der Schritte ist nicht wichtig

Ziel: Erreichen der gewünschten Abstraktionen

Wenn wir zu falschen Abstraktionen kommen iterieren wir das Ganze um

das Modell zu korrigieren

Page 63: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-64 R O O T S

An Use Cases beteiligte Objekte finden

Für jeden Use Case führe folgende Schritte durch:

Finde Begriffe die Nutzer oder Entwickler klären müssen um den

Ereignisfluss zu verstehen

Identifiziere Entitäten der realen Welt, die das System im Auge behalten muss. Beispiele: FieldOfficer, Disponent, Resource

Identifiziere Vorgänge der realen Welt, die das System im Auge behalten muss. Beispiel: Notfallplan

Identifiziere Datenquellen oder -senken. Beispiel: Drucker

Identifiziere Schnittstellen. Beispiel: PoliceStation

Führe eine Textanalyse zum Finden zusätzlicher Objekte durch

(Abbott’s Technik)

Modelliere den Ereignisfluss mit einem dynamischem Diagramm

Fokus hier

Page 64: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-65 R O O T S

BeispielEin Szenario aus der

Problembeschreibung

Jim Smith ist Kunde bei einer großen Bank.

Dort besitzt er ein kostenpflichtiges Konto mit einem Kontostand von

derzeit 2.000 Euro.

Jim Smith geht zum Schalter und zahlt 100,- Euro ein.

Am nächsten Tag betritt Jim Smith die Bank erneut. Er geht zum

Geldautomat und hebt 400,- Euro ab.

Gibt uns diese Beschreibung Hinweise,

wie unser Objektmodell aussehen sollte?

Page 65: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-66 R O O T S

BeispielEin Szenario aus der

Problembeschreibung

Jim Smith ist Kunde bei einer großen Bank.

Dort besitzt er ein kostenpflichtiges Konto mit einem Kontostand von

derzeit 2.000 Euro.

Jim Smith geht zum Schalter und zahlt 100,- Euro ein.

Am nächsten Tag betritt Jim Smith die Bank erneut. Er geht zum

Geldautomat und hebt 400,- Euro ab.

Was haben wir hier gemacht? Satzelemente kategorisiert!

Abbott‘s Textanalyse

Page 66: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-67 R O O T S

Textanalyse von Abbott [Abbott 1983]

Sprachelement Modellelement Beispiel

Eigenname Objekt Jim Smith

Nomen Klasse Kunde, Konto, Bank

„ist“ Generalisierung Sparkonto ist ein Konto

„hat“, „enthält“, … Aggregation Ein Konto hat eine Nummer

Modalverb („müssen“,

„können“, „dürfen“, „sollen“)

Einschränkung

(Constraint)

Kontostand darf bestimmte

Grenze nicht unterschreiten

Adjektiv Attribut kostenpflichtig

Transitives Verb Methode bringen

Intransitives Verb Methode (Event) erscheinen

Zuordnung von Teilen der Sprache zu Komponenten des Objektmodells

Wird vor allem genutzt bei Erstellung des Domain Object Models und Analysemodells

Page 67: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-68 R O O T S

Textanalyse von Abbott [Abbott 1983]

Abbott‘s Technik ist eine Hilfestellung für denkende Menschen, nicht ein

starres Regelwerk für Automaten!

Die Entsprechungen sind Hinweise, keine Gesetze! Selbst

entscheiden, was im konkreten Fall zutrifft ist immer noch erforderlich.

Z. B.: „Tisch hat Beine“ Aggregation

Aber: „Kunde hat Konto“ einfache Assoziation.

Z. B.: „Kind ist Mensch“ Generalisierung

Aber: „Thomas ist Kind“ Instanz!

Die Entsprechungen aus der Abbott-Tabelle sind nicht vollständig!

Sie sollten sie sinngemäß ergänzen.

Z.B: „hat“ „beinhaltet“, „enthält“, „ist Teil von“, …

Page 68: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-69 R O O T S

BeispielSzenario aus der

Problembeschreibung

Jim Smith ist Kunde bei einer großen Bank.

Dort besitzt er ein kostenpflichtiges Konto mit einem Kontostand von

derzeit 2.000 Euro.

Jim Smith geht zum Schalter und zahlt 100,- Euro ein.

Am nächsten Tag betritt Jim Smith die Bank erneut. Er geht zum

Geldautomat und hebt 400,- Euro ab.

OK, wir haben nun erste Hinweise was Objekte, Methoden, ... sein

könnten.

Wie geht's nun weiter? Diagramme erstellen!

Page 69: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-70 R O O T S

ObjektmodellierungKlassenidentifikation

Name der Klasse

Attribute

Methoden

Konto

kontostand

kundennr

einzahlen()

abheben()

kontostand()

Page 70: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-71 R O O T S

ObjektmodellierungIteration

Finde neue Objekte: Kunde, Bank

Iteriere über Namen, Attribute und Methoden

Verlagere Daten und Verantwortlichkeiten an die passendste Stelle

Konto

kontostand

kundennr

einzahlen()

abheben()

kontostand()

Konto

einzahlen()

abheben()

kontostand()

Kunde

Bank

name

kontostand

kundennr

name

kundennr

Page 71: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-72 R O O T S

ObjektmodellierungAssoziationen

Name und Rollen

Art (Assoziation, Aggregation, Komposition)

Kardinalitäten

Konto

einzahlen()

abheben()

kontostand()

Kunde

name

kundennr

Bank

name

kontostand

hat1..* 1..*

1..*

Page 72: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-74 R O O T S

ObjektmodellierungKategorien finden

(Vererbung)

Konto

kontostand

einzahlen()

abheben()

kontostand()

Kunde

name

kundennr

Bank

namehat1..* 1..* 1..*

Festzinskonto

abheben()

Sparkonto

abheben()

Tagesgeldkonto

abheben()

Page 73: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-75 R O O T S

ObjektmodellierungQualifizierte

Assoziation

Eine „Qualifikation“ (engl. „Qualifier“) präzisiert die

Multiplizitätsangaben einer Assoziation

Er wird benutzt, um 1-n Multiplizitäten auf 1-1 Multiplizitäten zu reduzieren

Das entspricht der Indizierung der Elemente am gegenüberliegenden Ende

der Assotiation durch „Qualifikations“-Werte

Mit Qualifikation: Ein Verzeichnis enthält viele

Dateien, jede mit einem einmaligen Namen.

Der Dateiname dient als Index der jede Datei in einem

Ordner eindeutig identifiziert.

Ohne Qualifikation: Ein Verzeichnis enthält viele

Dateien.

Verschiedene Dateien im gleichen Verzeichnis könnten

den gleichen Namen haben!

Ordner Dateidateiname

Ordner Datei

dateiname

inhalt

1 *

0..11

öffnen()

Ordner

inhalt

öffnen()

Page 74: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-76 R O O T S

ObjektmodellierungZusammenfassung

Ableitung eines Objektmodells aus einem Use Case Modell

Identifikation von Objekten / Klassen

Identifikation von Attributen and Operationen

Generalisierung

Identifikation von Assoziationen, Aggregation und Komposition

Reduzierung der Multiplizität mit Hilfe von qualifizierten Assoziationen

Die besprochenen Techniken sind allgemeiner Natur und können

jederzeit eingesetzt werden

Anforderungs-Erhebung für Domain Object Model

Analyse für Analyse-Modell

Design für Design-Modell

Sie wurden hier vorgestellt, da sie grundlegend sind und hier zum

ersten Mal Verwendung finden

Page 75: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

Erstellung des Domain Object Model– Ausführliches Beispiel –

Use Case als Ausgangspunkt

Anwendung der Technik von Abbott

Verfeinerung des nach Abbot erstellten Domain Object Model

Page 76: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-78 R O O T S

BeispielEreignisfluss aus Use Case als

Ausgangspunkt

Stellen Sie Sich vor, dass Ihre Kundin, eine Großhändlerin, die

Softgetränke an Supermärkte liefert, ein System wie folgt beschreibt:

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Anstelle der Rückgabe von Münzgeld druckt die PRM eine Quittung

über die Summe der entstandenen Pfandbeträge. Diese Quittung kann

durch einen Bar Code Scanner eingelöst werden.

Die PRM generiert für unsere Betreiberin täglich einen Bericht. Ein

Bericht beinhaltet eine Liste aller an diesem Tag zurückgegangenen

Behälter, sowie die Tagessumme an ausgezahltem Pfand-Geld.“

Page 77: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-79 R O O T S

BeispielTextanalyse nach Abbott Hervorheben der Textelemente

Substantive / Nomen / Hauptwörter Klassen

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Anstelle der Rückgabe von Münzgeld druckt die PRM eine Quittung

über die Summe der entstandenen Pfandbeträge. Diese Quittung kann

durch einen Bar Code Scanner eingelöst werden.

Die PRM generiert für unsere Betreiberin täglich einen Bericht. Ein

Bericht beinhaltet eine Liste aller an diesem Tag zurückgegangenen

Behälter, sowie die Tagessumme an ausgezahltem Pfand-Geld.“

Page 78: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

BeispielTextanalyse nach Abbott Klassen extrahieren

Substantive / Nomen / Hauptwörter Klassen

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Dose

Behältertyp

Pfandbetrag

Betreiberin

Flasche Kasten

Page 79: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

BeispielTextanalyse nach Abbott Assoziationen extrahieren

Substantive + Verben + Attribute Klassen + Assoziationen

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Dose

Behältertyp

Pfandbetrag

Betreiberin

Flasche Kasten

nimmt zurück

aufgestellt in

ka

nn

ein

ste

llen

hat

gilt für

Page 80: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

BeispielSchematisch erstelltes Domain

Object Model überdenken (1)

Vererbungshierarchie überdenken

Dosen, Flaschen und Kästen sind doch eigentlich Behältertypen!

Die Klasse „Behältertyp“ oder die Unterklassen von „Getränkebehälter“

sind redundant.

Entscheidungshilfen

Welche Klassen besitzen kein eigenes Verhalten?

Welche Klassen liefern als einzige Information ihre Klassenzugehörigkeit?

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Dose

Behältertyp

Pfandbetrag

Betreiberin

Flasche Kasten

nimmt zurück

aufgestellt in

ka

nn

ein

ste

llen

hat

Hierzu sollten Sie unbedingt

erst Methoden identifizieren!

Hier wurde aus Platzgründen

diesem Schritt vorgegriffen.

gilt für

Page 81: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

BeispielSchematisch erstelltes Domain

Object Model überdenken (2)

Korrektur-Maßnahmen: Klasse zu Attribut konvertieren, wenn

sie kein eigenes Verhalten besitzt Pfandbetrag

sie als einzige Information ihre Klassenzugehörigkeit liefert Dose, ...

Anwendung des Prinzips in unserem Beispiel

Pfandbetrag Attribut von „Behältertyp“

Dose, Flasche, KastenWerte des „Name“-Attributs von „Behältertyp“

Name

Pfandbetrag

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

nimmt zurück

aufgestellt in

bestimmt Pfand für

hatBehältertyp

Page 82: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-87 R O O T S

BeispielSchematisch erstelltes Domain

Object Model überdenken (3)

Korrektur-Maßnahmen: „Inline Class“

Überflüssige Klasse ( „Behältertyp) identifizieren und ihre Elemente in

eine per Assoziation verbundene Nachbarklasse einbetten

Anwendung des Prinzips in unserem Beispiel

Die Attribute „Name“ und „Pfandbetrag“ wandern in „Getränkebehälter“

„Name“ wird in „Behältertyp“ umbenannt

Die Klasse „Behältertyp“ wird eliminiert

Behältertyp

Pfandbetrag

Betreiberin

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

nimmt zurück

aufgestellt in

bestimmt Pfand für

Page 83: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-88 R O O T S

BeispielFortsetzung der Textanalyse nach AbbottMethoden extrahieren

Verben Methoden

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Behältertyp

Pfandbetrag

Betreiberin

nimmt zurück

aufgestellt in

pfandEinstellen(

Typ,Betrag)

setzePfand()

setzeTyp()

aufstellen()

zurücknehmen(Behälter)

bestimmt Pfand für

Page 84: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-90 R O O T S

BeispielFortsetzung der Textanalyse nach AbbottAlles Weitere

Fortsetzen für weitere Sprachelemente (Z.B. Adjektive)

Anwendung des Ganzen auf den Rest der Aufgabenstellung

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestellt

um wiederverwendbare Getränkebehälter zurückzunehmen (leere

Dosen, Flaschen und Kästen, welche Endbenutzern geliefert werden).

Für jeden Behältertyp kann unsere Betreiberin einen individuellen

Pfandbetrag einstellen.

Anstelle der Rückgabe von Münzgeld druckt die PRM eine Quittung

über die Summe der entstandenen Pfandbeträge. Diese Quittung kann

durch einen Bar Code Scanner eingelöst werden.

Die PRM generiert für unsere Betreiberin täglich einen Bericht. Ein

Bericht beinhaltet eine Liste aller an diesem Tag zurückgegangenen

Behälter, sowie die Tagessumme an ausgezahltem Pfand-Geld.“

Page 85: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-91 R O O T S

BeispielEndergebnis für gesamten Text

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

Bestand

pfandEinstellen(

Typ,Betrag)

aufstellen(PRM)

zurücknehmen(Behälter)

reportErzeugen : Report

quittungDrucken

Bericht

/summe : Double

/Erstattungen

summe():Double

Quittung

/summe : Double

summe():Double

BarcodeReader

scannQuittung:Quittung

Behältertyp

Pfandbetrag:Double

setzePfand(Double)

setzeTyp()

bestimmt Pfand für

Erstattungen

aufgestellt in

Page 86: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-92 R O O T S

BeispielEndergebnis weitergedacht

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

Bestand

aufgestellt in

pfandEinstellen(

Typ,Betrag)

getPfand(Double)

setzeTyp(Behältertyp)

aufstellen(PRM)

getPRM():PRM

zurücknehmen(Behälter)

reportErzeugen : Report

quittungDrucken

pfandEinstellen(Behältertyp,Betrag)

Bericht

/summe : Double

/Erstattungen

summe():Double

Quittung

/summe : Double

summe():Double

Erstattungen

Behältertyp

Name

Pfandbetrag

ist vom typ

BarcodeReader

scannQuittung:Quittung

Die Betreiberin hat nun keine Assoziation

mehr zum Getränkebehälter. Sie braucht

daher die Methode getRPM(), um an die

Pfandrückgabemaschine(n) zu gelangen,

denen sie neue Behälterpreise setzen

soll.

Alle Getränkebehälter-Instanzen, die

Dosen sind, können nun mit der

selben Instanz von Behältertyp

assoziiert werden, so dass es keine

Redundanzen mehr gibt -> Der

Pfandbetrag für Dosen wird in genau

einem Behälter-Objekt verwaltet.

Page 87: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.5 Dynamische Modellierung von Anwendungsfällen

Page 88: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-94 R O O T S

AnforderungserhebungGesamtüberblick

1. Analysiere die Problembeschreibung

Identifiziere funktionale Anforderungen

Identifiziere nichtfunktionale Anforderungen

Identifiziere Nebenbedingungen (Pseudo-Anforderungen)

2. Entwickle das funktionale Modell

Entwickle Use Cases zur Illustration der funktionalen

Anforderungen

3. Entwickle das Objektmodell

Entwickle Klassendiagramme, die die Struktur des Systems beschreiben

4. Entwickle das dynamische Modell

Aktivitätsdiagramme für Geschäftsprozesse

Interaktionsdiagramme für das Zusammenspiel von Objekten

Zustandsdiagramme für die internen Abläufe von Objekte mit

interessantem Verhalten

Input für

Page 89: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-95 R O O T S

SpielzeugautoProblembeschreibung

Strom wird angeschaltet

Auto fährt vorwärts

Scheinwerfer leuchtet

Strom wird ausgeschaltet

― Auto hält an

Scheinwerfer geht aus

Strom wird angeschaltet

Scheinwerfer leuchtet

Strom wird ausgeschaltet

Scheinwerfer geht aus

Strom wird angeschaltet

Auto fährt rückwärts

Scheinwerfer leuchtet

Strom wird ausgeschaltet

― Auto hält an

Scheinwerfer geht aus

Strom wird angeschaltet

Scheinwerfer leuchtet

Strom wird ausgeschaltet

Scheinwerfer geht aus

STOP STOP

Page 90: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-96 R O O T S

SpielzeugautoVerschiedene Modelle

Klassendiagramm

Sagt nichts über das Verhalten

Jedes “ein()” tut etwas anderes!

Sequenzdiagramm

Modelliert asynchrones Verhalten

... allerdings nur einen Ausschnitt

Rad

Richtung: (Vor,

Rück,

Stop)

ein()

aus()

Licht

Status: (an,

aus)

ein()

aus()

Auto

ein()

aus()

:Licht :Rad

ein()

aus()

Benutzer:Auto

ein()

aus()

ein()

ein()

aus()

ein()

vor()

stop()

Page 91: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-97 R O O T S

SpielzeugautoBewertung des

Sequenzdiagramms

Drückt nicht aus, dass sich die

Vorgänge beliebig wiederholen

können

keine feste Wiederholungszahl

keine feste Endbedingung

Dass beim nächsten

Einschalten des Stroms nach

dem Stop die Räder still stehen

wurde im Auto modelliert

Das Auto schickt in diesem Fall

keine Nachricht an die Räder

Das Auto ist für die

Modellierung des Verhaltens

der Räder mit zuständig

Ist das gut oder schlecht?

:Licht :Rad

ein()

aus()

Benutzer:Auto

ein()

aus()

ein()

ein()

aus()

ein()

vor()

stop()

Page 92: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-98 R O O T S

SpielzeugautoZustandsdiagramm

Hier wird das Verhalten von Licht und Rädern komplett und kompakt

ausgedrückt – einschließlich der Unabhängigkeit der beiden Aspekte

„Die Moral von der Geschicht“ Oft ist die Wahl der richtigen Notation

schon der wichtigste Teil der Lösung geleistet.

Um so wichtiger, genau zu verstehen, was welcher Diagrammtyp

ausdrücken kann.

Licht Rad

Aus

An

Strom

an

Strom

aus

Stop 2Vor

do Vorfahren

Zurückdo Zurückfahren

Stop 1 Strom

an

Strom

aus

Strom

aus Stop 3

Stop 4

Strom

an

Strom

aus

Strom

anStop 5

Strom

anStop 6

Strom

aus

Page 93: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.1.6 Zusammenfassung

Was Sie sich zur Anforderungserhebung mindestens merken sollten

Page 94: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-102 R O O T S

AnforderungserhebungWichtigste

Konzepte

Szenarien

Großartiger Weg zur Kommunikation mit dem Kunden

As-Is Szenarien, Visionäre Szenarien, Evaluationsszenarien, Training

Szenarien

Use Cases

Abstraktion von Szenarien

Use Case Modell erfasst vor allem funktionale Anforderungen

Domain Object Modell

Klassendiagramme erfassen Anwendungsdomäne in strukturierter Form

Verfahren von Abbott

Textanalyse als Hilfe zur Objektidentifikation

Strukturierung / Verfeinerung des Objektmodels anhand simpler Prinzipien

Page 95: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-103 R O O T S

AnforderungserhebungAktivitäten

Aktivitäten der Anforderungserhebung

Erhebung von Szenarien

Abstraktion und Strukturierung von Use Cases

Identifikation beteiligter Objekte (Domain Object Modell)

Spezifikation von elementarem Verhalten

Sie dienen der

Festlegung der Intention und des Umfanges eines Systems

Erfassung der Anforderungen aus Anwender-Sicht in einer für den

Anwender noch nachvollziehbaren Form

Page 96: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-104 R O O T S

Funktionale Anforderungen

AnforderungserhebungProdukte

Anwendungsdomäne1

Use Case Modell

Glossar

Schnittstellen-

Modell

1

1

<<UML>>

Use Case Diagramm1..*

1..*

Anforderungs

Modell

<<Mockup oder Text>>

UI Spezifikation

*

Spezifikation der System-

Schnittstellen

*

<<UML>>

Klassen-Diagramm

1..*Domain Object

Modell

<<UML>>

Dynamisches-Diagramm

*

1

*

1

*

Neben-

bedingungen

Nichtfunktionale

Anforderungen

<<Text>>

Use Case Beschreibung

Page 97: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.2 Anforderungsanalyse(Requirements Analysis)

5.2.1 Das Analyse-Modell

5.2.2 Objektmodellierung im Analyseworkflow

5.2.3 Dynamische Modellierung

5.2.4 Der Analyse-Workflow, Beispiele

5.2.5 Konsolidierung der Analyse

Page 98: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-107 R O O T S

Inhaltsübersicht

1) Das Analyse-Modell

Unterschiede Use Case Modell Analysemodell

2) Objektmodellierung im Analyse-Workflow

Entities, Boundaries und Controller

3) Dynamische Modellierung

Von Use Cases zum Objektverhalten

4) Der Analyse-Workflow

Beispiel: Von der Objektstruktur zum Objektverhalten

Beispiel: Kompletter Analyse-Workflow

5) Konsolidierung der Analyseergebnisse

Redundanzen, Mehrdeutigkeiten, Widersprüche, ... eliminieren

Page 99: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.2.1 Das Analyse-Modell

Abgrenzung Anforderungserhebung zu Anforderungsanalyse

Page 100: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-110 R O O T S

place order

salesperson

When placing an order, ...

customerKunden .

imports

Use Case vs. Analyse Modell (1)

in der Terminologie der Anwender

verfasst

externe Sicht des Systems

(was tut es?)

in „use cases“ strukturiert

in der Terminologie der Entwickler

verfasst

interne Sicht des Systems

(wie tut es das?)

in Module und Klassen-Stereotypen

strukturiert

Use Case Modell Analyse Modell

Page 101: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-111 R O O T S

Use Case Modell Analyse Modell

Use Case vs. Analyse Modell (2)

dient vorwiegend als Kontrakt zwischen

Auftraggeber und Entwickler hinsichtlich

der Anforderungen an das System

kann redundante / inkonsistente

Anforderungen enthalten

definiert Use Cases, die im Analyse-

Modell weiter vertieft werden

dient den Entwicklern zum Verständnis

der System-Struktur

darf keine Redundanzen /

Inkonsistenzen mehr enthalten

definiert die Use-Case-Realisierungen

place order

salesperson

When placing an order, ...

customerKunden .

imports

Page 102: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-112 R O O T S

Use-Case Realisierung – Analyse

Beschreibt die Umsetzung eines Use-Case im Analyse-Modell

auf hoher Abstraktionsebene

enthält keine Implementierungsdetails (verwendete Bibliotheken,

Application Server, ...)

Besteht aus

Textuelle Beschreibung des Ereignisflusses

Besondere Anforderungen

Klassendiagrammen Verfeinerung des DOM

Interaktions- und Aktivitätsdiagrammen Verfeinert oder neu

Use-Case Model Analysis Model

Use CaseUse-Case Realisierung

Analyse

„Trace“

Page 103: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.2.2 Objektmodellierung im Analyseworkflow

Die Besonderheit der Objektmodellierung im Analyseworkflow

Die Aufteilung in Boundary, Controller und Entity Stereotypen

Page 104: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-114 R O O T S

Analysetyp (Klasse oder Interface)

Abstrahiert eine oder mehrere Konzepte und / oder Subsysteme

Definiert konzeptuelle Attribute die evtl. später zu eigenen Klassen werden

Beschreibt noch relativ wenige Operationen

Realisiert essentielle funktionale Anforderungen

Nicht-funktionale Anforderungen werden erst im Systemdesign behandelt

Kategorien von Analysetypen

Ein Analysetyp ist stets einer der drei folgenden Stereotypen:

Boundary Typ = Schnittstelle zu Akteur

Control Typ = Ereignisfluss eines Use Cases

Entity Typ = Anwendungskonzept („Business object“)

Page 105: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-115 R O O T S

AnalysetypEntity

Repräsentiert ein für das Anwendungsgebiet relevantes Konzept

(„Business object“)

HeuristikJeder Typ im Domain Object Model ist ein Entity-Kandidat

HeuristikJeder Begriff im Glossar ist ein Entity-Kandidat

Hat oft Use-Case-übergreifende Bedeutung

HeuristikIn verschiedenen Use Cases wiederkehrende Substantive

identifizieren

Lebensdauer

Entspricht oft den persistenten Informationen der Anwendung

Das ergibt sich aus der Use Case übergreifenden Bedeutung

Entities sind aber keine reinen Daten-Klassen

Sie können komplexes Verhalten besitzen (z.B. Zinsberechnung)

Konto

«entity»

Konto

Page 106: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-116 R O O T S

AnalysetypBoundary

Beschreibt Interaktionen zwischen dem System und den Akteuren

HeuristikJeder Akteur sollte nur mit Boundaries verknüpft sein

KonsistenzcheckJedes Boundary sollte mit mindestens einem Akteur

verknüpft sein

Typische Boundaries

Dateneingabeformulare und Fenster: NotfallberichtBoundary

Fragen und Nachrichten an den Nutzer: BestätigungsBoundary

Benennung

Verwende Termini der Anwendungsdomäne plus Suffix Boundaryzwecks Unterscheidung von Entities

Notfallbericht bezeichnet ein Entity das den Bericht darstellt

NotfallberichtBoundary bezeichnet das Eingabeformular dafür

Verwende keine Implementierungsbegriffe um keine voreiligen Implementierungsentscheidungen zu suggerieren

Nicht NotfallberichtTabelle oder BestätigungsPopUp

Touchscreen

«boundary»

Touchscreen

Page 107: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-117 R O O T S

AnalysetypBoundaryGranularität

So fein wie nötigEinheiten trennen, die im Ereignisfluss als

unterschiedlich erkennbar sein müssen.

EingabeformularBoundary von

EingabefehlermeldungBoundary

trennen, um modellieren zu können,

dass letzteres vom Controller als

Reaktion auf eine Fehleingabe in

ersterem geöffnet wird

So grob wie möglichMöglichst große logische Einheiten

zusammenfassen.

Nicht jeder Knopf ist ein Boundary!

Eine zu feine Aufteilung würde

die Modellierung unnötig komplex machen (sich in Details verlieren)

dauernde Änderungen des Analysemodells für jede Änderung der graphischen Oberfläche nach sich ziehen

Auszahlung

EingabeFormular

Fehlermeldung

3. validate()

Touchscreen

Page 108: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-118 R O O T S

AnalysetypController

Kapselt den Ereignisfluss eines Use-Case

Vermittlungsstelle zwischen Entities und Boundaries

Komplexe Berechnungen oder logische Zusammenhänge, die keiner Entity

zugeordnet werden können

Typische Aufgaben von Kontrollobjekten

Ablaufsteuerung in Formularen (z.B. „wizards“)

Command History und Undo-Funktionalität

Verteilung und Weiterleitung von Informationen

Benennung

Name des Use-Case plus Suffix Control, Controller oder Command

Abheben

«control»

Abheben

Page 109: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-119 R O O T S

AnalysetypControllerGranularität

StandardEin Kontrollobjekt pro Use Case

AusnahmeMehr als ein Kontrollobjekt pro Use Case

um problemgebundene physikalische Verteilung auszudrücken

NotfallberichtControlim Einsatzfahrzeug

NotfallerfassungControl in der Notfallzentrale

oder für sehr komplexe Use Cases

Lebensdauer

Die Lebensdauer eines Kontrollobjektes sollte der des zugehörigen

Use Case entsprechen

Abheben

Page 110: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-120 R O O T S

Warum genau diese drei Stereotypen?

Die Trennung der drei Kategorien ermöglicht

StabilitätModelle, die weniger änderungsanfällig sind

Die Grenzen eines Systems (boundaries) ändern sich häufig

Darstellung auf zeilenorientiertem Terminal, im Webbrowser, ...

Die Geschäftsabläufe (controller) ändern sich häufig

Ablauf der Kreditvergabe, Kreditwürdigkeitskriterien, ...

Jede dieser Änderungen soll den Rest des Systems nicht beeinflussen

Insbesondere sollte die Anwendungsdomäne (entities) möglichst stabil bleiben

Konten, Kredite, Zinsen, Tilgung, etc.

FlexibilitätModelle die leichter kombinierbar sind

Verschiedene Geschäftsabläufe und Oberflächen sollten möglichst frei

miteinander kombinierbar sein

Beispiel: Kreditwürdigkeitsprüfung via Webbrowser oder Java-Oberfläche

HerkunftMVC Framework in Smalltalk 76

„Entity, Boundary, Controller“ = „Model, View, Controller“ (MVC)

Page 111: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-121 R O O T S

Analyse-Objektmodell

Weiterentwicklung des "Domain Object Model"

Entity-TypenAus DOM übernommen (evtl. auch ein paar Neue)

Kontroll- und Boundary-TypenWährend der Analyse hinzugefügt

Aufteilung von Use-Cases auf Typen im Analyse-Objektmodell

Jeder Use-Case verteilt sich auf

mehrere Analysetypen

Boundary, Controller, Entity

Gleicher Analysetyp kann Aspekte

mehrerer Use Cases beinhalten

Layout von Analyse-Klassendiagrammen

Boundaries links, Controller in der Mitte, Entities rechts

Boundary Controller Entity

Use-CaseUse-Case

Page 112: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-122 R O O T S

Analyse-Objektmodell „Digitaluhr“

Textuelle Notation*

Man kann die Stereotypen für Analyse-Klassen graphisch oder

textuell notieren

Klassendiagramme des Analysemodells die die drei Stereotypen

nutzen heißen auch „Robustness Diagrams“ Warum wohl?

Vergleichen Sie obiges Diagramm mit dem Klassendiagram der

Digitaluhr im UML-Foliensatz und diskutieren Sie die Unterschiede!

Graphische Notation*

<<entity>>

Datum

<<controller>>

Einstellen

<<boundary>>

Display

<<boundary>>

Knopf

<<entity>>

Uhrzeit

Knopf Einstellen Datum

Display Uhrzeit* = Beziehungsnamen, Rollen, Kardinalitäten, Attribute und Operationen aus Platzmangel unterschlagen.

Page 113: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-123 R O O T S

Analyse-Objektmodell Verbotene

Abhängigkeiten

Verbotene Abhängigkeiten

zwischen Analyse-Typen

a) Boundary zu Entity

b) Entity zu Boundary

c) Entity zu Controller

Sinn des Verbots a)

Boundaries sollen keine Kontrollaufgaben übernehmen

Wartbarkeit und automatische Codeerzeugung für graph. Oberflächen

Sinn der Verbote b,c)

Entity-Typen unempfindlich machen gegen Änderungen in anderen Typen

C muss nicht geändert werden wenn sich A, B, D oder E ändert

Nutzung eines Entity-Typs in mehreren Use Cases (= Controller-Typen)

möglich

Wenn C auf Interaktionen mit A und B ausgelegt wäre, könnte es nicht von D

genutzt werden

<<controller>>

B

<<entity>>

C

<<boundary>>

A

<<controller>>

D

<<boundary>>

E

Page 114: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.2.3 Dynamische Modellierung und Beispiel zum Analyseworkflow

Erstellung des Analyse-Verhaltensmodells

Beispiel zum Analyseworkflow

1. Strukturmodell: Von Use Cases zu Boundaries, Controllern und Entities

2. Verhaltensmodell: Interaktionen der Analysetypen

Weitere Hinweise zur dynamischen Modellierung

Dynamische Modellierung von Benutzerinterfaces

Page 115: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-125 R O O T S

Vom Analyse-Objektmodell zum Analyse-Verhaltensmodell

Analyse-Verhaltensmodell

Eine Sammlung von Interaktionsdiagrammen und Zustandsdiagrammen

Je ein Interaktionsdiagramm für den Ereignisfluss jedes wichtigen Use Case

Je ein Zustandsdiagramm für Typen mit komplexen Verhalten

Zweck

Identifikation von Methoden für das Objektmodell

Präzisierung von Methodenimplementierungen

Verfeinerung des Objektmodells

Vorgehensweise

Erstelle Analyse-Objektmodell zu einer Gruppe von Use Cases

Vorheriger Abschnitt (5.2.2)

Iteriere für alle ausgewählten Use Cases nachfolgendes Verfahren

Nächste Seite

Page 116: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-126 R O O T S

Verhaltensmodellierung eines Use Case

Ausganspunkt

(0) Vorhandenes Analyse-Objektmodell

Verfahren (pro Use Case)

(1) Konkretisiere Ereignisfluss

Bilde Schritte im Ereignisfluss auf Methoden oder Ereignisse (‚events‘) ab

(2) Ergänze Klassendiagramm

Erweitere Klassen um evtl. fehlende Methoden, Parameter und Attribute

(3) Modelliere Ereignisfluss

Zusammenspiel von Objekten Interaktionsdiagramm(e)

Verhalten einzelner Objekte Zustandsdiagramm(e)

(4) Verfeinere dynamisches Modell und Objektmodell

mehr Zwischenschritte (neue Methoden und Nachrichten)

mehr Strukturdetails (neue Attribute, Parameter, Typen)

Page 117: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-127 R O O T S

Use-Case Modell Analyse-Objektmodell

Kunde

Abhebung

Überweisung

Einzahlung

Kunde

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Konto

Abhebungsinterface

ÜberweisungÜberweis.Interface

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

Konto

Konto

Page 118: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-128 R O O T S

Use-Case Modell Analyse-Objektmodell

Kunde

Abhebung

Überweisung

Einzahlung

Kunde

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Konto

Abhebungsinterface

Überweisung

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

Konto

Konto

Touchscreeninterface

Page 119: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-130 R O O T S

Touchscreeninterface

Use-Case Modell Analyse-Objektmodell

Kunde

Abhebung

Überweisung

Einzahlung

Kunde

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Überweisung

Münzeinwurf

EinzahlungGeldschein Einzug

Konto

Zusammenfassung von Objekten aus

verschiedenen Use-Case-Realisierungen, die ...

... ähnliches tun

TouchScreen statt getrenntes Abhebungs- und

EinzahlungsInterface

... konzeptuell identisch sind

Konto

Page 120: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-131 R O O T S

Touchscreeninterface

Use-Case Modell Verhaltensmodell der

Analyse

Kunde

Kunde

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Konto

EreignisflussNächster Schritt: Ereignisfluss des Use

Case „Abhebung" auf Interaktionen der

betroffenen Analyse-Objekte abbilden!

Kommunikationsdiagramm

Abhebung

Page 121: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-132 R O O T S

Objektmodell Verhaltensmodell

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Fortsetzung (1)

informelle Aktionen durch konkrete Nachrichten ersetzen

Kunde

Touchscreen

Interface

Geldausgabe

gerät

Geldausgabe

Konto

2.1: Abhebung anfordern

2.1.1: prüfen

2.1.2: abheben

2.1.3: Geldausgabe veranlassen

2.1.3.1: Geld ausgeben

1: identifizieren

2: Abhebung anfordern

Page 122: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-133 R O O T S

Objektmodell Verhaltensmodell

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Fortsetzung (1)

informelle Aktionen durch konkrete Nachrichten ersetzen

Touchscreen

Interface

Geldausgabe

gerät

Geldausgabe

Konto

2.1.1: istVerfügbar(Betrag)

2.1.2: abheben(Betrag)

2.1: abheben(Kontonummer,Betrag)

Kunde

2.1.3.1: Geld ausgeben

1: identifizieren

2: Abhebung anfordern

2.1.3: ausgeben(Betrag)

Page 123: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-134 R O O T S

Objektmodell Verhaltensmodell

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Fortsetzung (2)

Verantwortlichkeiten der Objekte überdenken Zuordnung von Nachrichten

anpassen (Bsp: istVerfügbar() in Controller statt in Entität)

Methoden der Objekte ergänzen: Was braucht man noch für „istVerfügbar()“?

2.1.1: istVerfügbar(Betrag)

Touchscreen

Interface

Geldausgabe

gerät

Geldausgabe

Konto

2.1.1.1: kontostand()

2.1.2: abheben(Betrag)

2.1: abheben(Kontonummer,Betrag)

Kunde

2.1.3.1: Geld ausgeben

1: identifizieren

2: Abhebung anfordern

2.1.3: ausgeben(Betrag)

Page 124: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-135 R O O T S

Analyse-VerhaltensmodellObjekt-Erzeugung

Controller-Objekte werden bei der Initiierung des Use Case erschaffen

A) In einem Boundary das der Initiierung des Use Case dient

B) In Controller eines Use Case der die Quelle einer <<include>> oder das

Ziel einer <<extend>>-Beziehung zum eigenen Use Case ist

Boundary-Objekte werden von Controller-Objekten erschaffen

Im obigen Beispiel ausnahmsweise nicht! Denksport: Warum???

Entity-Objekte existieren schon (meist persistent) oder werden von

Controller-Objekten erschaffen

Touchscreen-Interface

Geldausgabegerät Geldausgabe Konto

Kunde 2.1: new()

2.2: abheben(Kontonummer,Betrag)

Page 125: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-136 R O O T S

Analyse-VerhaltensmodellObjekt-Zugriff

Szenario: „Sofortige Kontostandsaktualisierung bei eintreffender

Überweisung“

Objekt-Zugriff

Trotz der Einschränkungen auf Typebene (s. Analyse-Objektmodell

„Verbotene Abhängigkeiten“) dürfen Entity-, Boundary- und Controller-

Objekte beliebig miteinander interagieren!

Interaktionen, die scheinbar „schlechten Abhängigkeiten“ entsprechen

erfordern jedoch die Ergänzung des Klassendiagramms um das

Entwurfsmuster „Observer“

Siehe Kapitel „Entwurfsmuster“ und „Objektentwurf“

Touchscreen-Interface

Geldausgabegerät Geldausgabe Konto

Kunde

“1000 Euro erhalten!”

Page 126: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-137 R O O T S

Analyse-VerhaltensmodellSequenzdiagramme für Analyseobjekte

Layout-Konventionen

Spalte 1. Akteur der den Use Case initiiert hat

Spalte 2. Boundary-Objekt mit dem der Akteur als erstes interagiert

... Weitere Boundaries

Danach Kontroll-Objekt das den Use Case steuert

Danach Entities

Danach Evtl. weitere Kontroll-Objekte Erinnern Sie sich, wann es

weitere Kontrollobjekte geben kann?

Boundary Controller EntitityAkteur

Page 127: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-139 R O O T S

Dynamische Modellierung von Benutzerschnittstellen

Navigationspfade

Eine Variation von Zustandsdiagrammen

Werden zum Design von Benutzerschnittstellen benutzt

ZustandEinzelne Bildschirmansicht („Screen“)

Ein grafisches Layout der mit den Zuständen assoziierten Screens hilft bei

der Vorstellung des dynamischen Modells eines Benutzerinterfaces

Aktivitäten/Aktionen sind als Unterpunkte unter dem Screen-Namen

aufgeführt

Oft wird nur eine Exit-Aktion angegeben

ZustandsübergangErgebnis einer Exit-Aktion

Klick auf Schaltfläche

Menüauswahl

Cursorbewegungen

Page 128: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-140 R O O T S

Navigationspfade als Graph

Diagnostics• User kann den Curser zum Control Panel oder Graph bewegen

Graph• User kann die Datengruppe

und den Typ des Graphen

Visualize

• User zeigt den Graphen an

• User kann weitere Datengruppen

zum Anzeigen hinzufügen

Control panel

• User kann Funktionalität der Sensoren wählen

Disable

• User kann einen

Sensor Event aus

einer Event-Liste

ausblenden

Enable

• User kann einen

Sensor Event aus

einer Event-Liste

einblenden

List of sensor events• User wählt Sensor Event(s)

Link

• User erstellt einen Link (doclink)

Define

• User definiert

einen Sensor

Event aus einer

Event-Liste

Data Selection

• …

• …

...

Page 129: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-141 R O O T S

Navigationspfade als Zustandsdiagramm

Diagnosedo / Auswahl Control-Panel

oder Graph anzeigen

Control-Paneldo / Sensor-Übersicht

Control-Panel

Ausschaltendo / Sensor-Events

ausblenden

Einschaltendo / Sensor-Events

einblenden

Event-Definitiondo / Sensor-Events

anpassen

Ereignislistedo / Ereignisse

anzeigen

Definition Ein Aus

...

Datendo / Datengruppenauswahl

Typdo / Typauswahl

Graph

Anzeigedo / Graph anzeigen

Ok

Ok Ok Ok Ok

...

...

Page 130: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-142 R O O T S

Page 131: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

Kapitel 5: Anforderungserhebung und -analyse

R O O T S

4.2.5 Konsolidierung der Analyse(aus Brügge und Dutoit)

Page 132: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-144 R O O T S

Req.

Elicitation

Req.

Analysis

Aktivitätsdiagramm des Analyse-Workflow

Modell validieren

Modelle zusammenführen

Definiere

Entity-Objekte

Definiere

Boundary-Objekte

Definiere Controller-

Objekte

Definiere Interaktionen

Definiere

AssoziationenDefiniere Attribute

Definiere nicht-triviales

Verhalten

Definiere betroffene

Objekte

Definiere Use Cases

Page 133: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-146 R O O T S

Kriterien der Anforderungsvalidierung

Korrektheit

Die Anforderungen repräsentieren die Sicht des Kunden.

Vollständigkeit

Alle im System möglichen Szenarien sind beschrieben, inklusive

Ausnahmeverhalten von System und Benutzer

Konsistenz

Es gibt keine funktionalen oder nichtfunktionalen Anforderungen die sich

widersprechen

Klarheit

Es gibt keine Zweideutigkeiten bei den Anforderungen.

Realismus

Anforderungen können implementiert und ausgeliefert werden

Zurückverfolgbarkeit

Jede Funktion des Systems kann auf einen Satz entsprechender

funktionaler Anforderungen zurückgeführt werden

Page 134: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-147 R O O T S

Konsistenz, Vollständigkeit, Mehrdeutigkeit

Vollständigkeit

Identifikation von fehlenden Klassen (von einem Subsystem referenziert,

aber nirgends definiert)

Identifikation von Assoziationen mit losen Enden (Assoziationen, die

nirgends hinzeigen)

Konsistenz

Identifikation von vertauschten „Verdrahtungen” zwischen Klassen

Identifikation von doppelt definierten Klassen

Benennung von Klassen, Attributen, Methoden

Keine Synonyme, d.h. keine verschiedene Namen für gleiche Bedeutung

Mehrdeutigkeiten

Rechtschreibfehler in Namen

Benennung von Klassen, Attributen, Methoden

Keine Homonyme, d.h. keine gleichen Namen für unterschiedliche

Bedeutungen

Page 135: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-148 R O O T S

Anforderungsevolution

Anforderungen ändern sich rapide während der Anforderungserhebung

Tools zur Verwaltung von Anforderungen

Speichern Anforderungen in einem Repository

Erstellen automatisch Anforderungsdokumente aus dem Repository

Unterstützen Zurückverfolgbarkeit und Änderungsmanagement für den

ganzen Lebenszyklus des Projektes

Unterstützen Multi-user Zugriff

Beispiele

Requisit Pro (Rational / IBM)

http://www.ibm.com/developerworks/rational/products/requisitepro/

Jira

http://www.jira.com

Page 136: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-149 R O O T S

Formatvorlage Anforderungsanalyse-Dokument

1. Einführung

2. Momentanes System

3. Beabsichtigtes System

3.1 Überblick

3.2 Funktionale Anforderungen

3.3 Nichtfunktionale Anforderungen

3.4 Nebenbedingungen (“Pseudoanforderungen”)

3.5 Systemmodelle

4. Glossar

Exkurs „Analyseformatvorlage“

Page 137: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-150 R O O T S

Projektvereinbarung

Die Projektvereinbarung steht für die Akzeptanz des Analysemodells

(dokumentiert durch das Anforderungsanalyse-Dokument) durch den

Kunden.

Kunde und Entwickler einigen sich auf eine Idee, Funktionen und

Features des Systems. Zusätzlich einigen sie sich auf:

Eine Liste der Prioritäten

Einen Revisionsprozess

Eine Liste von Kriterien zur Annahme des Systems

Einen Zeitplan und ein Budget

Page 138: Kapitel 4 Anforderungserhebung und Analyse...Kapitel 5: Anforderungserhebung und -analyse R O O T S 4.1 Anforderungserhebung („Requirements Elicitation“) 5.1.1 Anforderungen, Szenarien

© 2000-2015 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-152 R O O T S

Zusammenfassung: Anforderungsanalyse

In diesem Unterkapitel haben wir uns mit folgenden Themen befasst:

Konstruktion des statischen und dynamischen Analysemodells aus

dem Use Case und Domain Object Modell

Entity

Controller

Boundary

Konsolidierung der Analyse

Integration der Modelle verschiedener Subsysteme

Konsistenz, Vollständigkeit, Mehrdeutigkeit