UML Assoziation



  • Hallo,

    gibt es auch Assoziationen zwischen 2 Klassen ohne diese Rauten ( ausgefüllt oder nicht ) ??



  • ...



  • was bedeutet das dann ? Die Raute bedeutet immer dass eine von beiden Klassen als Attribut in der anderen vorkommt.



  • ...



  • http://de.wikipedia.org/wiki/Assoziation_(UML)

    gleich bei der ersten Assoziation Konto - Kunde könnte man doch eine Raute bei Kunde machen ? Ich würde sogar sagen das ist eine Komposition denn ein Konto ohne Kunde macht ja keinen Sinn. Ein Konto kann ohne Kunde nicht existieren .



  • blurry333 schrieb:

    http://de.wikipedia.org/wiki/Assoziation_(UML)

    gleich bei der ersten Assoziation Konto - Kunde könnte man doch eine Raute bei Kunde machen ? Ich würde sogar sagen das ist eine Komposition denn ein Konto ohne Kunde macht ja keinen Sinn. Ein Konto kann ohne Kunde nicht existieren .

    Ja, natürlich könntest du das so machen.
    Das ist ja das tolle an der UML: Sie bietet die notwendige Flexibilität, dass jeder ein System so modellieren kann, wie es für seinen Zweck am besten passt.
    In deinem System kann ein Konto nicht ohne Kunde leben, in dem des Beispielerstellers sollte das wohl doch möglich sein.

    Ich beschäftige mich schon eine Weile mit der UML und ich habe recht schnell festgestellt, dass es kein eindeutiges Mapping von UML in Sourcecode (und umgekehrt) gibt.



  • Sagen wir ich hab eine Klasse Verein und eine Klasse Mitglieder.

    Jetzt speicher ich in der Klasse Verein alle Mitglieder und in der Klasse MItglied speicher ich alle Vereine ab, in dem das Mitglied angemeldet ist.

    Wo liegt das Problem ? Hab nämlich gelesen dass man besser eine m:n Beziehung in einer weiteren Klasse auflöst ?



  • So wie du Fragen stellst, habe ich das Gefühl, dass du zur UML maximal den Wikipedia-Eintrag gelesen hast, und mehr nicht.
    Außerdem scheint es, dass dir auch der Unterschied zwischen Klassen und Objekten nicht ganz klar ist.

    Zum Reinlesen ins Thema UML (im Zusammenhang mit OOP) empfehle ich dir folgende drei Bücher:
    Lehrbuch Der Objektmodellierung von Heide Balzert.
    UML 2: Das umfassende Handbuch von Christoph Kecher.
    Entwurfsmuster von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides.

    Damit solltest du ein solides Basiswissen bekommen und viele Fragen werden sich klären.



  • Hab mich jetzt grad in das Buch von Heide Balzert eingelesen. Dort wird eine n-äre Assoziation beschrieben. Es soll festgehalten werden welches Ergebnis ein Fussballspieler im Jahr xxxx für den Verein "FC" erzielt hat.

    Es sind 4 Klassen die alle mit einer einzigen Raute verbunden sind.

    Ich habs jetzt mal versucht zu modellieren, aber bin mir nicht sicher ob es so stimmt.

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Jahr
    {
    public:int jahr;
    
    };
    
    class Verein
    {
    
    public:string name;
    
    };
    
    class Ergebnis
    {
    public:string ergebnis;
    
    };
    
    class Fussballspieler
    {
    public:string name;
    
    };
    
    class association
    {
    
    public:
    
    	Jahr jahr;
    	Verein verein;
    	Ergebnis ergebnis;
    	Fussballspieler spieler;
    
    };
    
    int main()
    {
    	association tmp;
    
    	int x;
    
    	cout<<"Geben Sie die Daten des Fussballspiels ein: ";
    
    	cin>>tmp.ergebnis.ergebnis>>tmp.jahr.jahr>>tmp.verein.name>>tmp.spieler.name;
    
    	cout<<"Das Ergebnis war "<<tmp.ergebnis.ergebnis<<" im Jahr "<<tmp.jahr.jahr<<" beim Verein "<< tmp.verein.name<< " das Tor schoss der Spieler "<< tmp.spieler.name<<".";
    
    }
    


  • Das besagte Beispiel stellt eine ternäre Assoziation der drei Klassen Jahr, Verein und Fussballspieler dar.
    Da von vielen Programmiersprachen - so auch C++ - das Konzept von n-ären Assoziationen nicht direkt unterstützt wird, wurde die Assoziationsklasse Ergebnis eingeführt. Diese ermöglicht die Umwandlung der n-ären Assoziation in drei binäre Assoziationen zwischen Ergebnis und den drei erstgenannten Klassen.



  • Bezüglich der Umwandlung in binäre Assoziationen kannst du dir den Wikipedia-Artikel zu Assoziationsklassen ansehen.
    Dort ist das recht anschaulich dargestellt ...


Log in to reply