146
Vorlesung „Softwaretechnologie“ Wintersemester 2009 R O O T S Kapitel 4 Anforderungserhebung und Analyse („Requirements Engineering”) („Requirements Engineering”)

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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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

Vorlesung „Softwaretechnologie“Wintersemester 2009 R O O T S

Kapitel 4

Anforderungserhebung und Analyse („Requirements Engineering”)(„Requirements Engineering”)

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

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

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

� Anforderungserhebung

� Systementwurf

� Objektentwurf

� Implementierung

� Testen

� Refactoring

� Später: Prozessmodelle � Organisation des Projektes

� Wann, wie viel von welchem Workflow?

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

Requirements Engineering

SystemDesign

ObjectDesign

Implemen-tation

TestenAnforderungs-erhebung

Anforderungs-analyse

Aktivitäten bei der Softwareentwicklung („Workflows“)

Use CaseModel

Analysis Model

Subsysteme

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

Implementa-tion Domain

Objects

Quellcode Testfälle

? class.... ?

Domain Object Model

ausgedrücktals

strukturiertdurch

implementiertvon

realisiertdurch

verifiziertdurch

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

Requirements Engineering– Was und warum? –

Motivation und Definition

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

Können Sie so etwas bauen?

Widersprüchliche Anforderungen

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

Anforderungen

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

Was ist das?

Mehrdeutige Anforderungen

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

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

Mögliches Objektmodell����Inuit

lebt_in

anziehen()laecheln()schlafen()

Inuit

groessebeleuchtungeingang

Iglo

betrete()verlasse()

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

2

Mantelgroessefarbetyp

Schuh

anziehen()

groessefarbetyp

anziehen()

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

Genauso mögliches Objektmodell����Kopf

Gesicht

Kopf

haare

anziehen()laecheln()schlafen()

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

2

nase

laecheln()augenZu()

Ohr

groesse

hoehr()

Mund

zahngroesse

oeffnen()sprechen()

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

Objektmodell aus der Sicht des Künstlers

Bild

Sicht 1 Sicht 2

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

Bild einerSkulptur

MundAuge Nase JackeHand Bein

Bild einesInuit

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

Welches System sollen Sie bauen?

Unscharfe Anforderungen

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

Anforderungen

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

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

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

� Aktivitäten („Workflows“)� Anforderungserhebung (‚Requirements Elicitation‘):

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

� Anforderungsanalyse (‚Requirements Analysis‘)� Technische Spezifikation des Systems in einer für die Entwickler

verständlichen und handhabbaren Form.

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

Der Requirements Engineering Prozess: Aktivitäten und Produkte

RequirementSpecification

erzeugt

Analysis Model: Model

erzeugt

führt zu Verfeinerung von

Voraussetzung für

RequirementsElicitationWorkflow

RequirementAnalysisWorkflow

Problemstellung

Grundlage für

: Text

beschrieben durch

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

benutzt natürliche Sprache (abgeleitet von

der Problemstellung)

Specification: Model

benutzt formale oder semiformale Notation

(z.B. UML)

: Model

Notwendigkeit,Eindeutigkeit,Konsistenz,Korrektheit,

Vollständigkeit,Machbarkeit

AnforderungenDynamisches Modell,

Objekt Modell

: Text

Idee

informelle Kurzfassung

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

Anforderungserhebung����Erhebungsstufen

(1)

Geschäftsziele

Probleme

Ziele festlegen

Anwendungs-domäne

OrganizationsStruktur

Hintergrund-analyse

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

� Zielsetzung : Unternehmensziele identifizieren: Warum wird das System gebraucht

� Hintergrundanalyse : Sammeln und verstehen von Hintergrundinformationen über das System

System-grenzen

existierendeSysteme

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

Anforderungserhebung����Erhebungsstufen

(2)

Geschäftsziele

Probleme

Ziele festlegen

Anwendungs-domäne

OrganizationsStruktur

Hintergrund-analyse

Akteure identifizieren

Ziele gewichten

Wissenorganisieren

Anforderungender Anwender

Fachliche Anforderungen

Anforderungensammeln

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

� 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

System-grenzen

existierendeSysteme

Fachwissen filtern

Organisatori-sche

Anforderungen

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

Anforderungsanalyse

Anforderungsanalyse

NotwendigkeitsprüfungSpezifikationsprüfung Machbarkeitsprüfung

unnötige Anforderungen

mehrdeutige, ...Anforderungen

Nicht realisierbareAnforderungen

AnforderungsdiskussionPräzisierung und Anforderungs -

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

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

Anforderungsverhandlung

AnforderungsdiskussionPrioritätensetzung

Präzisierung undVervollständigung

Anforderungs -vereinbarung

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

Anforderungsverhandlung

Anforderungsanalyse

NotwendigkeitsprüfungSpezifikationsprüfung Machbarkeitsprüfung

unnötige Anforderungen

mehrdeutige, ...Anforderungen

Nicht realisierbareAnforderungen

AnforderungsdiskussionPräzisierung und Anforderungs -

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

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

Anforderungsverhandlung

AnforderungsdiskussionPrioritätensetzung

Präzisierung undVervollständigung

Anforderungs -vereinbarung

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

ProzessqualitätenProduktqualitäten

Qualität����Verschiedene Sichten

Ext

erne

Sic

ht

BenutzerIn

� Zuverlässigkeit

� Effizienz

� Benutzer-

freundlichkeit

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

Inte

rne

Sic

ht

EntwicklerIn ManagerIn

� Produktivität

� Pünktlichkeit

� Kontrollierbarkeit

� Verifizierbarkeit

� Wartbarkeit

� Portabilität

� Erweiterbarkeit

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1 Anforderungserhebung („Requirements Elicitation“)

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

4.1.2 Aus Szenarien Anwendungsfälle destillieren

4.1.3 UML Anwendungsfall-Diagramme

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

4.1.5 Dynamische Modellierung der Anwendungsfälle

4.1.6 Zusammenfassung „Anforderungserhebung“

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

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

Arten von Anforderungen

Szenarien und Anwendungsfälle („Use Cases“)

UML Anwendungsfall-Diagramme („Use Case Diagrams“)

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

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.

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

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

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

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

� Re-Design und/oder Re-Implementierung eines existierenden Systems mit neuerer Technologie

� Ausgelöst durch neue verfügbare Technologie

� Interface Engineering� Bietet die Dienste eines existierenden Systems in neuer Umgebung

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

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

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

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

� Szenario: Beispiel der Nutzung des Systems in Form einer Reihe von Interaktionen zwischen externen Akteuren und dem System

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

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

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

Beziehungen����

Akteur-Ziel-UseCase-Szenario

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

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

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”

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

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

sz1 sz2 sz6 sz7 ...sz3 sz4 sz5Nebenziel(Szenario):

Ziele, Use Cases und Szenarien (2)

Ziel (Use Case): “Bestelle Produkt ”

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

Erfolgreiche endende SzenarienNicht erfolgreich

endende Szenarien

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

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

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

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

Requirements Engineering

SystemDesign

ObjectDesign

Implemen-tation

TestenAnforderungs-erhebung

Anforderungs-analyse

Use-Case-getriebener Softwareentwicklungsprozeß

Use CaseModel

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.

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

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

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

� Identifiziere nichtfunktionale Anforderungen

� Identifiziere beteiligte Objekte

� Erstelle Glossar

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

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.

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

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

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.

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

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

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

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

