Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Vorlesung „Softwaretechnologie“Wintersemester 2009 R O O T S
Kapitel 4
Anforderungserhebung und Analyse („Requirements Engineering”)(„Requirements Engineering”)
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?
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
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
Requirements Engineering– Was und warum? –
Motivation und Definition
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
Was ist das?
Mehrdeutige Anforderungen
© 2000-2009 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-6 R O O T S
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()
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()
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
Welches System sollen Sie bauen?
Unscharfe Anforderungen
© 2000-2009 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-10 R O O T S
Anforderungen
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.
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
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
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
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
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
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
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“
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“)
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.
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
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
� 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
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...
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
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)
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.
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
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.
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
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
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
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“.
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
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 ”
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.
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?
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
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
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
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.
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.
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“
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
4.1.3. Anwendungsfalldiagramme(“UML Use Case Diagrams”)
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
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, ...
...
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
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
<<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
<<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
<<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]
<<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
<<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!
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
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
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
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»
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}
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}
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}
<<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
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
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
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
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
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
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?
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
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
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“, …
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!
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()
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
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..*
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..*
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()
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()
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
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
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.“
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.“
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
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
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
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
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
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
Beispiel����Ausschnitt aus Abbott-Tabelle
© 2000-2009 Dr. G. Kniesel Vorlesung „Softwaretechnologie“ (SWT) Seite 4-91 R O O T S
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.“
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
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
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
4.1.5 Dynamische Modellierung von Anwendungsfällen
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
����
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
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()
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()
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
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
4.1.6 Zusammenfassung
Was Sie sich zur Anforderungserhebung mindestens merken sollten
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
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
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
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.
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
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
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
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
4.2.1 Das Analyse-Modell
Abgrenzung Anforderungserhebung zu Anforderungsanalyse
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
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
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“
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
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“)
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)
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
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
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
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
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)
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
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.
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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?
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
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• …• …
...
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
...
...
Vorlesung „ Softwaretechnologie“Kapitel 4: Anforderungserhebung und -analyse R O O T S
4.2.5 Konsolidierung der Analyse(aus Brügge und Dutoit)
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
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
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
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
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“
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
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
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.