![]() |
|
|
|||||||
| Softwareentwicklung Allgemeine Softwareentwicklung - Andere Programmiersprachen, Regex, OOP, Design Patterns |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | ||||||||||||||||
|
Benutzer
double
Registriert seit: 23.04.2012
Fachbeiträge: 64
Abgegebene Danke: 8
Erhielt 3 Danke für 3 Beiträge
|
Hallo,
ich habe ein Skript vor mir und hab eine Frage dazu: Einmal heißt es:
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ß |
|||||||||||||||
|
|
|
|||||||||||||||
| #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. |
|
|
|
| #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 |
|
|
|
| #5 (permalink) | |
|
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. |
|
| #6 (permalink) | |||
|
Projektleiter Plugin-System
Team Plugin-System
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:
JMapper jetzt auf Google Code Instant Note meine erste Android App |
||
|
|
|
| #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 |
|
|
|
| #9 (permalink) | |
|
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
)
|
|
| #10 (permalink) | |||
|
Projektleiter Plugin-System
Team Plugin-System
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:
JMapper jetzt auf Google Code Instant Note meine erste Android App |
||
|
|
|
| #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
|
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. |
|
|
|
| #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?
Oder würde man so eine Verbindung aus einem UML Diagramm gänzlich rauslassen?
__________________
A camel is a horse designed by committee |
||
|
|
|
| #13 (permalink) | |
|
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 |
|
| #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 |
|
|
|
| #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
|
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. |
||||||||||||||||||
|
|
|
||||||||||||||||||
|
| Themen-Optionen | Thema durchsuchen |
| 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 |
|
|