Informationen� 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 4 Anforderungserhebungund Analyse („ Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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?

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

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

Wie finden wir Szenarien? ����Interview-Techniken

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

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

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

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1.2 Von Szenarien zu Use Cases

Aus Szenarien Use Cases destillieren an einem Beispiel

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

Aus Szenarien Use Case destillieren

� Use case� Abstraktion zusammengehöriger Szenarios� Szenario� Konkreter Einzelfall = Instanz eines Use Case

Use Case“Notfall melden ”

“Notfall melden ”=

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

Scenario“Brand im Lagerhaus ”

Scenario“Brand in Appartment ”

Scenario“Katze im Baum ”

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

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

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

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

Beispiel����Notfall-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 zur “Katze” einen Unfall hat?

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

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

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

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

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

� Siehe Schema auf nächster Folie

� Siehe Beispiel auf übernächster Folie

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

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

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

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

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

Sta

ndar

dabl

auf

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

3. Benutzer ist berechtigt für alle Teilnehmer Termine zu erfassen.4. Benachrichtigungen werden verschickt.5. Sichten werden aktualisiert

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

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

Fehlerfall F1: Benutzer hat für keinen Teilnehmer die Berechtigung, einen ...Nachbedingung zu F1: Neuer Termin erfasst, aber ohne Zuordnung zu Teilnehmern. ...

Sta

ndar

dabl

auf

Page 41: Kapitel 4 Anforderungserhebungund 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. � 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 4 Anforderungserhebungund 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“ (2)

� Schreibe die Ausnahmen auf� Wenn die Verbindung zwischen seinem Terminal und der Zentrale abbricht

wird der Streifenbeamte sofort benachrichtigt, indem ...

� Wenn die Verbindung zu einem der eingeloggten Streifenbeamten abbricht wird der Disponent sofort benachrichtigt, indem ...

� Notiere Nichtfunktionale Anforderungen und Nebenbedingungen

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

� Notiere Nichtfunktionale Anforderungen und Nebenbedingungen

� Die Meldung des Streifenbeamten wird innerhalb von 30 Sekundenbestätigt.

� Die gewählte Reaktion trifft innerhalb von 0,5 Sekunden nach der Wahl durch den Disponenten ein.

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

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

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

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1.3. Anwendungsfalldiagramme(“UML Use Case Diagrams”)

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

Use Case Diagramm „Notfallzentrale“

Melde Notfall

FieldOfficer Disponent

Lege Akte anFlow of Events: ...

Notfallzentrale

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

Lege Akte an

Weise Resourcen zu

...

Entry Conditions: ...

Exit Conditions: ...

Special Requirements: ...

Flow

Entry

Exit...

Special

Flow

Entry

Exit...

Special

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

Beispiel

Use-Case Diagramm����Elemente

� Einsatz� Analysephase

� Kommunikation mit Auftraggeber / Benutzer

� Erfassung von Anwendungsszenarien (Use Cases)

� Elemente� Akteure

Rolle eines Akteurs

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

� System

� Use Cases

� Annotationen

� Beziehungen

System

place order

name

<<extend>>BA

<<include>>A B

<<inherit>>BA

salespersoncustomer

When placing an order, ...

...

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

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

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

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

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-BeziehungWenn A ausgeführt wird, kann auch B

BA<<include>>

BA<<extend>>

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

� Wenn A ausgeführt wird, kann auch Bausgefü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

AB

C

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

<<include>>-Beziehung����Verwendung

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

Gesamt-Anwendungsfall Gesamt-Anwendungsfälle

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

ErzeugeDokument

Scanne OCR Prüfe

<<include>>

Gesamt-Anwendungsfall

Enthaltene Anwendungsfälle

Karte Anzeigen

Notfallerfassen

Ressourcenzuweisen

<<include>>

Gesamt-Anwendungsfälle

Enthaltener Anwendungsfall

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

<<include>>-Beziehung����Semantik

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

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

ErzeugeDokument

Scan OCR Prüfe

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

Gesamt-Anwendungsfall

Enthaltener Anwendungsfall

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

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

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

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

<<extend>>-Beziehung����Extension 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 giltNotizen die an die extends-Beziehung

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

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

<<extend>>-Beziehung����Extension 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

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

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

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.

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

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

Beispiel „Kalender-Manager“

Benutzer

Kalender-Manager

to-do-Eintragerfassen

Terminerfassen

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

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

Beispiel „Kalender-Manager“����Varianten

der Eintragserfassung als Generalisierung

Benutzer

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

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

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

Beispiel „Kalender-Manager“���� <<include>>

für Teilschritte der Terminerfassung

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Teilnehmerverständigen

«include»

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

Fax-System

Kalenderaktualisieren

«include»

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

Beispiel „Kalender-Manager“����<<extend>>

für Sonderfälle der Programmverwaltung

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Teilnehmerverständigen

«include»

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

Fax-System

Kalenderaktualisieren

«include»

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

{… geklickt}

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

Beispiel „Kalender-Manager“����

Generalisierung zwischen Akteuren

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Teilnehmerverständigen

«include»

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

Fax-System

Kalenderaktualisieren

«include»

Administrator

Termintypenverwalten

Benutzerverwalten

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

“DerAdministrator

ist einBenutzer.”

⇒ “Er kannauch alle Use

Cases des Benutzers

durchführen”{… geklickt}

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

Termine

Beispiel „Kalender-Manager“����

Modularisierung durch Packages

Benutzer

E-Mail System

Fax-System

Kalender-Manager

to-do-Eintragerfassen

Eintragerfassen

Terminerfassen

Teilnehmerverständigen

«include»

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

Benutzer

Verwaltung

Administrator

Fax-System

Kalenderaktualisieren

«include»

Termintypenverwalten

Benutzerverwalten

Programmverwalten

Einstellungenverwalten

Zugriffsrechteverwalten

«extend»

{… geklickt}

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

<<system>>Kalender-Manager

Beispiel „Kalender-Manager“���� Gesamt-

System als geschachtelte Pakete

Termine Verwaltung

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

� Pakete können weitere Artefakte beinhalten� Aktivitätsdiagramme

� Sequenzdiagramme

� Klassendiagramme des Domain Object Model

� Textuelle Beschreibungen der Use Cases

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1.4 Domain Object Model

Abbott's Technik zur Objektidentifikation

Obejktmodellierung

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

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

Domain Object Model (DOM)

� Das DOM ist eine Menge von Klassendiagrammen, die Konzepte der Anwendungsdomäne beschreiben� Klassen

� Attribute

� Beziehungen

1

Use Case Model

Domain Obj. Model

Interface Model

1

1

Use Case Diagramm1

Use Case Beschreibung*

RequirementsModel

UI Spezifikation*

System-Schnittstellen*

Klassen-Diagramm1

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

� Beziehungen

� (wenige Operationen)

� Vorgehensweise� Dialog mit Benutzer � Textuelle Anforderungsspezifikation (Use Cases)

� Hauptwörter-Erfassung und –Filterung � Verfahren von Abbott

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

Domain Object Model����Beispiel

„Terminverwaltung“

ToDoListe*1

ToDoEintrag

fälligAm : DatumrelevantAb : Datum

Einzeltermin Serientermin

wiederhDauerwiederhFrequenz

0,11..*

Werktagstermin

Termin

begin: DatumUndZeitdauer: ZeitistVerschiebbar:boolart:TerminArt

kollidiertMit

*

*

1..*

*

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

Werktagstermin

Teilnehmer

1..*

Ansicht

Jahresansicht Monatsansicht Wochenansicht Tagesansicht

Exportformat Fax HTML Zeitintervall

Drucker EMail

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

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

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

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

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

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

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

Beispiel����Ein 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.

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

Gibt uns diese Beschreibung Hinweise, wie unser Objektmodell aussehen sollte?

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

Beispiel����Ein 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.

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

Was haben wir hier gemacht? Satzelemente kategorisiert!

� Abbott‘s Textanalyse

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

Textanalyse von Abbott [Abbott 1983]

Sprachelement Modellelement Beispiel

Eigenname Objekt Jim Smith

Nomen Klasse Kunde, Konto, Bank

� Zuordnung von Teilen der Sprache zu Komponenten des Objektmodells� Wird vor allem genutzt bei Erstellung des Domain Object Models und

Analysemodells

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

Nomen Klasse Kunde, Konto, Bank

„ist“ Generalisierung Sparkonto ist ein Konto

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

Modalverb („müssen“, „können“, „dürfen“, „sollen“)

Einschränkung(Constraint)

Kontostand darf bestimmte Grenze nicht unterschreiten

Adjektiv Attribut kostenpflichtig

Transitives Verb Methode bringen

Intransitives Verb Methode (Event) erscheinen

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

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.

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

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

Beispiel����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.

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

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

Wie geht's nun weiter? � Diagramme erstellen!

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

Objektmodellierung����Klassenidentifikation

� Name der Klasse

� Attribute

� Methoden

Konto

kontostandkundennr

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

kundennr

einzahlen()abheben()kontostand()

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

Objektmodellierung����Iteration

� Finde neue Objekte: Kunde, Bank

� Iteriere über Namen, Attribute und Methoden

� Verlagere Daten und Verantwortlichkeiten an die passendste Stelle

KontoKontoKunde

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

kontostandkundennr

einzahlen()abheben()kontostand()

einzahlen()abheben()kontostand()

Bank

name

kontostandkundennr

namekundennr

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

Objektmodellierung����Assoziationen

� Name und Rollen

� Art (Assoziation, Aggregation, Komposition)

� Kardinalitäten

KontoKunde

hat1..* 1..*

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

einzahlen()abheben()kontostand()

namekundennr

Bank

name

kontostand

1..*

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

KontoKunde Bank

Objektmodellierung����Kategorien finden

(Vererbung)

KontoKunde

hat1..* 1..*

hat1..* 1..* 1..*

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

einzahlen()abheben()kontostand()

namekundennr

Bank

name

kontostand

1..*

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

Objektmodellierung����Kategorien finden

(Vererbung)

Konto

kontostand

einzahlen()abheben()kontostand()

Kunde

namekundennr

Bank

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

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

Festzinskonto

abheben()

Sparkonto

abheben()

Tagesgeldkonto

abheben()

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

Objektmodellierung����Qualifizierte

Assoziation

� Eine „Qualifikation“ (engl. „Qualifier“) präzisiert die Multiplizitätsangaben einer Assoziation � Er wird benutzt, um 1-n Multiplizitäten auf 1-1 Multiplizitäten zu reduzieren

� Das entspricht der Indizierung der Elemente am gegenüberliegenden Ende der Assotiation durch „Qualifikations“-Werte

Ohne Qualifikation: Ordner Datei1 *

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

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

0..11

öffnen()

Ordner

inhalt

öffnen()

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

Objektmodellierung����Zusammenfassung

� 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

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

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

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

Beispiel����Ereignisfluss 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.

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

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

Beispiel����Textanalyse nach Abbott ����Hervorheben der Textelemente

� Substantive / Nomen / Hauptwörter

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

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

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

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

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

Beispiel����Schematisch 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?

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

� 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

gilt für

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

Beispiel����Schematisch 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, Kasten � Werte 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 86: Kapitel 4 Anforderungserhebungund Analyse („ Requirements ... · Aufgaben damit bearbeitet werden (z.B. bei Interface-Engineering oder Reengineering) Bitte um ein Gespräch mit

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

Beispiel����Fortsetzung der Textanalyse nach Abbott����Methoden 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.

Supermarkt

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

Beispiel����Ausschnitt aus Abbott-Tabelle

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

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

Beispiel����Fortsetzung der Textanalyse nach Abbott����Alles 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.

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

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

Beispiel����Endergebnis für gesamten Text

Pfandrückgabemaschine

SupermarktBetreiberin

pfandEinstellen( Typ,Betrag)

aufstellen(PRM)

zurücknehmen(Behälter)reportErzeugen : Report

Bericht/summe : Double

/Erstattungen

aufgestellt in

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

GetränkebehälterBestand

reportErzeugen : ReportquittungDrucken

/Erstattungen

summe():Double

Quittung/summe : Double

summe():Double

BarcodeReader

scannQuittung:Quittung

BehältertypPfandbetrag:Double

setzePfand(Double)setzeTyp()

� bestimmt Pfand für

Erstattungen

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

Beispiel����Endergebnis weitergedacht

Pfandrückgabemaschine

SupermarktBetreiberin

aufgestellt in

pfandEinstellen( Typ,Betrag)

aufstellen(PRM)getPRM():PRM

zurücknehmen(Behälter)reportErzeugen : Report

Bericht/summe : Double

/Erstattungen

BehältertypName

Pfandbetrag

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

GetränkebehälterBestand

getPfand(Double)setzeTyp(Behältertyp)

reportErzeugen : ReportquittungDruckenpfandEinstellen(Behältertyp,Betrag)

/Erstattungen

summe():Double

Quittung/summe : Double

summe():Double

Erstattungen

Pfandbetrag

⊳ ist vom typ

BarcodeReader

scannQuittung:Quittung

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1.5 Dynamische Modellierung von Anwendungsfällen

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

Anforderungserhebung����Gesamtü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

Input für

����

����

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

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

����

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

Spielzeugauto����Problembeschreibung

� Strom wird angeschaltet� Auto fährt vorwärts

Scheinwerfer leuchtet

� Strom wird ausgeschaltet

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

Scheinwerfer leuchtet

� Strom wird ausgeschaltet

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

� Strom wird ausgeschaltet― Auto hält an

Scheinwerfer geht aus

� Strom wird angeschaltetScheinwerfer leuchtet

� Strom wird ausgeschaltetScheinwerfer geht aus

� Strom wird ausgeschaltet― Auto hält an

Scheinwerfer geht aus

� Strom wird angeschaltetScheinwerfer leuchtet

� Strom wird ausgeschaltetScheinwerfer geht aus

STOP STOP

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

Spielzeugauto����Verschiedene Modelle

Klassendiagramm Sequenzdiagramm

RadLicht

Auto

ein()aus()

:Licht :Rad

ein()

Benutzer:Auto

ein() ein()

vor()

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

� Sagt nichts über das Verhalten

� Jedes “ein()” tut etwas anderes!

� Modelliert asynchrones Verhalten

� ... allerdings nur einen Ausschnitt

Rad

Richtung: (Vor, Rück, Stop)

ein()aus()

Licht

Status: (an, aus)

ein()aus()

aus()aus()

ein()

aus()

ein()

stop()

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

Spielzeugauto����Bewertung 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 nach

:Licht :Rad

ein()

Benutzer:Auto

ein() ein()

vor()

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

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

aus()aus()

ein()

aus()

ein()

stop()

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

Spielzeugauto����Zustandsdiagramm

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

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

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

An do Zurückfahren

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.1.6 Zusammenfassung

Was Sie sich zur Anforderungserhebung mindestens merken sollten

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

Anforderungserhebung����Wichtigste

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

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

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

Anforderungserhebung����Aktivitä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

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

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

Anforderungserhebung����Produkte

Use Case Modell

Schnittstellen -

1

1

<<UML>>Use Case Diagramm1..*

1..*

Anforderungs <<Mockup oder Text>>*

<<UML>>Dynamisches-Diagramm

*

1

*

1

*

Nichtfunktionale Anforderungen

<<Text>>Use Case Beschreibung

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

Funktionale Anforderungen

Anwendungsdomäne1Glossar

Schnittstellen -Modell

AnforderungsModell

<<Mockup oder Text>>UI Spezifikation

*

Spezifikation der System-Schnittstellen

*

<<UML>>Klassen-Diagramm

1..*Domain Object Model

Neben-bedingungen

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

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)

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

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.2 Anforderungsanalyse(Requirements Analysis)

4.2.1 Das Analyse-Modell

4.2.2 Objektmodellierung im Analyseworkflow

4.2.3 Dynamische Modellierung

4.2.4 Der Analyse-Workflow, Beispiele

4.2.5 Konsolidierung der Analyse

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

Inhaltsübersicht

1) Das Analyse-Modell� Unterschiede Use Case Modell ↔ Analysemodell

