Fragen zu einem Klassendiagramm

Zrebna

Bekanntes Mitglied
Hi!

Ich habe grundsätzliche Fragen zu einem Klassendiagramm und habe dazu eine Abbildung hochgeladen.

1. Ist es korrekt, dass man reine get-und set-Methoden (gerrers & setters) sowie Konstruktoren nicht in ein Klassendiagramm einfügt?
2. Oben (Minus-Symbol) kommen nur Member-Variablen (also vor dem Konstruktor deklariert) rein, oder?
3. Wie sieht es mit Methoden aus? Kommen nur public Methoden in das Klassendiagramm, oder auch private Methoden?
4. Wenn eine Klasse eine Member-Variable (egal ob Instanz-oder Klassenvariable) hat, dann sollte diese Member-Varialbe, sofern ein komplexer Datentyp bzw. ebenfalls eine Klasse, auf jeden Fall in das Klassendiagramm, denn diese Klasse (member-Variable) wird ja dann von der "Haupt-Klasse" verwendet (<<use>>) - richtig?
-> Siehe in der Abbildung 'UserRepositiroy'
5. Wenn eine Methode (wohl nur public) etwas zurückliefert und erzeugt (<<create>>, dann kann dieser Return-Typ, sofern eine Klasse, auch in das Klassendiagramm rein?
-> Siehe 'User' im Bild.

6. Nun eine wichtige Frage, bei der ich mir komplett unsicher bin.
Angenommen (unabhängig vom Bild), man hätte in einer Controller-Klasse irgendwo eine public Methode, die Entitäten persistiert.
Dafür gibt es eine eigene Klasse 'PersistenceAPI', die Persistierungslogik enthält.
Diese 'PersistenceAPI'-Klasse bzw. eine Methode (die dann in dieser Klasse zu mehreren private Methoden führt) wird nun in der public Methode dieser zugrundeliegenden Controller-Klasse verwendet. einfach mittels 'new PersistenceAPI().persistEntity(entity)' aufgerufen, d.h. die PersistenceAPI() ist keine Member-Variable. Findet sie trotzdem Einzug ins Klassendiagramm?

Lg,
Zrebna
 

Anhänge

  • classDiagram.PNG
    classDiagram.PNG
    108,3 KB · Aufrufe: 0

Marinek

Bekanntes Mitglied
1. Ist es korrekt, dass man reine get-und set-Methoden (gerrers & setters) sowie Konstruktoren nicht in ein Klassendiagramm einfügt?
Korrekt.

2. Oben (Minus-Symbol) kommen nur Member-Variablen (also vor dem Konstruktor deklariert) rein, oder?
Diese Aussage ist komisch ;) Üblicherweise werden Attribute (Member-Variablen) vor dem Block mit den Konstruktoren definiert. Das Minus bedeutet, dass diese private sind. + Wäre Public oder # protected.

3. Wie sieht es mit Methoden aus? Kommen nur public Methoden in das Klassendiagramm, oder auch private Methoden?
Ich würde sagen private Methoden sind irrelevant. Es sei denn die sind super wichtig für das Verständniss

4. Wenn eine Klasse eine Member-Variable (egal ob Instanz-oder Klassenvariable) hat, dann sollte diese Member-Varialbe, sofern ein komplexer Datentyp bzw. ebenfalls eine Klasse, auf jeden Fall in das Klassendiagramm, denn diese Klasse (member-Variable) wird ja dann von der "Haupt-Klasse" verwendet (<<use>>) - richtig?
Nein. Nur, wenn es wichtig ist. Du machst ja auch nicht use auf Object oder Integer oder String etc.
Das würde dein UML überfrachten und unübersichtlich machen.

5. Wenn eine Methode (wohl nur public) etwas zurückliefert und erzeugt (<<create>>, dann kann dieser Return-Typ, sofern eine Klasse, auch in das Klassendiagramm rein?
Auch hier: Wenn sie ein String zurück gibt, ist das irrelevant würde ich sagen.

Wenn es wichtig für das Gesamtkonstukt ist, dann würde ich es aufnehmen.

Angenommen (unabhängig vom Bild), man hätte in einer Controller-Klasse irgendwo eine public Methode, die Entitäten persistiert.
Dafür gibt es eine eigene Klasse 'PersistenceAPI', die Persistierungslogik enthält.
Diese 'PersistenceAPI'-Klasse bzw. eine Methode (die dann in dieser Klasse zu mehreren private Methoden führt) wird nun in der public Methode dieser zugrundeliegenden Controller-Klasse verwendet. einfach mittels 'new PersistenceAPI().persistEntity(entity)' aufgerufen, d.h. die PersistenceAPI() ist keine Member-Variable. Findet sie trotzdem Einzug ins Klassendiagramm?
Das kannst du im Diagramm gar nicht abbilden, welche Variablen innerhalb der Methode erstellt werden.
 

AndiE

Top Contributor
Ich würde die Darstellung ändern. Wenn eine Klasse mehrere andere Objekte enthält, dann würde ich an die Klasse, die sie verwaltet den gefüllten Rhombus zeichnen und auf der amderen Seite einen Pfeil. Dann würde ich die Klasse mit durchgehenden Strichen verbinden. Pfeile am Ende weisen dann darauf in, ob sie für die andere Klasse sichtbar ist. Auch beim Interface wäre es wichtig zu sehen, wer es bereitstellt( gestrichelte) und es nutzt( durchgehende Linie). Das Diagramm würde ich für mich leichter lesen lassen, wenn man Controller- Repository und Entity on links nach rechts nebeneinander stehen hat. Dann läßt sich das Klassendiagramm leichter verstehen.

Ich meine, dass das Klassendiagramm der "statische Bauplan" für deine Anwendung ist. Was passiert, erklärt ja das Aktivätätendiagramm.
 

Zrebna

Bekanntes Mitglied
Das kannst du im Diagramm gar nicht abbilden, welche Variablen innerhalb der Methode erstellt werden.
Danke, agree mit allem.

Nur bei Punkt 6 verstehe ich nicht, warum das nicht möglich sein soll?
Also in meinem konstruiertem Beispiel:

|ControllerClass| ------------------------<<access>>---------------------------|PersistenceAPI|

Bei PersistenceAPI würde ich dann bei den Methoden nur die Methode im Klassendiagramm sichtbar machen, die in der ControllerClass aufgerufen wird, also:
+ persistEntity(entity: <T>)
 

Marinek

Bekanntes Mitglied
Das würde im Prinzip nur aussagen: Irgendwann benutzt man die PersistenceAPI, aber nicht welche Methode intern diese benutzt. Im Zweifel einfach alle.

Es bringt keinen Mehrwert.
 

Zrebna

Bekanntes Mitglied
Das würde im Prinzip nur aussagen: Irgendwann benutzt man die PersistenceAPI, aber nicht welche Methode intern diese benutzt. Im Zweifel einfach alle.

Es bringt keinen Mehrwert.
Ich dachte halt, an folgendes Beispiel:

Man will ein Klassendiagramm für einen Integrationstest erstellen. Dieser Integrationstest besteht aus Testklasse und z.B. 10 Hilfsklassen, wobei in einer von Ihnen auf eine Persistenz-Klasse irgendwo in der Anwendung zugegriffen wird bzw. die Persistenz-Schicht so angesprochen wird.
Hier hätte ich gedacht, dass es schon interessant ist zu sehen, welche Komponenten der Anwendung der Integrationstest braucht, und somit mit welchen Komponenten das Zusammenspiel getestet wird.
 

LimDul

Top Contributor
Ich dachte halt, an folgendes Beispiel:

Man will ein Klassendiagramm für einen Integrationstest erstellen. Dieser Integrationstest besteht aus Testklasse und z.B. 10 Hilfsklassen, wobei in einer von Ihnen auf eine Persistenz-Klasse irgendwo in der Anwendung zugegriffen wird bzw. die Persistenz-Schicht so angesprochen wird.
Hier hätte ich gedacht, dass es schon interessant ist zu sehen, welche Komponenten der Anwendung der Integrationstest braucht, und somit mit welchen Komponenten das Zusammenspiel getestet wird.
Macht man in der Praxis nicht. In der Regel malt man in der Praxis nur relativ rudimentäre UML Diagramme, die auch selten weitergepflegt werden. UML wird schnell unübersichtlich. Eine normale Business-Anwendung besteht schnell aus 100ten Klassen.

Und für einen Integrationstest interessieren mich Klassen nicht - da teste ich Funktionalitäten.
 

Zrebna

Bekanntes Mitglied
Macht man in der Praxis nicht. In der Regel malt man in der Praxis nur relativ rudimentäre UML Diagramme, die auch selten weitergepflegt werden. UML wird schnell unübersichtlich. Eine normale Business-Anwendung besteht schnell aus 100ten Klassen.

Und für einen Integrationstest interessieren mich Klassen nicht - da teste ich Funktionalitäten.
Frage hat sich erledigt. Danke^^
 
Zuletzt bearbeitet:

thecain

Top Contributor
einfach mittels 'new PersistenceAPI().persistEntity(entity)' aufgerufen, d.h. die PersistenceAPI() ist keine Member-Variable.
Nur als Input. Der Testbarkeit halber würde ich so etwas versuchen zu vermeiden. Im Gegensatz zu einer Injection via DI oder Übergabe im Konstruktor und dann setzen als Membervariable, ist es so nur sehr schwer zu mocken und entsprechend schwer zu testen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Fragen zu einem Organizer Programm Java Basics - Anfänger-Themen 11
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
G Fragen zu einem geplanten J2EE-Projekt mit Eclipse Java Basics - Anfänger-Themen 24
B Fragen aus einem worddokument in Java einbinden Java Basics - Anfänger-Themen 9
D Fragen zu einem Codeausschnitt Java Basics - Anfänger-Themen 22
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21
P Methoden Aquarium (Fragen zum Scanner) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben