Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden...

144
Vorlesung „Softwaretechnologie“ Wintersemester 2010 R O O T S Kapitel 5 Anforderungserhebung und Analyse („Requirements Engineering”) 11.11.2010: Folien 134 – 139 überarbeitet Stand: 11.11.2010

Transcript of Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden...

Page 1: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Vorlesung „Softwaretechnologie“Wintersemester 2010 R O O T S

Kapitel 5

Anforderungserhebung und Analyse („Requirements Engineering”)

11.11.2010: Folien 134 – 139 überarbeitet

Stand: 11.11.2010

Page 2: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Kontext

Bisher: Grundlagen Konfigurationsmanagement und Werkzeuge (Eclipse + SVN) UML Einführung und Werkzeuge (Eclipse + Paradigm)

Ab jetzt: Arbeitsabläufe („Aktivitäten“ / „Workflows“) und dazugehörige Technologien, Werkzeuge, etc. Anforderungserhebung Systementwurf Objektentwurf Implementierung Testen Refactoring

Später: Prozessmodelle Organisation des Projektes Wann, wie viel von welchem Workflow?

Page 3: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Requirements EngineeringSystemDesign

ObjectDesign

Implemen-tation

TestenAnforderungs-erhebung

Anforderungs-analyse

Aktivitäten bei der Softwareentwicklung („Workflows“)

Analysis Model Subsysteme

class ...class ...class ...

Implementa-tion Domain

Objects

Quellcode Testfälle

? class....?

Domain Object Model

ausgedrücktals

strukturiertdurch

implementiertvon

realisiertdurch

verifiziertdurch

Use CaseModel

Page 4: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

Requirements Engineering– Was und warum? –

Motivation und Definition

Page 5: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Können Sie so etwas bauen?

Widersprüchliche Anforderungen

Page 6: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Was ist das?

Mehrdeutige Anforderungen

Page 7: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Mögliches ObjektmodellInuit

lebt_in

2

anziehen()laecheln()schlafen()

Inuitgroesse

Mantelgroessefarbetyp

Schuh

anziehen()

beleuchtungeingang

Iglo

betrete()verlasse()

groessefarbetyp

anziehen()

Page 8: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Genauso mögliches ObjektmodellKopf

2

Gesichtnase

laecheln()augenZu()

Ohrgroesse

hoehr()

Kopfhaare

Mundzahngroesse

oeffnen()sprechen()

anziehen()laecheln()schlafen()

Page 9: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Objektmodell aus der Sicht des Künstlers

Bild

Sicht 1 Sicht 2

Bild einerSkulptur

MundAuge Nase JackeHand Bein

Bild einesInuit

Page 10: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Welches System sollen Sie bauen?

Unscharfe Anforderungen

Page 11: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 Entwicklerverständlichen und handhabbaren Form.

Page 12: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Der Requirements Engineering Prozess: Aktivitäten und Produkte

benutzt natürliche Sprache (abgeleitet von

der Problemstellung)

RequirementSpecification

: Model

erzeugt

benutzt formale oder semiformale Notation

(z.B. UML)

Analysis Model: Model

erzeugt

führt zu Verfeinerung von

Voraussetzung fürRequirements

ElicitationWorkflow

RequirementAnalysisWorkflow

Notwendigkeit,Eindeutigkeit,Konsistenz,Korrektheit,

Vollständigkeit,Machbarkeit

Problemstellung

Anforderungen Dynamisches Modell, Objekt Modell

Grundlage für

: Text

Idee

informelle Kurzfassung

beschrieben durch

Page 13: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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

OrganizationsStruktur

existierendeSysteme

Hintergrund-analyse

Page 14: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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

OrganizationsStruktur

existierendeSysteme

Hintergrund-analyse

Akteure identifizieren

Ziele gewichten

Fachwissen filtern

Wissenorganisieren

Anforderungender Anwender

Fachliche Anforderungen

Organisatori-sche

Anforderungen

Anforderungensammeln

Page 15: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 realisierbareAnforderungen

Anforderungsverhandlung

AnforderungsdiskussionPrioritätensetzung

Präzisierung undVervollständigung

Anforderungs-vereinbarung

Page 16: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 realisierbareAnforderungen

Anforderungsverhandlung

AnforderungsdiskussionPrioritätensetzung

Präzisierung undVervollständigung

Anforderungs-vereinbarung

Page 17: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

ProzessqualitätenProduktqualitäten

QualitätVerschiedene Sichten

Inte

rne

Sic

htE

xter

ne S

icht

BenutzerIn

EntwicklerIn ManagerIn

Zuverlässigkeit Effizienz Benutzer-

freundlichkeit

Produktivität Pünktlichkeit Kontrollierbarkeit

Verifizierbarkeit Wartbarkeit Portabilität Erweiterbarkeit

Page 18: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1 Anforderungserhebung („Requirements Elicitation“)5.1.1 Anforderungen, Szenarien und Anwendungsfälle („Use Cases“)5.1.2 Aus Szenarien Anwendungsfälle destillieren5.1.3 UML Anwendungsfall-Diagramme5.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 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

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

Arten von AnforderungenSzenarien und Anwendungsfälle („Use Cases“)UML Anwendungsfall-Diagramme („Use Case Diagrams“)

Page 20: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Anforderungstypen

Funktionale Anforderungen Beschreiben die Interaktionen zwischen dem System und seiner

Umgebung unabhängig von der Implementierung Die Uhr muss die Zeit ortsabhängig anzeigen

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”) Bedingt durch den Kunden oder der Operationsumgebung des Systems

Die Implementierung muss in COBOL erfolgen unter Verwendung von DB2. Muss mit dem Abfertigungssystem von 1956 zusammenarbeiten.

Page 21: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-23 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

nBedingungErfolgreich/

nicht erfolgreich

Verantwortlichkeithat

1

n

bezieht sich auf

1nTeil-UseCase

Page 24: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-24 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 25: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

sz1 sz2 sz6 sz7 ...sz3

Erfolgreiche endende Szenarien Nicht erfolgreich endende Szenarien

sz4 sz5Nebenziel(Szenario):

Ziele, Use Cases und Szenarien (2)

Ziel (Use Case): “Bestelle Produkt”

Page 26: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Wozu Szenarien und Use Cases?

Nachvollziehbar für Nutzer Use Cases modellieren ein System aus Sicht des Nutzers (funktionale

Anforderungen) Bestimmung jedes möglichen Ereignisflusses durch das System Beschreibung von Interaktionen zwischen Objekten

Großartiges Werkzeug um ein Projekt zu managen. Use Cases können eine Basis für den gesamten Entwicklungsprozess sein Gebrauchsanleitung Systemdesign und Objektdesign Implementierung Testspezifikation Akzeptanztest beim Kunden

Eine exzellente Grundlage für inkrementelle & iterative Entwicklung Use Cases wurden auch zur Restrukturierung von Geschäftsprozessen

vorgeschlagen (Ivar Jacobson)

Page 27: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Requirements EngineeringSystemDesign

ObjectDesign

Implemen-tation

TestenAnforderungs-erhebung

Anforderungs-analyse

Use-Case-getriebener Softwareentwicklungsprozeß

Analysis Model Subsysteme

class ...class ...class ...

Implementa-tion Domain

Objects

QuellCode

Test Fälle

? class....?

Domain Object Model

ausgedrückt als

strukturiert durch

implementiert von

realisiert durch

verifiziert durch

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

Use CaseModel

Page 28: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Aktivitäten der Anforderungsanalyse: Ein Szenario- und Use-Case-getriebener Ansatz

Identifiziere Akteure Identifiziere Szenarien Identifiziere Use Cases Verfeinere Use Cases Identifiziere Beziehungen zwischen Use Cases Identifiziere nichtfunktionale Anforderungen Identifiziere beteiligte Objekte Erstelle Glossar

Page 29: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-29 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.

Szenarien können während eines Software-Lebenszyklus an vielen Stellen Anwendung finden.

Page 30: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Arten von Szenarien

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 31: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Wie finden wir Szenarien?

Erwarte keine klaren Aussagen vom Kunden, solange das System (noch) nicht existiert („greenfield engineering“) Vorstellungen klären sich erst wenn man etwas Konkretes sieht / nutzen

kann

Erwarte auch bei existierendem Alt-System nicht auf zuverlässigeInformationen Diskrepanz zwischen Soll und Ist Kann nicht bewusst sein oder darf evtl. nicht offiziell genannt werden

Versuche einen dialektischen Ansatz (evolutionär, inkrementell) Du hilfst dem Kunden, die Anforderungen zu formulieren Der Kunde hilft dir, sie zu verstehen Die Anforderungen entfalten sich während der Entwicklung der Szenarien

Page 32: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Wie finden wir Szenarien?

Stelle dir selbst oder dem Kunden die folgenden Fragen Was sind die primären Aufgaben des Systems? Welche Daten möchte der Akteur im System anlegen, speichern, ändern,

löschen oder einfügen? Über welche externen Änderungen muss das System informiert sein? Bei welchen Änderungen oder Ereignissen soll der Akteur des Systems

informiert werden?

Wenn ein System existiert, bestehe darauf zu beobachten, wie die Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit dem Endbenutzer, nicht nur mit dem

Auftraggeber! Erwarte Widerstand und versuche ihn zu überwinden Erkläre dem

Auftraggeber die Bedeutung der Akzeptanz durch Benutzer

Page 33: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Wie finden wir Szenarien? Interview-Techniken

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

Page 34: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1.2 Von Szenarien zu Use Cases

Aus Szenarien Use Cases destillieren an einem Beispiel

Page 35: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-35 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 36: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-36 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. Alicegibt 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 37: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-37 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 38: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-38 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 39: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-39 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 40: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-40 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. ...

Stan

dard

abla

uf

Page 41: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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 OpenIncident 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 42: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-42 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 abbrichtwird 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 43: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-43 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 44: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1.3. Anwendungsfalldiagramme(“UML Use Case Diagrams”)

Page 45: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Use Case Diagramm „Notfallzentrale“

Melde Notfall

FieldOfficer Disponent

Lege Akte an

Weise Resourcen zu

Flow of Events: ...

Entry Conditions: ...

Exit Conditions: ...

Special Requirements: ...

Flow

Entry

Exit...

Special

Flow

Entry

Exit...

Special

Notfallzentrale

Page 46: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel

Use-Case DiagrammElemente

Einsatz Analysephase Kommunikation mit Auftraggeber / Benutzer Erfassung von Anwendungsszenarien (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 47: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-47 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 Extend (Sonderfall)

Ein Use Case ergänzt einen anderen unter bestimmten Bedingungen Include (funktionale Dekomposition)

Ein Use Case benutzt einen anderen Inherit (Generalisierung/Spezialisierung)

Ein abstrakter Use Case mit verschiedenen Spezialisierungen

Page 48: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beziehungen zwischen Use-Cases

Include-Beziehung Immer wenn A ausgeführt wird, muss auch B

ausgeführt werden B ist unbedingt nötig, um A auszuführen B stellt Verhalten dar, das von mehreren Use

Cases oder von einem Akteur direkt genutzt wird

Extend-Beziehung Wenn A ausgeführt wird, kann auch B

ausgeführt werden B ist nicht zwingend nötig, um A auszuführen B stellt Sonder- oder Fehelrfälle, optionales oder

seltenes Verhalten dar

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>>

AB

C

Page 49: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-49 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 50: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-50 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

Notfallerfassen

Ressourcenzuweisen

<<include>>

Gesamt-Anwendungsfälle

Enthaltener Anwendungsfall

Page 51: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-51 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 52: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

<<extend>>-BeziehungExtension Points (1) Deklaration im zu erweiternden 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 wird am Extension Point aktiviert … falls die spezifizierte extends-Bedingung gilt

Notfall erfassen

extension points

Kommunikationsausfall

Hilfe anzeigen

Ersatzstreifeschicken

«extend»

«extend»

condition: { Verbindung abgebrochen }extension point: Kommunikationsausfall

condition: { F1 gedrückt }extension point: ----

Extension Point Deklaration

Notizen die an die extends-Beziehung geheftet sind können Bedingungen und Namen von extension points enthalten

Page 53: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

<<extend>>-BeziehungExtension Points (2) Extension points werden im zu erweiternden Use Case deklariert

Sie sind Namen für die Stellen im Ereignisfluss des erweiterten UC, wo der Ablauf des erweiternden UC einzufügen ist

Die Angabe von Extension points an einer <<extends>>-Beziehung spezifiziert, dass die Verhaltensfragmente des erweiternden Use Case an den jeweiligen Extension Points aktiviert werden sollen Meist gibt es aber pro Use Case nur ein Verhaltensfragment und somit nur

einen Erweiterungspunkt auf den Beug genommen wird. Sonst werden die verschiedenen Fragmente der Reihe nach an den

jeweiligen Erweiterungspunkten aktiviert Erstes Fragment am ersten Erweiterungspunkt, zweites Fragment am zweiten Erweiterungspunkt, …

Vorschau: Extends-Beziehung und Aspektorientierte Programmierung!

Page 54: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Generalisierung von Use Cases

Problem Man möchte in Use Cases wiederkehrendes Verhalten auslagern.

Lösung Die Generalisierungsbeziehung lagert gleiches Verhalten von Use Cases

aus. Die „Kinder“ erben die Kommunikationsbeziehungen, die Bedeutung und das Verhalten, der „Eltern“, ersetzen Teile davon und fügen neues hinzu.

Beispiel “ValidateUser” ist verantwortlich für die Überprüfung der Benutzeridentität.

Der Kunde könnte zwei Umsetzungen fordern: “CheckPassword” und “CheckFingerprint”

Authentifizierung via Passwort

Authentifizierung via Fingerabdruck

Authentifizierung

Page 55: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel „Kalender-Manager“

Benutzer

Kalender-Manager

to-do-Eintragerfassen

Terminerfassen

Page 56: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel „Kalender-Manager“Varianten der Eintragserfassung als Generalisierung

Benutzer

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Page 57: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel „Kalender-Manager“ <<include>>

für Teilschritte der Terminerfassung

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Kalenderaktualisieren

Teilnehmerverständigen

«include»

«include»

Page 58: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-58 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-Eintragerfassen

Eintragerfassen

Terminerfassen

Kalenderaktualisieren

Teilnehmerverständigen

«include»

«include»

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

{… geklickt}

Page 59: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel „Kalender-Manager“Generalisierung zwischen Akteuren

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Kalenderaktualisieren

Teilnehmerverständigen

«include»

«include»

Administrator

Termintypenverwalten

Benutzerverwalten

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

“DerAdministrator

ist einBenutzer.”

“Er kann auchalle Use

Cases des Benutzers

durchführen”

{… geklickt}

Page 60: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-60 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-Eintragerfassen

Eintragerfassen

Terminerfassen

Kalenderaktualisieren

Teilnehmerverständigen

«include»

«include»

Termintypenverwalten

Benutzerverwalten

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

{… geklickt}

Page 61: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-61 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 62: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1.4 Domain Object Model

Abbott's Technik zur ObjektidentifikationObjektmodellierung

BeispieleGrundlagen der Objektmodellierung auf dem Detaillierungsgrad der Anforderungserhebung.Weitere Notationen, Techniken und Methoden der Objektmodellierung werden später schrittweise ergänzt

Page 63: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-63 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*

RequirementsModel

UI Spezifikation*

System-Schnittstellen*

Klassen-Diagramm1

Page 64: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Domain Object ModelBeispiel„Terminverwaltung“

ToDoListe*1

ToDoEintragfälligAm : DatumrelevantAb : Datum

Einzeltermin SerienterminwiederhDauerwiederhFrequenz

0,11..*

Werktagstermin

Termin

begin: DatumUndZeitdauer: ZeitistVerschiebbar:boolart:TerminArt

kollidiertMit*

*

Teilnehmer1..*

*

Ansicht

Jahresansicht Monatsansicht Wochenansicht Tagesansicht

Exportformat Fax HTML Zeitintervall

Drucker EMail

Page 65: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-65 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 66: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-66 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 67: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-67 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 68: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-68 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 69: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-69 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 kostenpflichtigTransitives 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 70: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-70 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 71: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-71 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 72: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

ObjektmodellierungKlassenidentifikation

Name der Klasse Attribute Methoden

Konto

kontostandkundennreinzahlen()abheben()kontostand()

Page 73: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-73 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

kontostandkundennreinzahlen()abheben()kontostand()

Konto

einzahlen()abheben()kontostand()

Kunde

Bank

name

kontostandkundennr

namekundennr

Page 74: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

ObjektmodellierungAssoziationen

Name und Rollen Art (Assoziation, Aggregation, Komposition) Kardinalitäten

Konto

einzahlen()abheben()kontostand()

Kunde

namekundennr

Bank

name

kontostand

hat1..* 1..*

1..*

Page 75: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

ObjektmodellierungKategorien finden (Vererbung)

Konto

kontostand

einzahlen()abheben()kontostand()

Kunde

namekundennr

Bank

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

Festzinskonto

abheben()

Sparkonto

abheben()

Tagesgeldkonto

abheben()

Page 76: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

ObjektmodellierungQualifizierteAssoziation 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 77: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-78 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 78: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: 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 79: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-80 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 80: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-81 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 81: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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 82: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

BeispielTextanalyse nach Abbott Assoziationen extrahieren Substantive + Verben + Attribute Klassen + Assoziationen

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestelltum 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 inkann einstellen

hat

gilt für

Page 83: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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 inkann einstellen

hat

Hierzu sollten Sie unbedingterst Methoden identifizieren! Hier wurde aus Platzgründendiesem Schritt vorgegriffen.

gilt für

Page 84: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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“

NamePfandbetrag

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

nimmt zurück

aufgestellt in

bestimmt Pfand für

hat Behältertyp

Page 85: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-89 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älteryp“ umbenannt Die Klasse „Behältertyp“ wird eliminiert

BehältertypPfandbetrag

Betreiberin

Pfandrückgabemaschine

Supermarkt

Getränkebehälter

Betreiberin

nimmt zurück

aufgestellt in

bestimmt Pfand für

Page 86: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

BeispielFortsetzung der Textanalyse nach AbbottMethoden extrahieren Verben Methoden

„Die Pfandrückgabemaschine (PRM) wird in Supermärkten aufgestelltum 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älterBehältertypPfandbetrag

Betreiberin

nimmt zurück

aufgestellt in

pfandEinstellen( Typ,Betrag)

setzePfand()setzeTyp()

aufstellen()

zurücknehmen(Behälter)

bestimmt Pfand für

Page 87: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-92 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 (leereDosen, Flaschen und Kästen, welche Endbenutzern geliefert werden). Für jeden Behältertyp kann unsere Betreiberin einen individuellenPfandbetrag 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 88: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-93 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 : ReportquittungDrucken

Bericht/summe : Double

/Erstattungen

summe():Double

Quittung/summe : Double

summe():Double

BarcodeReader

scannQuittung:Quittung

BehältertypPfandbetrag:Double

setzePfand(Double)setzeTyp()

bestimmt Pfand für

Erstattungen

aufgestellt in

Page 89: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-94 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 : ReportquittungDruckenpfandEinstellen(Behältertyp,Betrag)

Bericht/summe : Double

/Erstattungen

summe():Double

Quittung/summe : Double

summe():Double

Erstattungen

BehältertypName

Pfandbetrag

ist vom typ

BarcodeReader

scannQuittung:Quittung

Page 90: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1.5 Dynamische Modellierung von Anwendungsfällen

Page 91: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-96 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 92: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

SpielzeugautoProblembeschreibung

Strom wird angeschaltet Auto fährt vorwärts

Scheinwerfer leuchtet Strom wird ausgeschaltet

― Auto hält anScheinwerfer geht aus

Strom wird angeschaltetScheinwerfer leuchtet

Strom wird ausgeschaltetScheinwerfer geht aus

Strom wird angeschaltet Auto fährt rückwärts

Scheinwerfer leuchtet Strom wird ausgeschaltet

― Auto hält anScheinwerfer geht aus

Strom wird angeschaltetScheinwerfer leuchtet

Strom wird ausgeschaltetScheinwerfer geht aus

STOP STOP

Page 93: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-98 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

RadRichtung: (Vor,

Rück, Stop)

ein()aus()

LichtStatus: (an,

aus)

ein()aus()

Autoein()aus()

:Licht :Rad

ein()

aus()

Benutzer:Auto

ein()

aus()

ein()

ein()

aus()

ein()

vor()

stop(

Page 94: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

SpielzeugautoBewertung des Sequenzdiagramms Drückt nicht aus, dass sich die

Vorgänge beliebig wiederholenkönnen keine feste Wiederholungszahl keine feste Endbedingung

Dass beim nächstenEinschalten des Stroms nachdem Stop die Räder still stehenwurde im Auto modelliert Das Auto schickt in diesem Fall

keine Nachricht an die Räder Das Auto ist für die

Modellierung des Verhaltensder 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 95: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-100 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 Wahl der richtigen

Notation schon der wichtigste Teil der Lösung geleistet. Denksport

Welche Annahme steckt im Automat für die Räder? Tip: siehe Problembeschreibung und Bewertung des Sequenzdiagrams

Wie müsste der Automat verändert werden, wenn sie nicht mehr gilt?

Licht Rad

Aus

An

Strom an

Strom aus

Stop 2

Vordo Vorfahren

Zurückdo Zurückfahren

Stop 1Strom an

Strom an

Strom aus Strom aus

Page 96: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.1.6 Zusammenfassung

Was Sie sich zur Anforderungserhebung mindestens merken sollten

Page 97: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

AnforderungserhebungWichtigste Konzepte Szenarien

Großartiger Weg zur Kommunikation mit dem Kunden As-Is Szenarien, Visionary Szenarien, Evaluation Szenarien, Training

Szenarien Use Cases

Abstraktion von Szenarien Use Case Modell erfasst vor allem funktionale Anforderungen

Domain Object Model Klassendiagramme erfassen Anwendungsdomäne in strukturierter Form

Verfahren von Abbott Textanalyse als Hilfe zur Objektidentifikation Strukturierung / Verfeinerung des Objektmodels anhand simpler Prinzipien

Page 98: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-105 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 Model) 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 99: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Funktionale Anforderungen

AnforderungserhebungProdukte

Anwendungsdomäne1

Use Case Modell

Glossar

Schnittstellen-Modell

1

1

<<UML>>Use Case Diagramm1..*

1..*

AnforderungsModell

<<Mockup oder Text>>UI Spezifikation

*

Spezifikation der System-Schnittstellen

*

<<UML>>Klassen-Diagramm

1..*Domain ObjectModel

<<UML>>Dynamisches-Diagramm

*

1

*

1

*

Neben-bedingungen

Nichtfunktionale Anforderungen

<<Text>>Use Case Beschreibung

Page 100: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Artefakte des Anforderungs-Models

Glossar Stichwortverzeichnis der Anwendungsdomäne Begriffe sind durch freien Text definiert

Domain Object Model Erfassung der wichtigsten Konzepte des Glossars und ihrer Beziehungen

durch ein Klassendiagramm / Klassendiagramme Interface Model

Mockups (= mit Papier, Farben, etc. simulierte Benutzeroberflächen) System-Schnittstellen-Beschreibung (textuell oder Klassendiagramm)

Use Case Modell Beschreibung aller Anwendungsfälle durch ein oder mehrere Diagramme Beschreibung jedes Anwendungsfalls durch strukturierten Text Evtl. Beschreibung der Abläufe komplexer Anwendungsfälle durch dynamische

Diagramme Evtl. zum zusätzlichen Verständnis komplexer Geschäftsprozesse in die die

Anwendungsfälle eingebettet sind, Beschreibung der Geschäftsprozesse durch dynamische Diagramme.

Page 101: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.2 Anforderungsanalyse(Requirements Analysis)

5.2.1 Das Analyse-Modell5.2.2 Objektmodellierung im Analyseworkflow

5.2.3 Dynamische Modellierung5.2.4 Der Analyse-Workflow, Beispiele

5.2.5 Konsolidierung der Analyse

Page 102: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-109 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 103: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Aktivitäten bei der Anforderungserhebung und -analyse

Identifiziere Akteure Identifiziere Szenarien Identifiziere Use Cases Verfeinere Use Cases Identif. Beziehungen

zwischen Use Cases Identif. nichtfunktionale

Anforderungen Identifiziere Neben-

bedingungen Identifiziere beteiligte

Objekte Erstelle Glossar

Identifiziere Objekte/Klassen boundary, controller, entity

Identifiziere Operationen und Methoden

Identifiziere Assoziationen Identifiziere Attribute

Modelliere Objektinteraktionen Kommunikationsdiagramme Sequenzdiagramme

Modelliere nichttriviales internes Verhalten Zustandsdiagramme

Anforderungsanalyse

Von beobachteterMehrdeutigkeit, Unkorrektheit, Unvollständigkeit, Inkonsistenz, Undurchführbarkeit

zur Verfeinerung der Anforderungen

Anforderungserhebung

Page 104: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.2.1 Das Analyse-Modell

Abgrenzung Anforderungserhebung zu Anforderungsanalyse

Page 105: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-112 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 106: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-113 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 107: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-114 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 Case Use-Case Realisierung Analyse

„Trace“

Page 108: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.2.2 Objektmodellierung im Analyseworkflow

Die Besonderheit der Objektmodellierung im Analyseworkflow Die Aufteilung in Boundary, Controller und Entity Stereotypen

Page 109: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-116 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 AnalysetypenEin 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 110: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-117 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 111: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-118 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 Boundary

zwecks 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 112: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

AnalysetypBoundaryGranularität

So fein wie nötigEinheiten trennen, die im Ereignisfluss als unterschiedlich erkennbar sein müssen. EingabeformularBoundary von

EingabefehlermeldungBoundarytrennen, 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 113: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-120 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 114: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-121 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 NotfallerfassungControlin der Notfallzentrale

oder für sehr komplexe Use Cases

Lebensdauer Die Lebensdauer eines Kontrollobjektes sollte der des zugehörigen

Use Case entsprechen

Abheben

Page 115: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-122 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 System (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 der Rest des Systems nicht beeinflussen Insbesondere sollte die Anwendungsdomäne (entities) möglichst stabil bleiben Konten, Kredite, Zinsen, Tilgung, etc.

FlexibilitätModelle die flexibler 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 116: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-123 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 117: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-124 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 118: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-125 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 sind unempfindlich 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 119: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

5.2.3 Dynamische Modellierung und Beispiel zum kompletten AnalyseworkflowErstellung 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 ModellierungDynamische Modellierung von Benutzerinterfaces

Page 120: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-127 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

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

nächste Seite

Page 121: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-128 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 122: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-129 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 123: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-130 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 124: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Use-Case Modell Analyse-Objektmodell

Kunde

Abhebung

Überweisung

Einzahlung

Kunde

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Abhebungsinterface

Überweisung

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

KontoTouchscreeninterface

Page 125: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-132 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 126: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Touchscreeninterface

Use-Case Modell Verhaltensmodell der Analyse

KundeKunde

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 127: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Objektmodell Verhaltensmodell

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Fortsetzung (1) informelle Aktionen durch konkrete Nachrichten ersetzen

Kunde

TouchscreenInterface

Geldausgabegerä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 128: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Objektmodell Verhaltensmodell

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Fortsetzung (1) informelle Aktionen durch konkrete Nachrichten ersetzen

TouchscreenInterface

Geldausgabegerä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 129: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-136 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)

TouchscreenInterface

Geldausgabegerä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 130: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-137 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(Kontonummer) 2.2: abheben(Kontonummer,Betrag)

Page 131: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Analyse-VerhaltensmodellObjekt-ZugriffSzenario: „Sofortige Kontostandsaktualisierung bei eintreffender Überweisung“

Objekt-Zugriff Trotz der Einschränkungen auf Typenebene (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 132: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-139 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 133: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-140 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 134: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Navigationspfade als Graph

Diagnostics• User can move cursor to Control Panel or Graph

Graph• User can select data group

and type of graph

Visualize• User views graph

• User can add data groups for being viewed

Control panel• User can select functionality of sensors

Disable• User can disable a sensor event from a list of sensor events

Enable• User can enable a sensor event from a list of sensor events

List of sensor events• User selects sensor event(s)

Link• User makes a link (doclink)

Define• User defines a sensor event from

a list of events

Data Selection• …• …

...

Page 135: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-142 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 / Ereignisseanzeigen

Definition Ein Aus

...

Datendo / Datengruppenauswahl

Typdo / Typauswahl

Graph

Anzeigedo / Graph anzeigen

Ok

Ok Ok Ok Ok

...

...

Page 136: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Kapitel 4: Anforderungserhebung und -analyse

R O O T S

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

Page 137: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Req.Elicitation

Req.Analysis

Aktivitätsdiagramm des Analyse-Workflow

Modell validieren

Modelle zusammenführen

Definiere Entity-Objektey

Definiere Boundary-Objekte

Definiere Controller-Objekte

Definiere Interaktionen

Definiere AssoziationenDefiniere Attribute

Definiere nicht-triviales Verhalten

Definiere betroffene Objekte

Definiere Use Cases

Page 138: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 139: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 140: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 Erstelln 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 141: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 142: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 143: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

Zusammenfassung: Anforderungsanalyse

0. Was sind die Funktionen des Systems? Erstelle Szenarios und Use Case Diagramme

Spreche mit dem Kunden, beobachte, betrachte historische Aufzeichnungen (Protokolle, Berichte), führe Gedankenexperimente durch

1. Was ist die Struktur des Systems? Erstelle Klassendiagramme

Identifiziere Objekte. Welche Beziehungen zwischen ihnen gibt es? Wie sind die Multiplizitäten?

Was sind die Attribute der Objekte? Welche Operationen sind auf den Objekten definiert?

2. Welches sind die Abläufe im System? Erstelle Sequenzdiagramme

Identifiziere Sender und Empfänger Zeige Abfolge der zwischen Objekten ausgetauschten Events.

Finde Abhängigkeiten und Nebenläufigkeiten. Erstelle Zustandsdiagramme

Nur für dynamisch interessante Objekte.

Dynamic Modeling

Functional Modeling

Object Modeling

Page 144: Kapitel 5 Anforderungserhebung und Analyse („Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

© 2000-2010 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 5-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 Model.

Konsolidierung der Analyse Integration der Modelle verschiedener Subsysteme Konsistenz, Vollständigkeit, Mehrdeutigkeit