# Stammbaum in UML modellieren



## Habre (13. April 2007)

Hallo zusammen,

Sry wenn es das falsche Forum ist, habe leider kein passenderes gefunden. Ich muss in UML einen Familienstammbaum modellieren. Dazu habe ich ein Objektdiagramm vorliegen:
http://www.loh-wow.de/pictureupload/1176466270.jpg

Dazu soll ich ein Klassendiagramm erstellen. Leider habe ich keinen konkreten Ansatz. Vielleicht weiß ja einer Rat. Wäre sehr dankbar.


----------



## kle-ben (14. April 2007)

Hi,
also ich hab auch nich nie ein Objektdiagramm in ein Klassendiagramm
gewandelt aber ich würde das ungefär so machen:

Es gibt eine Klasse Person wie ja durch die Objekte schon gezeigt.
Es stellt sich also nur noch die Frage was mit den Beziehungen 
zwischen den Objekten?. Es gibt 4 verschiedene Typen und alle 
sind Teil der Person :
ElternteilVon : Jede person kennt seine Kinder [0,*]
VerheiratetMit: Jeder kennt seinen Lebenspartnern [0,1]
Geschwister: Jeder kennt seine Geschwister[0,*]
Cousin(e)Von : jeder kennt seine Cousin(e) [0,*]

Denkbar wäre jedoch auch das die Kinder Ihre Eltern 
kennen und man über diese und die Geschwister 
Beziehung die Cousin(en)s rausfinden kann. 
Aber vom Objektdiagramm her würde ich es eher so interpretieren wie oben.

Der Objektname ( z.B. Anne, Peter,... ) würde ich auch als
Element der Person modellieren, Ist in dem Objektdiagramm 
irgendwie unglücklich dargestellt.

Gruß Benny


----------



## Habre (15. April 2007)

Hallo,

So ähnlich wie du es jetzt geschrieben hast, hatte ich es mir auch vorgestellt. Ich habe nun folgendes Klassendiagramm erstellt, ist es soweit richtig? Sind die Arrays korrekt dargestellt? http://www.LoH-WoW.de/pictureupload/1176634094.gif

Wie kann man nun formulieren das bestimmte Assoziationen nicht erlaubt sind? Es ist ja z.B. nicht möglich das Klara VerheiratetMit Otto und ElternTeil von Otto ist oder das beide Geschwister sind. Wie kann man das im Klassendiagram darstellen?

An dieser Stelle schon mal ein Danke für deine Hilfe beim erstellen des Diagramms


----------



## kle-ben (15. April 2007)

Hi,
also das Klassendiagramm ist einer der Strukturdiagramme von UML.
Um Verhalten zu moddelieren brauchst du eines der Verhaltensdiagramme.
Allerdings gibt es für das was du vorhast so weit ich das überblicke 
kein Diagrammtyp der dafür geeignet wäre.


----------



## Habre (15. April 2007)

Dann verstehe ich meine Aufgabenstellung nicht. Kann die hier ja mal posten:

Nicht alle laut Klassenmodell zulässigen Verbindungen zwischen Personenobjekten sind in der Realität erlaubt. Geben sie für 3 Assoziationen Ihres unter Teilaufgabe a) erstellten Klassendiagramms zunächst umgangssprachlich Bedingungen an, welche die in der Realität nicht erlaubten Objektverbindungen verhindern. Formulieren sie diese dann präzise unter Benutzung der Elemente ihres Klassendiagramms.

Ist denn das Klassendiagramm an sich richtig?


----------



## Thomas D (17. April 2007)

Ich würde nur die Relationen ElternteilVon und VerheiratetMit speichern, da der Rest wie bereits von kle-ben erwähnt zur Laufzeit herausgefunden werde kann und somit Daten gespart werden können .

Folgendes dürfte nicht erlaubt sein:

a) Anzahl der Elternbeziehungen eines Kindes darf die Zahl 2 nicht übersteigen

b) A.elternteilVon(B) && B.verheiratetMit (A)
Wobei es so etwas in der Praxis gibt. Um alle Möglichkeiten abzudecken, müsste auch dieser Ausnahmefall abgedeckt sein.

c) A.elternteilVon(B) && C.elternteilVon(B) wenn A.nichtVerheiratetMit (C)
Außer Scheidungsfälle sollen auch beachtet werden

d) Die Vielehe: A.verheiratetMit (B) && B.verheiratetMit (C)

Fall a) löst man, indem man die Elternverbindung zu einer n : (1,2)-Verbindung macht (n Kinder haben min. 1 und maximal 2 Eltern). Fall b) wird vom Objektdiagramm ohnehin abgefangen. Bei c) habe ich keine Ahnung  ...

Für Fall d) braucht es eine exklusive 1:1-Verbindung - d.h. nur ein Ehepartner möglich und dieser muss dergleiche sein (reflexive Verbindung).

BTW: Ich hoffe, ich habe die Aufgabenstellung überhaupt richtig verstanden  ...


----------



## kle-ben (17. April 2007)

Also du kannst klar umgangssprachlich irgendwelche Einschränkungen
formulieren, aber konkret im Klassendiagramm kannst du das nicht modellieren. 

Wenn ich nicht wüsste das du schon ein Objektdiagramm hast, dann würde ich 
glatt sagen das das die weiter Aufgabenstellung ist. 


> Formulieren sie diese dann präzise unter Benutzung der Elemente ihres Klassendiagramms.


Ich finde die Aufgabenstellung sehr seltsam. Vieleicht solltest du deinen
Auftraggeber mal fragen was er sich da genau vorstellt.


----------