2) Objektmodellierung im Analyse-Workflow� Entities, Boundaries und Controller

3) Dynamische Modellierung

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

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 105: Kapitel 4 Anforderungserhebungund 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

� Identifiziere Objekte/Klassen

� boundary, controller, entity

� Identifiziere Operationen und Methoden

� Identifiziere Assoziationen

� Identifiziere Attribute

AnforderungsanalyseAnforderungserhebung

zwischen Use Cases

� Identif. nichtfunktionaleAnforderungen

� Identifiziere Neben-bedingungen

� Identifiziere beteiligte Objekte

� Erstelle Glossar

� Identifiziere Attribute

� Modelliere Objektinteraktionen

� Kommunikationsdiagramme

� Sequenzdiagramme

� Modelliere nichttriviales internes Verhalten

� Zustandsdiagramme

Von beobachteterMehrdeutigkeit, Unkorrektheit, Unvollständigkeit, I nkonsistenz, Undurchführbarkeit

zur Verfeinerung der Anforderungen

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.2.1 Das Analyse-Modell

Abgrenzung Anforderungserhebung zu Anforderungsanalyse

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

Use Case vs. Analyse Modell (1)

� in der Terminologie der Anwender verfasst

� externe Sicht des Systems(was tut es?)

� in der Terminologie der Entwickler verfasst

