UML C++ Aggregation

Gast #2071083
Lesenswert?

Hallo,

ich habe eine Frage zu UML und c++.

Ich habe mir eine verkettete Liste gebaut. Das UML-Diagramm ist im 
Anhang angefügt. Leider weis ich nicht ob ich das mit der Aggregation 
richtig verstanden habe.

Die Klasse PcapFrameNode beschreibt ein Listenelement. In der Klasse ist 
ein Zeiger auf sich selbst vorhanden usw.
In der Klasse PcapFrameList beschreibt die Funktionen, die eine 
verkettete Liste hat (Löschen der Liste und Ausgabe..).

Die Klasse PcapFrameList besitzt vier Zeiger, die auf Objekte der Klasse 
PcapFrameNode zeigen können. In welcher Beziehung stehen die beiden 
Klassen zu einander. Ist es eine Komposition oder Aggregation.

Meiner Meinung nach ist es eine Aggregation da die Lebensdauer der 
PcapNode-Objekte, auf die die vier Zeiger zeigen, nicht von der 
Lebensdauer der Klasse PcapFrameList, abhängt. Ist das richtig?

Die Zahlen an dem Pfeil bedeuten Die Klasse PcapFrameList besitzt genau 
vier Zeiger auf PcapFrameNode Objekte und ein PcapFrameNode-Objekt kann 
entweder keinem oder einem PcapFrameList Objekt angehören. Ist das 
korrekt?
Angehängte Dateien:
Gast #3132670
Lesenswert?

ich würde auch sagen dass es eine Assoziation sein sollte, Aggregation 
und Komposition beschreiben beide eine (soweit ich das sehe) 
"besteht-aus-Beziehung". Der Unterschied bei der Komposition 
(existenziellen Abhängigkeit) meint nicht in erster Linie die Existenz 
der Teile hinsichtlich der Laufzeit sondern eine semantische 
existentielle Abhängigkeit zum Beispiel Auto und Motor sind eine 
Komposition weil ohne Motor geht nix, Auto und Ersatzrad wären eine 
Aggreagation da dieses enthalten ist aber es kann auch mal fehlen 
trotzdem funzt das Auto, wenn die Instanzen in der Lebenszeit nicht 
voneinander abhängig sind wie Fahrer und Auto dann ist es eindeutig eine 
Assoziation, vorbehaltlich ich hab es selbst richtig verstanden ;-) ... 
mach es ja auch noch nicht sooooo lange :-/

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren