Kapitel II: Das Pflichtenheft - II.2 Modell des Problembereichs
Kapitel II: Das Pflichtenheft - II.2 Modell des Problembereichs
Kapitel II: Das Pflichtenheft - II.2 Modell des Problembereichs
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Softwareentwurf<br />
<strong>Kapitel</strong> <strong>II</strong>: <strong>Das</strong> <strong>Pflichtenheft</strong><br />
<strong>II</strong>.3: <strong>Modell</strong> <strong>des</strong> <strong>Problembereichs</strong><br />
Christian Soltenborn<br />
FG Datenbank- und<br />
Informationssysteme
Abschnitt 1:<br />
Zielbestimmung<br />
Abschnitt 2:<br />
Produkteinsatz<br />
Abschnitt 3:<br />
Produktfunktionen<br />
Abschnitt 4<br />
Produktcharakteristiken<br />
Softwareentwurf 2011/12<br />
Gliederung <strong>Pflichtenheft</strong> Vorlesung<br />
2.1 Beschreibung <strong>des</strong> <strong>Problembereichs</strong><br />
2.2 Glossar<br />
2.3 <strong>Modell</strong> <strong>des</strong> <strong>Problembereichs</strong><br />
2.4 Geschäftsprozesse<br />
Universität Paderborn - Gregor Engels 2<br />
<strong>Kapitel</strong> <strong>II</strong>.3
Aufgaben der Abschnitte 2.1 – 2.3:<br />
2.1 Beschreibung <strong>des</strong> <strong>Problembereichs</strong>:<br />
<strong>Pflichtenheft</strong> – Abschnitt 2:<br />
Produkteinsatz<br />
Erläuterung von Fachbegriffen und Zusammenhängen für den Laien<br />
2.2 Glossar:<br />
Nachschlagewerk für Fachbegriffe<br />
2.3 <strong>Modell</strong> <strong>des</strong> <strong>Problembereichs</strong>:<br />
Nachschlagewerk für Präzisierung der Zusammenhänge<br />
DURCH<br />
graphisches, objektorientiertes UML-<strong>Modell</strong><br />
Softwareentwurf 2011/12 Universität Paderborn - Gregor Engels 3
Softwareentwurf 2011/12<br />
Von der Realität zum <strong>Modell</strong><br />
Realität:<br />
Universität Paderborn - Gregor Engels 4
Rechte Tür<br />
Softwareentwurf 2011/12<br />
Linke Tür<br />
Von der Realität zum <strong>Modell</strong><br />
Objekte<br />
Universität Paderborn - Gregor Engels 5
Rechte Tür<br />
ermöglicht<br />
Zugang zu<br />
Linke Tür<br />
Karussell 1 Karussell 2<br />
Softwareentwurf 2011/12<br />
ermöglicht<br />
Zugang zu<br />
Von der Realität zum <strong>Modell</strong><br />
Objekte +<br />
Beziehungen<br />
Universität Paderborn - Gregor Engels 6
Rechte Tür<br />
ermöglicht<br />
Zugang zu<br />
Karussell 1<br />
Softwareentwurf 2011/12<br />
Lagerfeld 1<br />
Lagerfeld 2<br />
Lagerfeld 3<br />
Von der Realität zum <strong>Modell</strong><br />
...<br />
Objekte + (Teil-Ganzes-)<br />
Beziehungen<br />
Universität Paderborn - Gregor Engels 7
Karussell 1<br />
Softwareentwurf 2011/12<br />
Lagerfeld 1<br />
zulässigesGewicht = 700<br />
...<br />
Von der Realität zum <strong>Modell</strong><br />
Objekte +<br />
Beziehungen +<br />
Eigenschaften<br />
Universität Paderborn - Gregor Engels 8
eschreiben einen<br />
Schnappschuss der Realität<br />
werden i.A. nur ausschnittsweise<br />
gezeichnet<br />
enthalten<br />
(benannte) Objekte<br />
Beziehungen zwischen Objekten<br />
Eigenschaften (Attribute) von<br />
Objekten (mit Name und Wert)<br />
Notation: Rechteck mit<br />
unterstrichenem Namen<br />
Softwareentwurf 2011/12<br />
(UML-) Objektdiagramme<br />
Rechte Tür<br />
Lagerfeld 1<br />
zulässigesGewicht = 700<br />
Karussell 1<br />
Universität Paderborn - Gregor Engels 9<br />
ermöglicht<br />
Zugang zu
Softwareentwurf 2011/12<br />
Von der Realität zum <strong>Modell</strong><br />
Realität:<br />
Universität Paderborn - Gregor Engels 10
Tür<br />
Es gibt Türen.<br />
Klassennamen<br />
im Singular!<br />
Nicht<br />
unterstrichen!<br />
Softwareentwurf 2011/12<br />
Vom konkreten zum allgemeinen <strong>Modell</strong><br />
Klassen<br />
Objekte können<br />
nun getypt<br />
werden!<br />
Es gibt eine rechte<br />
und eine linke Tür.<br />
Rechte Rechts:Tür Tür<br />
Universität Paderborn - Gregor Engels 11<br />
Linke Links:Tür Tür
ermöglicht<br />
Zugang zu<br />
Tür<br />
Karussell<br />
Türen ermöglichen<br />
den Zugang zu<br />
Karussells.<br />
Softwareentwurf 2011/12<br />
Vom konkreten zum allgemeinen <strong>Modell</strong><br />
Unbenannte<br />
Assoziationen<br />
sind sinnlos!<br />
Klassen +<br />
Beziehungen<br />
(Assoziationen)<br />
Links:Tür<br />
Die linke Tür ermöglicht<br />
den Zugang zum<br />
zweiten Karussell.<br />
ermöglicht<br />
Zugang zu<br />
2:Karussell<br />
Universität Paderborn - Gregor Engels 12
Unterer Nachbar<br />
Lagerfach<br />
Ein Lagerfach ist<br />
ein oberer<br />
/unterer Nachbar<br />
von einem anderen<br />
Lagerfach<br />
Softwareentwurf 2011/12<br />
Vom konkreten zum allgemeinen <strong>Modell</strong><br />
Oberer Nachbar<br />
Ersetzung nur erlaubt,<br />
wenn beide<br />
Rollen vorhanden!<br />
Rollen ergänzen<br />
(oder ersetzen)<br />
Assoziationsnamen<br />
Reflexive Assoziationen<br />
und Rollennamen<br />
Lagerfächer<br />
sind<br />
übereinander<br />
angeordnet.<br />
1:Lagerfach<br />
Oberer Nachbar<br />
Unterer Nachbar<br />
2:Lagerfach<br />
Oberer Nachbar<br />
Unterer Nachbar<br />
3:Lagerfach<br />
Universität Paderborn - Gregor Engels 13
Karussel<br />
Lagerfeld<br />
Lagerfelder<br />
sind Teile<br />
von Karussells.<br />
Softwareentwurf 2011/12<br />
Vom konkreten zum allgemeinen <strong>Modell</strong><br />
Lagerfeld 1 ist Teil<br />
<strong>des</strong> ersten Karussells.<br />
Klassen + (Teil-Ganzes-)<br />
Beziehungen<br />
(Aggregation)<br />
Raute immer am<br />
Übergeordneten (Ganzen)!<br />
Aggregationen haben<br />
keinen (speziellen) Namen<br />
1:Karussel<br />
1:Lagerfeld<br />
Universität Paderborn - Gregor Engels 14
Lagerfeld<br />
zulässigesGewicht : Dezimal<br />
Lagerfelder haben ein<br />
zulässiges Gewicht, das<br />
durch eine Dezimalzahl<br />
angegeben wird.<br />
Softwareentwurf 2011/12<br />
Vom konkreten zum allgemeinen <strong>Modell</strong><br />
Klassen +<br />
Eigenschaften<br />
(Attribute)<br />
1:Lagerfeld<br />
zulässigesGewicht = 700<br />
Lagerfeld 1 hat ein zulässiges<br />
Gewicht von 700 kg.<br />
Universität Paderborn - Gregor Engels 15
Notationselemente für Klassendiagramme<br />
Assoziationen vs. Attribute<br />
Karussell<br />
myLagerfeld<br />
Lagerfeld<br />
vs.<br />
Karussell<br />
myLagerfeld:Lagerfeld<br />
Lagerfeld<br />
Assoziationen zeigen die Zusammenhänge zwischen Klassen explizit. Sie sind im<br />
<strong>Modell</strong> <strong>des</strong> <strong>Problembereichs</strong> immer zu bevorzugen.<br />
Regel: Kein Attribut hat einen Typ, der als Klasse im Klassendiagramm vorkommt!<br />
Softwareentwurf 2011/12<br />
Universität Paderborn - Gregor Engels 16
eschreiben allgemein mögliche<br />
Situationen<br />
werden zur Beschreibung <strong>des</strong><br />
<strong>Modell</strong>s <strong>des</strong> <strong>Problembereichs</strong><br />
verwendet<br />
enthalten<br />
Klassen (beschreiben Mengen<br />
gleichartiger Objekte)<br />
Beziehungen zwischen Klassen<br />
(Assoziationen)<br />
Eigenschaften (Attribute) (mit<br />
Name und Typ)<br />
Notation für Klassen: Rechtecke<br />
mit nicht unterstrichenen Namen<br />
Softwareentwurf 2011/12<br />
(UML-) Klassendiagramme<br />
Tür<br />
Lagerfeld<br />
Karussell<br />
zulässigesGewicht : Dezimal<br />
Universität Paderborn - Gregor Engels 17<br />
ermöglicht<br />
Zugang zu
Klassen auf- und zuklappen:<br />
Karussell<br />
Lagerfeld<br />
zulässigesGewicht : Dezimal<br />
Klasse Karussell hat<br />
keine Attribute.<br />
Softwareentwurf 2011/12<br />
vs.<br />
Notationselemente für<br />
Klassendiagramme<br />
Karussell<br />
Lagerfeld<br />
Diagramm macht keine Aussage,<br />
ob Klasse Karussell und Klasse<br />
Lagerfeld Attribute haben.<br />
Universität Paderborn - Gregor Engels 18
ermöglicht<br />
Zugang zu<br />
Tür<br />
Karussell<br />
Türen ermöglichen<br />
den Zugang zu<br />
Karussells.<br />
Softwareentwurf 2011/12<br />
Präziser (durch<br />
Kardinalitäten):<br />
Notationselemente für<br />
Klassendiagramme<br />
ermöglicht<br />
Zugang zu<br />
Tür<br />
Karussell<br />
Jede Tür ermöglicht<br />
den Zugang zu<br />
einem Karussell.<br />
Universität Paderborn - Gregor Engels 19<br />
1
ermöglicht<br />
Zugang zu<br />
Tür<br />
Karussell<br />
Türen ermöglichen<br />
den Zugang zu<br />
Karussells.<br />
Softwareentwurf 2011/12<br />
Präziser (durch<br />
Kardinalitäten):<br />
Notationselemente für<br />
Klassendiagramme<br />
ermöglicht<br />
Zugang zu<br />
Tür<br />
Karussell<br />
Zu jedem Karussell hat<br />
man nur Zugang durch<br />
eine Tür.<br />
Universität Paderborn - Gregor Engels 20<br />
1
Kardinalitäten für Beziehungen:<br />
0..1<br />
1<br />
0..* oder *<br />
4..12<br />
2, 4, 6<br />
ein oder kein<br />
genau ein<br />
beliebig viele (Default)<br />
zwischen vier und zwölf<br />
zwei, vier oder sechs<br />
Notationselemente für<br />
Klassendiagramme<br />
Karussell Lagerfeld Lagerfach<br />
liegt in<br />
Ware<br />
0..1 26<br />
0..1 4..12<br />
0..1 0..*<br />
Beachte: Aggregation hat (bei uns) immer Kardinalität 0..1<br />
muss nicht angegeben werden<br />
Softwareentwurf 2011/12<br />
Universität Paderborn - Gregor Engels 21
Ware<br />
Notationselemente für<br />
Klassendiagramme<br />
Leserichtung von Kardinalitäten für Beziehungen:<br />
0..1<br />
Lagerfach<br />
Jede Ware liegt in keinem oder einem Lagerfach<br />
Ausgangsklasse Beziehungsname Kardinalität Zielklasse<br />
Softwareentwurf 2011/12<br />
liegt in<br />
Universität Paderborn - Gregor Engels 22
Ware<br />
Notationselemente für<br />
Klassendiagramme<br />
Leserichtung von Kardinalitäten für Beziehungen:<br />
0..25<br />
Lagerfach<br />
In jedem Lagerfach liegen 0 bis max. 25 Waren<br />
Ausgangsklasse Beziehungsname Kardinalität Zielklasse<br />
Softwareentwurf 2011/12<br />
liegt in<br />
Universität Paderborn - Gregor Engels 23
Geordnete Assoziationen<br />
Notationselemente für<br />
Klassendiagramme<br />
Karussell<br />
{ordered}<br />
Lagerfeld<br />
{ordered}<br />
Lagerfach<br />
26<br />
4..12<br />
Lagerfelder eines Karussells besitzen eine Sortierung.<br />
Lagerfächer eines Lagerfel<strong>des</strong> besitzen eine Sortierung.<br />
Softwareentwurf 2011/12<br />
Universität Paderborn - Gregor Engels 24
Weitere Einschränkungen<br />
Softwareentwurf 2011/12<br />
Lagerfach<br />
0..1 0..1<br />
{xor}<br />
Ware<br />
Notationselemente für<br />
Klassendiagramme<br />
Transportbox<br />
liegt in liegt in<br />
Xor, nand etc. werden von der verbindenden Klasse aus gelesen<br />
(hier: Ware).<br />
Ware liegt immer in Lagerfach oder Transportbox!<br />
Universität Paderborn - Gregor Engels 25