03.03.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!