Content uploaded by Ivar Jacobson
Author content
All content in this area was uploaded by Ivar Jacobson on Aug 18, 2015
Content may be subject to copyright.
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 1
Kapitel II: Das Pflichtenheft
II.2: Modell des Problembereichs
Prof. Dr. Gregor Engels
AG Datenbank- und
Informationssysteme
Softwareentwurf
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 2
2
Kapitel II.2
Kapitel II.2
Gliederung Pflichtenheft <-> Vorlesung
Abschnitt 1:
Zielbestimmung
Abschnitt 2:
Produkteinsatz
Abschnitt 3:
Produktfunktionen
Abschnitt 4
Produktcharakteristiken
Abschnitt 1:
Zielbestimmung
Abschnitt 2:
Produkteinsatz
Abschnitt 3:
Produktfunktionen
Abschnitt 4
Produktcharakteristiken
2.1 Beschreibung des Problembereichs
2.2 Glossar
2.3 Modell des Problembereichs
2.4 Geschäftsprozesse
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 2
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 3
3
Pflichtenheft – Abschnitt 2:
Produkteinsatz
Aufgaben der Abschnitte 2.1 – 2.3:
2.1 Beschreibung des Problembereichs:
Erläuterung von Fachbegriffen und Zusammenhängen für den Laien
2.2 Glossar:
Nachschlagewerk für Fachbegriffe
2.3 Modell des Problembereichs:
Nachschlagewerk für Präzisierung der Zusammenhänge
DURCH
graphisches, objektorientiertes Modell
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 4
4
Unified Modeling Language (UML)
graphische, objektorientierte Familie von Modellierungssprachen
Standard, herausgegeben von der Object Management Group (OMG)
seit 11/1997
aktuelle Version: 2.0
http://www.omg.org/uml
Notationsübersicht und Glossar
http://www.oose.de/uml/
Grady Booch, James Rumbaugh, Ivar
Jacobson, The Unified Modeling Language
User Guide, Addison Wesley 1999.
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 3
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 5
5
Von der Realität zum Modell
Realität:
Realität:
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 6
6
Von der Realität zum Modell
Rechte Tür
Linke Tür
Objekte
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 4
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 7
7
Von der Realität zum Modell
Rechte Tür
Linke Tür
Karussell 1 Karussell 2
ermöglicht
Zugang zu
ermöglicht
Zugang zu
Objekte +
Beziehungen
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 8
8
Von der Realität zum Modell
Rechte Tür
Karussell 1
Karussell 1
ermöglicht
Zugang zu Lagerfeld 1
Lagerfeld 2
Lagerfeld 3
...
Objekte + (Teil-Ganzes-)
Beziehungen
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 5
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 9
9
Von der Realität zum Modell
Objekte +
Beziehungen +
Eigenschaften
Karussell 1
Lagerfeld 1
zulässigesGewicht = 700
...
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 10
10
(UML-) Objektdiagramme
beschreiben einen
Schnappschuss der Realität
werden i.A. nur ausschnittsweise
gezeichnet
enthalten
(benannte) Objekte
Beziehungen zwischen Objekten
Eigenschaften (Attribute) von
Objekten (mit Name und Wert) Karussell 1
Lagerfeld 1
zulässigesGewicht = 700
Rechte Tür
ermöglicht
Zugang zu
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 6
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 11
11
Von der Realität zum Modell
Realität:
Realität:
Situation 1
Situation 3
Situation 2
Menge
allgemein möglicher
Situationen
=
Modell des
Problembereichs
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 12
12
Vom konkreten zum allgemeinen Modell
Rechte Tür
Linke Tür
Klassen
Tür
Es gibt eine rechte
und eine linke Tür.
Es gibt Türen.
Klassennamen
im Singular!
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 7
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 13
13
Vom konkreten zum allgemeinen Modell
Tür
Linke Tür
Karussell
Karussell 2
ermöglicht
Zugang zu
ermöglicht
Zugang zu
Klassen +
Beziehungen
(Assoziationen)
Die linke Tür ermöglicht
den Zugang zum
zweiten Karussell.
Türen ermöglichen
den Zugang zu
Karussells.
Unbenannte
Assoziationen
sind sinnlos!
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 14
14
Vom konkreten zum allgemeinen Modell
Reflexive Assoziationen
und Rollennamen
Lagerfach 2
Lagerfach1
Lagerfächer
sind
übereinander
angeordnet.
Lagerfach
Rollen ersetzen
Assoziationsnamen
Lagerfach 3
Oberer Nachbar
Unterer Nachbar
Ein Lagerfach ist
ein oberer
/unterer Nachbar
von einem anderen
Lagerfach
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 8
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 15
15
Vom konkreten zum allgemeinen Modell
Klassen + (Teil-Ganzes-)
Beziehungen
(Aggregation)
Karussell 1
Lagerfeld 1
Lagerfeld 1 ist Teil
des ersten Karussells.
Lagerfelder
sind Teile
von Karussells.
Karussell
Lagerfeld
Raute immer am
Übergeordneten
(Ganzen)!
Aggregationen haben
keinen (speziellen) Namen
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 16
16
Vom konkreten zum allgemeinen Modell
Klassen +
Eigenschaften
(Attribute)
Lagerfeld 1
Lagerfeld 1
zulässigesGewicht = 700
zulässigesGewicht = 700
Lagerfeld 1 hat ein zulässiges
Gewicht von 700 kg.
Lagerfeld
Lagerfeld
zulässigesGewicht : Dezimal
zulässigesGewicht : Dezimal
Lagerfelder haben ein
zulässiges Gewicht, das
durch eine Dezimal-
zahl angegeben wird.
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 9
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 17
17
(UML-) Klassendiagramme
beschreiben allgemein mögliche
Situationen
werden zur Beschreibung des
Modells des Problembereichs
verwendet
enthalten
Klassen (Mengen gleichartiger
Objekte)
Beziehungen zwischen Klassen
(Assoziationen)
Eigenschaften (Attribute) von
Klassen (mit Name und Typ)
Karussell
Lagerfeld
zulässigesGewicht : Dezimal
Tür
ermöglicht
Zugang zu
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 18
18
Notationselemente für
Klassendiagramme
Klassen auf- und zuklappen:
Karussell
Lagerfeld
zulässigesGewicht : Dezimal
Klasse Karussell hat
keine Attribute.
Klasse Karussell hat
keine Attribute.
Karussell
Lagerfeld
Diagramm macht keine Aussage,
ob Klasse Karussell und Klasse
Lagerfeld Attribute haben.
Diagramm macht keine Aussage,
ob Klasse Karussell und Klasse
Lagerfeld Attribute haben.
vs.
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 10
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 19
19
Notationselemente für
Klassendiagramme
Türen ermöglichen
den Zugang zu
Karussells.
Türen ermöglichen
den Zugang zu
Karussells.
Präziser (durch
Kardinalitäten):
Tür
Karussell
ermöglicht
Zugang zu
Jede Tür ermöglicht
den Zugang zu
einem Karussell.
Jede Tür ermöglicht
den Zugang zu
einem Karussell.
Tür
Karussell
ermöglicht
Zugang zu
1
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 20
20
Notationselemente für
Klassendiagramme
Türen ermöglichen
den Zugang zu
Karussells.
Türen ermöglichen
den Zugang zu
Karussells.
Präziser (durch
Kardinalitäten): Zu jedem Karussell hat
man nur Zugang durch
eine Tür.
Zu jedem Karussell hat
man nur Zugang durch
eine Tür.
Tür
Karussell
ermöglicht
Zugang zu
Tür
Karussell
ermöglicht
Zugang zu 1
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 11
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 21
21
Notationselemente für
Klassendiagramme
0..1
1
0..* oder *
4..12
2, 4, 6
ein oder kein
genau ein
beliebig viele (Default)
zwischen vier und zwölf
zwei, vier oder sechs
Karussell Lagerfeld Lagerfach Ware
liegt in
0..*0..14..121126
Kardinalitäten für Beziehungen:
Unbestimmte Kardinalitäten
sind „offiziell“ * , inoffiziell
Schlamperei!
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 22
22
Ware
Notationselemente für
Klassendiagramme
Lagerfach
0..1
Leserichtung von Kardinalitäten für Beziehungen:
Jede Ware liegt in keinem oder einem Lagerfach
Ausgangsklasse Beziehungsname Kardinalität Zielklasse
liegt in
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 12
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 23
23
Notationselemente für
Klassendiagramme
Karussell Lagerfeld Lagerfach
4..121126
Geordnete Assoziationen
{ordered} {ordered}
Lagerfelder eines Karussells besitzen eine Sortierung.
Lagerfächer eines Lagerfeldes besitzen eine Sortierung.
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 25
25
Notationselemente für
Klassendiagramme
Position
Ein- und Auslagerungsaufträge haben gemeinsame Eigenschaften
und Beziehungen.
Einlagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Auslagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
1..* 1..*
11
Finden von Generalisierungen: Schritt 1
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 13
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 26
26
Notationselemente für
Klassendiagramme
Position
Einlagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Auslagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
1..* 1..*
11 {xor}
Finden von Generalisierungen: Schritt 2
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 27
27
Notationselemente für
Klassendiagramme
Einlagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Auslagerungsauftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Position
1..*
1
Alle Aufträge haben diese Eigenschaften und Beziehungen.
1
1..* 1..*
1
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Finden von Generalisierungen: Schritt 3
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 14
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 28
28
Notationselemente für
Klassendiagramme
Position
1..*
1
Ein- und Auslagerungsaufträge sind spezielle Arten von Aufträgen:
Ein Einlagerungsauftrag ist ein Auftrag.
Ein Auslagerungsauftrag ist ein Auftrag.
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Einlagerungsauftrag Auslagerungsauftrag
1
1..* 1..*
1
Auftragsnummer : Dezimal
Bestelldatum : Datum Auftragsnummer : Dezimal
Bestelldatum : Datum
Finden von Generalisierungen: Schritt 4
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 29
29
Notationselemente für
Klassendiagramme
Position
1..*
1
Ein- und Auslagerungsaufträge sind spezielle Arten von Aufträgen:
Ein Einlagerungsauftrag ist ein Auftrag.
Ein Auslagerungsauftrag ist ein Auftrag.
Sie erben die Eigenschaften und Beziehungen.
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Einlagerungsauftrag Auslagerungsauftrag
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 15
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 30
30
Notationselemente für
Klassendiagramme
Position
1..*
1
Ein- und Auslagerungsaufträge sind spezielle Arten von Aufträgen:
Sie erben die Attribute und Assoziationen.
Sie können zusätzliche Eigenschaften und Beziehungen haben.
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Einlagerungsauftrag Auslagerungsauftrag
Vererbung
Empfänger
hat
1
0..*
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 31
31
Notationselemente für
Klassendiagramme
Klassen
Assoziationen zwischen Klassen
mit Kardinalitäten
Aggregations-Beziehungen
Constraint {ordered}
Eigenschaften von Klassen
(Attribute)
Vererbung
Karussell
Lagerfeld
26
1
{ordered}
zulässigesGewicht : Dezimal
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Auslagerungsauftrag
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 16
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 32
32
Vorgehen bei der Entwicklung des
Modells des Problembereichs
Realität:
Konkrete Modelle:
Objektdiagramme
Allgemeines Modell:
Klassendiagramm
Karussell
Lagerfeld
zulässigesGewicht : Dezimal
Karussell 1
Lagerfeld 1
zulässigesGewicht = 700
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 33
33
Die große Frage der Modellierung
Abstraktion = Beschränkung auf das Wesentliche
Was ist denn jetzt
genau das
Wesentliche?
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 17
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 34
34
Qualitäten des MdPs
Ein gutes Modell des Problembereichs ist
Vollständig
Zwei Situationen in der Realität, die sich relevant unterscheiden,
ergeben auch zwei unterschiedliche Objektdiagramme
Präzise
Es werden nur die relevanten Situationen beschrieben
Was für einen Problembereich relevant ist, ist nicht leicht
zu erkennen!
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 35
35
Modell des Problembereichs
und die Realität
Pflichtenheft
Tür
Karussell
Auslagerungsauftrag
Empfänger
1
11
1
Code
class Auslagerungsauftrag
private myEmpf Empfaenger
Warum kann ich jetzt
nicht schnell für die
Innere was mitbestellen?
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 18
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 36
36
Zusammenhang zwischen Klassen-
und Objektdiagramm
Konkrete Modelle:
Objektdiagramme
Allgemeines Modell:
Klassendiagramm
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 37
37
Instanziierung
Karussell
Tür
Allgemeines Modell:
Klassendiagramm Konkrete Modelle:
Objektdiagramme
: Karussell
1
1
ermöglicht
Zugang zu
: Tür
ermöglicht
Zugang zu K1 : Karussell
T1 : Tür
ermöglicht
Zugang zu
unbenannte
Objekte benannte
Objekte
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 19
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 38
38
Instanziierung
Karussell
Tür
Allgemeines Modell:
Klassendiagramm Konkretes Modell:
Objektdiagramme
K1: Karussell
1
1
ermöglicht
Zugang zu
T1: Tür
ermöglicht
Zugang zu K2: Karussell
T2: Tür
ermöglicht
Zugang zu
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 39
39
Instanziierung
Karussell
Tür
Allgemeines Modell:
Klassendiagramm Konkretes Modell:
Objektdiagramme
: Karussell
1
1
ermöglicht
Zugang zu
: Tür
ermöglicht
Zugang zu
ermöglicht
Zugang zu
: Tür
Softwareentwurf WS 2004/05
Kapitel II: Das Pflichtenheft
Kapitel II.2: Modell des
Problembereichs
3.11.2004
Gregor Engels 20
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 40
40
Instanziierung
Allgemeines Modell:
Klassendiagramm Konkretes Modell:
Objektdiagramme
Position
1..*
1
Auftrag
Auftragsnummer : Dezimal
Bestelldatum : Datum
Einlagerungsauftrag
A131:Einlagerungsauftrag
Auftragsnummer = D214V7
Bestelldatum = 3.11.2004
P1:Position P2:Position
Softwareentwurf 2004/05
Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels
Universität Paderborn - Gregor Engels 41
41
Pflichtenheft – Abschnitt 2.3:
Modell des Problembereichs
beschrieben durch UML Klassendiagramm
dient dem Nachschlagen der präzisen Zusammenhänge
Übersichtlichkeit durch
graphische Notation
objektorientierte Strukturierung
Präzisierung durch
verschiedene Arten von Beziehungen
Kardinalitäten
Constraints