� interne Sicht des Systems(wie tut es das?)

Use Case Modell Analyse Modell

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

place order

salesperson

When placing an order, ...

customerKunden .

imports

� in „use cases“ strukturiert � in Module und Klassen-Stereotypen strukturiert

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

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

� dient den Entwicklern zum Verständnis der System-Struktur

� darf keine Redundanzen / Inkonsistenzen mehr enthalten

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

� definiert Use Cases, die im Analyse-Modell weiter vertieft werden

� definiert die Use-Case-Realisierungen

place order

salesperson

When placing an order, ...

customerKunden .

imports

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

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

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

� Besondere Anforderungen

� Klassendiagrammen Verfeinerung des DOM

� Interaktions- und Aktivitätsdiagrammen Verfeinert oder neuUse-Case Model Analysis Model

Use Case Use-Case Realisierung Analyse

„Trace“

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.2.2 Objektmodellierung im Analyseworkflow

Die Besonderheit der Objektmodellierung im Analyseworkflow

� Die Aufteilung in Boundary, Controller und Entity Stereotypen

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

Analysetyp (Klasse oder Interface)

� Abstrahiert eine oder mehrere Konzepte und / oder Subsysteme� Definiert konzeptuelle Attribute die evtl. später zu eigenen Klassen werden

� Beschreibt noch relativ wenige Operationen

