H4xmoneY Geschrieben 3. Juli 2009 Geschrieben 3. Juli 2009 Hallo, ich hoffe das mir jemand helfen Kann. Wie kann ich Verwandschaftsbeziehungen in einem Klassendiagram darstelln. Ich kann mir hierbei nur vorstellen, das es eine Klasse Personen gibt die wierum Rollen hat (Kind hat Vater). Wäre super wenn mir jemand helfen Kann. Gern auch über Skype. Bitte Melden :confused: Gruss Zitieren
kingofbrain Geschrieben 3. Juli 2009 Geschrieben 3. Juli 2009 Ich weiß nicht, was Du mit Rollen meinst, aber eine Beziehung wird im Klassendiagramm über eine Assoziation abgebildet. Diese Assoziation kann natürlich auch zu sich selbst geführt werden, um einen Eltern-Kind-Baum abzubilden. Peter Zitieren
H4xmoneY Geschrieben 3. Juli 2009 Autor Geschrieben 3. Juli 2009 Es gibt in der UML aus Rollen die die Assoziation auch Beschreiben. Aber das ist nicht das Problem. Das man diese zu sich selbst zurückführen kann ist mir auch bekannt. Jedoch wie sieht es aus, wenn ich einen kompletten Stammbaum habe mit vielen Personen Gernerationen. Zitieren
AndiE Geschrieben 3. Juli 2009 Geschrieben 3. Juli 2009 Hi, das mit den Rollen habe ich noch nicht so richtig verstanden. Ich würde aus einer Basisklasse "Einträge" zwei Klassen "Personen" und "Paare" machen. Person A und B erzeugen (aggregatieren) das Paar C. Von Paar C erben die Kinder D..H.H bildet mit I das Paar K, das wieder Kinder M...O hat.usw. Zitieren
H4xmoneY Geschrieben 4. Juli 2009 Autor Geschrieben 4. Juli 2009 Hallo, danke erst mal. Ich sehe in diesem Lösungansatz ein großes Redundanzenproblem, da es sich um Klassen handeln Soll. Die Lösung wäre eher etwas für ein Objektdiagramm. Sonst noch jemand ne idee??? Zitieren
kingofbrain Geschrieben 4. Juli 2009 Geschrieben 4. Juli 2009 Dann reden wir bei den Rollen wenigstens vom selben, das war mir anhand Deines Posts nicht klar. Wo liegt denn Dein Problem genau? Du weißt, dass du eine rekursive Assoziation haben kannst, und diese kann eine Eltern-Kind-Beziehung sein? Was willst Du denn mehr? Oder anders: zeig mal Deinen Ansatz und sag, was Dir an dem nicht gefällt? Ich würde es ganz einfach machen: Klasse Person mit einer bidirektionalen Beziehung zu sich selbst (Eltern kennen ihre Kinder, Kinder ihre Eltern). Fertig. Peter Zitieren
flashpixx Geschrieben 4. Juli 2009 Geschrieben 4. Juli 2009 Ich würde es ganz einfach machen: Klasse Person mit einer bidirektionalen Beziehung zu sich selbst (Eltern kennen ihre Kinder, Kinder ihre Eltern). Fertig. Was mir nicht klar ist, warum arbeitest innerhalb Deiner Datenstruktur Person, gleichzeitig mit der Datenstruktur "Baum". Ich würde das trennen, Du hast eine Klasse "Person" und eine Klasse "Graph". Du meiner Ansicht einen gerichteten, teilvernetzten Graphen, mit der Bedingung, dass jeder Vertex genau zwei Parents hat. Eine Wurzel gibt es nur symbolisch, da es sonst gegen die Vorgage verstößt. Gerichtet muss der Graph sein, damit Du später beim Auslesen keine Probleme bekommst und ggf in Schleifen rennst. Wenn Du noch zwingend die Verbindung vom Kindknoten zu den Vaterknoten benötigst, dann entspricht dann musst Du innerhalb einer verketteten Liste einfach die rückwirkende Verbindung mitführen. Das kann ich fast exakt so in UML Modellieren und vor allem ich kann es generisch lösen, so dass ich unabhängig von Deiner Personenklasse bin PHil Zitieren
AndiE Geschrieben 4. Juli 2009 Geschrieben 4. Juli 2009 Hallo, ich hätte noch einen anderen Vorschlag. Die Klasse Stammbaum enthält eine Liste der Objekte "Generationen". Das Objekt "Generation" enthält eine Liste von Objekten "Person" und von Objekten "Paare". Personen der n. Generation(Kinder) kennen ihre Eltern in der n-1. Generation. Kinder gleicher Eltern sind Geschwister. Zitieren
H4xmoneY Geschrieben 5. Juli 2009 Autor Geschrieben 5. Juli 2009 Wie kann ein Objekt Objekte enthalten? Zitieren
flashpixx Geschrieben 5. Juli 2009 Geschrieben 5. Juli 2009 Objekte ist das falsche Wort, denn Objekt ist die instanzierte Klasse. Sprich DU hast eine rekurrente Beziehung zu einer Klasse Phil Zitieren
kingofbrain Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 In meinen Augen ist eine direkte rekursive Beziehung innerhalb der Person exakt die fachliche Forderung. Wenn wir in die echte Welt schauen, gibt es ja dort auch keinen Graphen, an dem meine Verwandtschaftsbeziehungen hängen. Ich habe Eltern und Kinder. Und so bilde ich das erst mal ab. Technische Belange gehören sehr viel später in den Entwurfsprozess (aber das würde zu weit in das Thema OOAD) führen. Hier ist es wohl im Endeffekt Jacke wie Hose, ob Du die rekursive Beziehung in eine extra Klasse auslagerst oder in der Person behältst. Aufgrund von H4xmoneYs letzter Frage steht er / sie sowieso noch viel weiter vorn im Designprozess. Ein Objekt kann Objekte enthalten (und ich meine hier Objekte, nicht Klassen). So kann ein Motor Bauteile enthalten, ein Kugelschreiber eine Mine und vieles andere mehr. In der Objektorientierung handelt es sich dabei um eine Assoziation (@erfahrene Entwickler / Modellierer / ...: ja, ich weiß, um eine bestimmte Assoziation, aber überfahrt ihn erst mal nicht). Kugelschreiber -> Mine Ich würde Dir allerdings ein Einsteigertutorial für UML und Objektorientierung empfehlen, da es bei Dir nach massiven Lücken in den Grundlagen aussieht. Peter Zitieren
flashpixx Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 In meinen Augen ist eine direkte rekursive Beziehung innerhalb der Person exakt die fachliche Forderung. Wenn wir in die echte Welt schauen, gibt es ja dort auch keinen Graphen, an dem meine Verwandtschaftsbeziehungen hängen. Oh doch, denn Du bist definitiv nach Deinen Eltern geboren, somit ergibt sich ein gerichteter Graph Ich habe Eltern und Kinder. Und so bilde ich das erst mal ab. Technische Belange gehören sehr viel später in den Entwurfsprozess (aber das würde zu weit in das Thema OOAD) führen. Hier ist es wohl im Endeffekt Jacke wie Hose, ob Du die rekursive Beziehung in eine extra Klasse auslagerst oder in der Person behältst. Das kommt ganz darauf an, was ich damit erreichen will. Denn je nachdem kann ich das Design entsprechend wählen Ein Objekt kann Objekte enthalten (und ich meine hier Objekte, nicht Klassen). Ja, aber es geht um das Design und Objekte kann ich nicht designen, sondern nur Klassen. Denn wie willst Du z.B. in einer Fabrik 1000 Objekte vom Typ Auto auf Dein Konzeptpapier bekommen? Ich würde Dir allerdings ein Einsteigertutorial für UML und Objektorientierung empfehlen, da es bei Dir nach massiven Lücken in den Grundlagen aussieht. Auf wen bezieht sich diese Aussage? Phil Zitieren
MartinSt Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 Wie kann ich Verwandschaftsbeziehungen in einem Klassendiagram darstellen. Ich kann mir hierbei nur vorstellen, das es eine Klasse Personen gibt die wierum Rollen hat (Kind hat Vater). Bitte präzisiere mal, in welchem fachlichen Kontext du von Verwandschaft bzw. Kind/Vater sprichst. Je nachdem, ob du einen Familienstammbaum, das Erbrecht oder das ESt-Gesetz (wenn ja, bitte PM :uli) modellieren willst, ergeben sich andere Anforderungen an dein Modell. Gruß Martin Zitieren
kingofbrain Geschrieben 12. Juli 2009 Geschrieben 12. Juli 2009 Oh doch, denn Du bist definitiv nach Deinen Eltern geboren, somit ergibt sich ein gerichteter Graph Hier hast Du mich falsch verstanden. Es gibt keinen als eigenes Konstrukt definierten Graph, an dem meine Verwandten und ich dranhängen. Wir verwalten unsere Beziehungen jeweils in uns selbst. Ja, aber es geht um das Design und Objekte kann ich nicht designen, sondern nur Klassen. Denn wie willst Du z.B. in einer Fabrik 1000 Objekte vom Typ Auto auf Dein Konzeptpapier bekommen? Doch, auch Objekte werden entworfen. Sie haben einen anderen Zweck als Klassen, aber auch im Entwurf verwende ich Objekte wenn ich - eine Momentaufnahme im System abbilden will (-> Sequenzdiagramm nur als prominentestes Beispiel, oder verwendest Du das nicht im Entwurf? ) - mit einem Kunden spreche, dem der abstrakte Begriff der Klasse für den Einstieg zu hoch ist (das ist im Entwurf selten, kommt aber vor). Auf wen bezieht sich diese Aussage? Nicht auf Dich, keine Angst. Ich erkenne durchaus Deine Fähigkeiten in der UML an. Um die Diskussion nicht abgleiten zu lassen und diesen Nebenschauplatz mal zu verlassen: es ist für diesen Fall völlig uninteressant, ob das Problem auf Deine oder meine Art gelöst wird. Meine halte ich für einen in der UML nicht geübten Modellierer für natürlicher und leichter nachvollziehbar. Peter Zitieren
flashpixx Geschrieben 12. Juli 2009 Geschrieben 12. Juli 2009 Hier hast Du mich falsch verstanden. Es gibt keinen als eigenes Konstrukt definierten Graph, an dem meine Verwandten und ich dranhängen. Wir verwalten unsere Beziehungen jeweils in uns selbst. Okay, ich habe gedanklich eine Trennung von der Person und deren "Vernetzung". - eine Momentaufnahme im System abbilden will (-> Sequenzdiagramm nur als prominentestes Beispiel, oder verwendest Du das nicht im Entwurf? ) Natürlich, aber es ging ja hier um ein Darstellung in UML, also würde ich dort nicht von Objekten sprechen, sondern von Klassen - mit einem Kunden spreche, dem der abstrakte Begriff der Klasse für den Einstieg zu hoch ist (das ist im Entwurf selten, kommt aber vor). *g* da kann ich nur beipflichten Um die Diskussion nicht abgleiten zu lassen und diesen Nebenschauplatz mal zu verlassen: es ist für diesen Fall völlig uninteressant, ob das Problem auf Deine oder meine Art gelöst wird. Meine halte ich für einen in der UML nicht geübten Modellierer für natürlicher und leichter nachvollziehbar. Hier gebe ich Dir völlig recht. Ich denke, man müsst das gesamte Problem kennen, um einen sinnvollen Modellierungsaspekt hin zu bekommen. Da das Problem eben noch nicht genau formuliert ist, war eben mein Ansatz eher theoretischer Natur. Es sollen in irgendeiner Form Beziehungen zwischen Personen designed werden, was ja letztendlich ein entsprechend gearteter Graph ist. Um dort möglich flexibel zu bleiben, würde ich die Netzstruktur generisch eigenständig modellieren und dann eben den Content (Personen) einfach hineingeben Ist aber letztendlich die Frage nach dem Aufwand-Nutzen-Verhältnis Phil Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.