java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Sonstiges > Softwareentwicklung

Softwareentwicklung Allgemeine Softwareentwicklung - Andere Programmiersprachen, Regex, OOP, Design Patterns

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 20.06.2012, 20:33   #1 (permalink)
Benutzer
double
 
Registriert seit: 23.04.2012
Fachbeiträge: 64
Abgegebene Danke: 8
Erhielt 3 Danke für 3 Beiträge
Standard [UML] Klassen als Attribute = Assoziationen?

Hallo,

ich habe ein Skript vor mir und hab eine Frage dazu:

Einmal heißt es:

Zitat:
Attribute sind nie Zeiger/Referenzen auf andere
Objekte (dafür gibt es Assoziationen).
einandermal:

wird behauptet, A und B im folgenden Bild wären gleichwertig. Dass sie gleichwertig sind will ich nicht bestreiten, aber ist dann nicht Ersteres ein bisschen widersprüchlich?



Gruß
pzypher ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 09:56   #2 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 06.11.2012
Fachbeiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Assoziationen bilden in der objektorientierten Softwareentwicklung einen wichtigen Bestandteil.
Mehrere Objekte tauschen Nachrichten aus, damit müssen sich diese Objekte "kennen". Dieses "Kennen" nennt man Assoziation.

Dein Schaubild zeigt meiner Ansicht nach dasselbe Verhalten: Im ersten Schaubild ist die Assoziation über einen Pfeil kenntlich gemacht.
Im zweiten Schaubild wird die Assoziation über ein Attribut ausgedrückt. (-vorlesung). Attribute sind in Java auch keine Zeiger, sondern können Referenzen sein.
spindler ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 09:59   #3 (permalink)
TryToHelp
Nicht angemeldet
 
Fachbeiträge: n/a
Ja beide Schaubilder bedeuten das selbe, jedoch würde ich eher Representation A wählen, da es dort finde ich klarer und übersichtlicher ist.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 12:01   #4 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Registriert seit: 26.07.2011
Fachbeiträge: 2.886
Abgegebene Danke: 76
Erhielt 600 Danke für 590 Beiträge
Die Schaubilder drücken zwar dieselbe Assoziation aus. Allerdings enthält Schaubild B ein für das Abstraktionsniveau des UML-Klassendiagramss unzulässiges Implementierungsdetail. Nämlich, dass die Assoziation über ein Attribut von Student abgebildet wird. Zwar hat man das als Java-Entwickler sofort im Kopf (inkl. der getter/setter für die Zugriffe), aber in UML-Klassendiagrammen hat das nix zu suchen. Deswegen würde ich in einer Klausur für Abbildung B Punktabzug geben.
__________________
http://www.winfonet.eu
nillehammer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 12:49   #5 (permalink)
TryToHelp
Nicht angemeldet
 
Fachbeiträge: n/a
Das Stimmt, schließlich könnte ich auch bei Vorlesung eine Liste mit Studenten haben, die ebenso die Assoziation auflöst
Wie gesagt, ich würde auch auf jedenfall zu A tendieren. Aber wie gesagt, bei beiden wird gezeigt, das Student in verbindung mit Vorlesung steht.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 12:54   #6 (permalink)
Projektleiter Plugin-System
Team Plugin-System
 
Benutzerbild von Tomate_Salat
 
Registriert seit: 29.01.2009
Fachbeiträge: 3.384
Blog-Einträge: 9
Abgegebene Danke: 129
Erhielt 469 Danke für 425 Beiträge
Ich würde a) nehmen. Das ist imho auch Aussagekräftiger.

Beispiel b) könnte zu Verwechslungen führen. Ab und an findet man Java-Klassen die so benannt sind, wie bereits bestehende. Hier könnte es theoretisch sein, dass eben eine Vorlesungsklasse aus einem andere Package (und eben nicht die, die rechts daneben gezeichnet ist) verwendet werden soll.
__________________
It is more than a Signature:
!!! Naming Conventions !!!
Schilder-Duke

JMapper jetzt auf Google Code
Instant Note meine erste Android App
Tomate_Salat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 13:19   #7 (permalink)
Stammbenutzer
Floppy Disc
 
Benutzerbild von schalentier
 
Registriert seit: 09.09.2003
Fachbeiträge: 821
Abgegebene Danke: 39
Erhielt 98 Danke für 76 Beiträge
Muss dann name:String nicht ebenfalls als Assoziation gezeichnet werden?
schalentier ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 13:23   #8 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Registriert seit: 26.07.2011
Fachbeiträge: 2.886
Abgegebene Danke: 76
Erhielt 600 Danke für 590 Beiträge
Nein, auch wenn String eine Klasse ist, würde ich es als so "primitiven" Datentypen ansehen, dass er ein Attribut ist und keine Assoziation. Zumal ja auch String nicht Bestandteil der Fachdomäne "Studentenverwaltung" ist.
__________________
http://www.winfonet.eu
nillehammer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 13:26   #9 (permalink)
TryToHelp
Nicht angemeldet
 
Fachbeiträge: n/a
In dem UML Diagramm bzw in Klassendiagrammen, stellt man ja die fachlichkeit, also die Fachlichen Klassen dar, mit ihren Atributen und ihren Beziehungen, aber ein Student steht in keiner Beziehung zu einem String (wenn dann sind das die Studentinnen und das tut hier nichts zur Sache )
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 13:31   #10 (permalink)
Projektleiter Plugin-System
Team Plugin-System
 
Benutzerbild von Tomate_Salat
 
Registriert seit: 29.01.2009
Fachbeiträge: 3.384
Blog-Einträge: 9
Abgegebene Danke: 129
Erhielt 469 Danke für 425 Beiträge
Ich bin kein UML-Experte (und nutze es eigentl. auch nie - auch wenn ichs praktisch finde). Aber wenn ich das als Planung nehme, würde ich bestehende Klassen (mit vollqualifiziertem Namen) als Attribute nehmen und eigene (neue) Klassen als Assoziation/Komposition/Aggregation darstellen.
__________________
It is more than a Signature:
!!! Naming Conventions !!!
Schilder-Duke

JMapper jetzt auf Google Code
Instant Note meine erste Android App
Tomate_Salat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.11.2012, 13:46   #11 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.755
Abgegebene Danke: 215
Erhielt 811 Danke für 722 Beiträge
Zitat: schalentier
Beitrag anzeigen
Muss dann name:String nicht ebenfalls als Assoziation gezeichnet werden?
Kommt immer darauf an, was man mit dem Diagramm ausdrücken möchte, wenn es nur um die Problem Domäne geht, dann wohl nicht.

Das gilt übrigens für alle UML Diagramme IMHO, es kommt immer darauf an was man zeigen will, das was nicht so relevant ist um einen Sachverhalt zu verdeutlichen, lässt man weg.

IME ist weniger mehr, die klassische DIN A0 Tapete wo alles drauf ist taugt doch nur dazu, um Kunden zu verwirren, genauso sinnvoll wie den ganzen Quelltext auszudrucken.
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 13.11.2012, 15:02   #12 (permalink)
Stammbenutzer
Viertel Megabyte
 
Registriert seit: 19.08.2008
Fachbeiträge: 274
Abgegebene Danke: 5
Erhielt 30 Danke für 30 Beiträge
Ich würde auch zu A tendieren. "Student kennt Vorlesung". Frage in den Raum:

Dürfte man das auch so darstellen, wenn es später in der Implementierung kein Attribut vom Typ Vorlesung in der Klasse Student gibt? Also wenn z.B. die Klasse Student nur ein Vorlesungsobjekt in einer Methode benutzt?

Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
class Student
{
    public void setVorlesungBesucht()
    {
        Vorlesung vorlesung = getVorlesungVonIrgendwo();
        vorlesung.setBesucht(true);
    }
}

Oder würde man so eine Verbindung aus einem UML Diagramm gänzlich rauslassen?
__________________
A camel is a horse designed by committee
X5-599 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 14.11.2012, 08:56   #13 (permalink)
TryToHelp
Nicht angemeldet
 
Fachbeiträge: n/a
Also ich bin der Meinung, das der Student, nicht unbedingt ein Vorlesungsobjekt braucht um die beziehung zu haben, sondern die Vorlesung kann auch eine Liste an Studenten haben, oder täusche ich mich da jetzt?
Das würde dann ja deine Variante machen
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 14.11.2012, 13:08   #14 (permalink)
Stammbenutzer
Viertel Megabyte
 
Registriert seit: 19.08.2008
Fachbeiträge: 274
Abgegebene Danke: 5
Erhielt 30 Danke für 30 Beiträge
Ich wollte damit eigentlich mehr fragen, ob überhaupt ein Attribut in einer Klasse existieren muss um (in UML) von einer Beziehung sprechen zu können. In meinem Beispiel hätte keine der beiden Klassen ein Attribut der jeweils anderen. Sie hätten nur in Methoden miteinander zu tun, wenn die Instanzen (die von sonstwoher stammen) bearbeitet werden.
__________________
A camel is a horse designed by committee
X5-599 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 14.11.2012, 13:20   #15 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.755
Abgegebene Danke: 215
Erhielt 811 Danke für 722 Beiträge
Zitat: X5-599
Beitrag anzeigen
Ich wollte damit eigentlich mehr fragen, ob überhaupt ein Attribut in einer Klasse existieren muss um (in UML) von einer Beziehung sprechen zu können. In meinem Beispiel hätte keine der beiden Klassen ein Attribut der jeweils anderen. Sie hätten nur in Methoden miteinander zu tun, wenn die Instanzen (die von sonstwoher stammen) bearbeitet werden.
Nein, für eine Assoziation muss man keine Membervariablen mit Typ der anderen Klasse haben.

Aber wie gesagt, es gibt nicht "den Standard" was UML Diagramme alles zeigen müssen, nur die Elemente der UML selber sind definiert.
Was man im Diagramm zeigt, kommt immer darauf an was man mit dem Diagramm zeigen will

Es ist zB. eher selten so, dass man Assoziationen zu den JDK Klassen darstellt (String, HashMap, etc. pp.), weil man meist etwas aus der Fachdomäne zeigen will.

Die Frage wie die Assoziation zwischen Student und Vorlesung modelliert wird ist eine Designfrage, da gibt es mehrere Alternativen, unidirektionale 1:n (zB. Student -> Vorlesungen), n:1 (Student <- Vorlesungen), bidirektionale n:n (Student <-> Vorlesungen) usw. usf.
Das Design sollte sich stark am Verwendungszweck orientieren.
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klassen erstellen, hilfe Kubis Java Basics - Anfänger-Themen 1 10.11.2009 12:06
Mit JAXB erzeugte Klassen persistieren (Hibernate) pocketom Allgemeines EE 10 08.09.2009 12:44
Statische Klassen oder neue Instanz einer Klasse nutzen? WeirdAl Softwareentwicklung 11 21.06.2007 08:56
Generische Klassen, das erste Mal. CaptainItalo Java Basics - Anfänger-Themen 8 13.06.2007 20:33
Frage zur Wiederverwendung von Klassen token Java Basics - Anfänger-Themen 3 09.03.2004 12:32


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de