� Realisiert essentielle funktionale Anforderungen� Nicht-funktionale Anforderungen werden erst im Systemdesign behandelt

Kategorien von Analysetypen

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

Kategorien von Analysetypen

Ein Analysetyp ist stets einer der drei folgenden Stereotypen:

� Boundary Typ = Schnittstelle zu Akteur

� Control Typ = Ereignisfluss eines Use Cases

� Entity Typ = Anwendungskonzept („Business object“)

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

Analysetyp����Entity

� Repräsentiert ein für das Anwendungsgebiet relevantes Konzept („Business object“)� Heuristik�Jeder Typ im Domain Object Model ist ein Entity-Kandidat

� Heuristik�Jeder Begriff im Glossar ist ein Entity-Kandidat

� Hat oft Use-Case-übergreifende Bedeutung� Heuristik�In verschiedenen Use Cases wiederkehrende Substantive

Konto

«entity»Konto

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

� Heuristik�In 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)

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

Analysetyp����Boundary

� Beschreibt Interaktionen zwischen dem System und den Akteuren� Heuristik�Jeder Akteur sollte nur mit Boundaries verknüpft sein

� Konsistenzcheck�Jedes Boundary sollte mit mindestens einem Akteur verknüpft sein

� Typische Boundaries� Dateneingabeformulare und Fenster: NotfallberichtBoundary

� Fragen und Nachrichten an den Nutzer: BestätigungsBoundary

Touchscreen

«boundary»Touchscreen

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

� 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

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

Analysetyp����Boundary����Granularität

� So fein wie nötig�Einheiten 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

Auszahlung

EingabeFormular

→ 3. validate()

Touchscreen

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

ersterem geöffnet wird

� So grob wie möglich�Mö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

Fehlermeldung

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

Analysetyp����Controller

� Kapselt den Ereignisfluss eines Use-Case� Vermittlungsstelle zwischen Entities und Boundaries

� Komplexe Berechnungen oder logische Zusammenhänge, die keiner Entityzugeordnet werden können

� Typische Aufgaben von Kontrollobjekten� Ablaufsteuerung in Formularen (z.B. „wizards“)

Abheben

«control»Abheben

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

� 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

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

Analysetyp����Controller����Granularität

� Standard�Ein Kontrollobjekt pro Use Case

� Ausnahme�Mehr als ein Kontrollobjekt pro Use Case� um problemgebundene physikalische Verteilung auszudrücken

� NotfallberichtControl�im Einsatzfahrzeug

� NotfallerfassungControl �in der Notfallzentrale

� oder für sehr komplexe Use Cases

Abheben

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

� oder für sehr komplexe Use Cases

Lebensdauer

� Die Lebensdauer eines Kontrollobjektes sollte der des zugehörigen Use Case entsprechen

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

Warum genau diese drei Stereotypen?

Die Trennung der drei Kategorien ermöglicht

� Stabilität�Modelle, 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

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

� 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ät�Modelle 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

Herkunft�MVC Framework in Smalltalk 76

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

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

Analyse-Objektmodell

� Weiterentwicklung des "Domain Object Model"� Entity-Typen�Aus DOM übernommen (evtl. auch ein paar Neue)

� Kontroll- und Boundary-Typen�Während der Analyse hinzugefügt

Aufteilung von Use-Cases auf Typen im Analyse-Objektmodell

� Jeder Use-Case verteilt sich auf Use-CaseUse-Case

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

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

Analyse-Objektmodell „Digitaluhr“

Textuelle Notation* Graphische Notation*

<<entity>>Datum

<<controller>>Einstellen

<<boundary>>Display

<<boundary>>Knopf

<<entity>>Uhrzeit

Knopf Einstellen Datum

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

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

Display Uhrzeit

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

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

Analyse-Objektmodel ���� 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)

<<controller>>B

<<entity>>C

<<boundary>>A

���� ����

<<controller>>D

<<boundary>>E

���� ����

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

� 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

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

4.2.3 Dynamische Modellierung und Beispiel zum kompletten Analyseworkflow

Erstellung des Analyse-Verhaltensmodells

Beispiel zum Analyseworkflow

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

2. Verhaltensmodel l: Interaktionen der Analysetypen

Weitere Hinweise zur dynamischen Modellierung

Dynamische Modellierung von Benutzerinterfaces

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

Vom Analyse-Objektmodell zum Analyse-Verhaltensmodel

� 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

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

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

� Iteriere für alle ausgewählten Use Cases nachfolgendes Verfahren � nächste Seite

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

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

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

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

Use-Case Modell Analyse-Objektmodell

Abhebung

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Abhebungsinterface

Konto

Kunde

Überweisung

Einzahlung

Kunde

Konto

ÜberweisungÜberweis.Interface

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

Konto

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

Use-Case Modell Analyse-Objektmodell

Abhebung

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Abhebungsinterface

Konto

Kunde

Überweisung

Einzahlung

Kunde

Konto

Überweisung

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

KontoTouchscreeninterface

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

Use-Case Modell Analyse-Objektmodell

Abhebung

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Abhebungsinterface

Kunde

Überweisung

Einzahlung

Kunde

Überweisung

Einzahlungsinterface

Münzeinwurf

EinzahlungGeldschein Einzug

KontoTouchscreeninterface

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

Use-Case Modell Analyse-Objektmodell

Abhebung

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerät

Touchscreeninterface

Kunde

Überweisung

Einzahlung

Kunde

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

Use-Case Modell Verhaltensmodell der

Analyse

Use-Case Modell Analyse-Objektmodell

GeldausgabeGeldausgabegerätAbhebung

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

Touchscreeninterface

Kunde

Kunde

Konto

EreignisflussNächster Schritt: Ereignisfluss des Use Case „Abhebung" auf Interaktionen der betroffenen Analyse-Objekte abbilden!

� Kommunikationsdiagramm

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

Use-Case Modell Verhaltensmodell der

Analyse

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Geldausgabegerät

Geldausgabe 4: prüfen 5: abheben

6: Geldausgabe veranlassen

7: Geld ausgeben

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

� Fortsetzung (1)� informelle Aktionen durch konkrete Nachrichten ersetzen

Kunde

TouchscreenInterface

Konto

3: Abhebung anfordern

1: identifizieren

2: Abhebung anfordern

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

Use-Case Modell Verhaltensmodell der

Analyse

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Geldausgabegerät

Geldausgabe

7: Geld ausgeben

6: ausgeben(Betrag)

4: istVerfügbar(Betrag)5: abheben(Betrag)

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

� Fortsetzung (1)� informelle Aktionen durch konkrete Nachrichten ersetzen

TouchscreenInterface

Konto

1: identifizieren

2: Abhebung anfordern

3: abheben(Kontonummer,Betrag)

Kunde

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

Use-Case Modell Verhaltensmodell der

Analyse

Ereignisfluss "Abhebung" auf Kommunikationsdiagramm abbilden

Geldausgabegerät

Geldausgabe

7: Geld ausgeben

6: ausgeben(Betrag)

4.1: kontostand()5: abheben(Betrag)

4: istVerfügbar(Betrag)

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

� Fortsetzung (2)� Verantwortlichkeiten der Objekte überdenken � Zuordnung von Nachrichten

anpassen (Bsp: verfügbarkeitPrüfen() in Controller statt in Entität)

� Methoden der Objekte ergänzen (was braucht man noch für „verfügbarkeitPrüfen“?)

TouchscreenInterface

Konto

1: identifizieren

2: Abhebung anfordern

3: abheben(Kontonummer,Betrag)

Kunde

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

Analyse-Verhaltensmodel����Objekt-

Erzeugung

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

� Controler-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 Controler-Objekten erschaffen

� Entity-Objekte existieren schon (persistent) oder werden von Controler-Objekten erschaffen

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

Analyse-Verhaltensmodel����Objekt-Zugriff

� Sofortige Kontostandsaktualisierung bei eintreffender Überweisung

Geldausgabegerät Geldausgabe Konto

Kunde

→ 4.1: kontostand()→ 5: abheben(Betrag)

← 4.n “1000 Euro erhalten!”

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

� Objekt-Zugriff� Trotz der Einschränkungen auf Typenebene (s. Analyse-Objektmodell

Abhängigkeiten) dürfen Entity-, Boundary- und Controller-Objekte beleibigmiteinander 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

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

Analyse-Verhaltensmodel����

Sequenzdiagramme 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 � Weitere Kontroll-Objekte Erinnern Sie sich, wann welche

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

� Danach � Weitere Kontroll-Objekte Erinnern Sie sich, wann welche auftreten können?

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

Dynamische Modellierung von Benutzerschnittstellen

� Navigationspfade � Eine Variation von Zustandsdiagrammen

� Werden zum Design von Benutzerschnittstellen benutzt

� Zustand�Einzelne Bildschirmansicht („Screen“)� Ein grafisches Layout der mit den Zuständen assoziierten Screens hilft bei

der Vorstellung des dynamischen Modells eines Benutzerinterfaces

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

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übergang�Ergebnis einer Exit-Aktion� Klick auf Schaltfläche

� Menüauswahl

� Cursorbewegungen

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

Navigationspfade als Graph

Diagnostics• User can move cursor to Control Panel or Graph

Graph• User can select data group

and type of graph

Control panel• User can select functionality of sensors

DisableEnableDefine Data Selection

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

Visualize• User views graph

• User can add data groups for being viewed

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

Navigationspfade als Zustandsdiagramm

Diagnosedo / Auswahl Control-Panel

oder Graph anzeigen

Control-Paneldo / Sensor-Übersicht

Control-Panel

Definition Ein Aus

Typdo / Typauswahl

Graph

Ok

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

Ausschaltendo / Sensor-Events ausblenden

Einschaltendo / Sensor-Events einblenden

Event-Definitiondo / Sensor-Events anpassen

Ereignislistedo / Ereignisseanzeigen

...

Datendo / Datengruppenauswahl

Anzeigedo / Graph anzeigen

Ok Ok Ok Ok

...

...

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

Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S

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

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

Req.Elicitation

Aktivitätsdiagramm des Analyse-Workflow

Definiere Entity-Objektey

Definiere Boundary-Objekte

Definiere Controller-Objekte

Definiere betroffene Objekte

Definiere Use Cases

Req.Analysis

Modell validieren

Modelle zusammenführen

Entity-Objektey Boundary-Objekte Objekte

Definiere Interaktionen

Definiere Assoziationen

Definiere AttributeDefiniere nicht-triviales

Verhalten

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

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

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

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

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

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

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

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

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

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

Formatvorlage Anforderungsanalyse-Dokument

� 1. Einführung

� 2. Momentanes System

� 3. Beabsichtigtes System

� 3.1 Überblick

� 3.2 Funktionale Anforderungen

� 3.3 Nichtfunktionale Anforderungen

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

� 3.3 Nichtfunktionale Anforderungen

� 3.4 Nebenbedingungen (“Pseudoanforderungen”)

� 3.5 Systemmodelle

� 4. Glossar

Exkurs „Analyseformatvorlage“

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

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

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

� Eine Liste der Prioritäten

� Einen Revisionsprozess

� Eine Liste von Kriterien zur Annahme des Systems

� Einen Zeitplan und ein Budget

Page 145: Kapitel 4 Anforderungserhebungund 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?

Functional Modeling

Object Modeling

� 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

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

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

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

� Integration der Modelle verschiedener Subsysteme

� Konsistenz, Vollständigkeit, Mehrdeutigkeit

� Struktur des Anforderungsanalyse-Dokuments und seine Verwendung bei der Interaktion mit dem Kunden.