# UML-Diagramm in Java Quellcode schreiben?



## TomatenBrot447 (8. Aug 2016)

Hallo,
ich habe folgende Aufgabe, siehe Anhang.
Ich beschäftige mich grade mit Java ( Anfänger-Niveau) und versuche UML und Java zu kombinieren.
Wie würdet ihr solch eine Aufgabe lösen?

Mfg 
Tomatenbrot


----------



## Jardcore (8. Aug 2016)

Du brauchst 5 Klassen und 2 Interfaces.
Klassen sind: Labor, WalisischesBergschaf, Stall, Schaf und Merinolangwollschaf.
Interfaces sind: Klonbar und Vermehrbar.
usw.

Kann es sein, das dein UML nicht ganz richtig ist... bzw eher ziemlich falsch?
Hab noch nie ein klonbares Labor gesehen und ein Stall kann 3 Schafe aufnehmen aber im Konstruktor können vier übergeben werden. Außerdem ist ein Stall auch nicht Vermehrbar... und und und 

Würde sagen Schaf ist Vermehrbar und das WBergschaf ist Klonbar. Und dein Labor sollte weder Klonbar noch sollte dein Stall Vermehrbar sein Dein Stall braucht auch kein public Array von Schafen, das wird in UML schon durch die *..n Beziehung modelliert.


----------



## mrBrown (8. Aug 2016)

Jardcore hat gesagt.:


> Hab noch nie ein klonbares Labor gesehen





Jardcore hat gesagt.:


> Außerdem ist ein Stall auch nicht Vermehrbar


Der offene Pfeil war doch im Gegensatz zum geschlossenen eine Generalisierung, sondern eher ein "nutzt"?

Aber ja, das sieht an einigen Stellen etwas unpassend aus...


----------



## TomatenBrot447 (8. Aug 2016)

Das ist nicht *MEIN* UML, sondern eine alte Klausuraufgabe. Und ich denke dass morgen in der Klausur sowas drankommt, und ich würde das gerne mal komplett heute lösen, damit ich morgen wenigstens einpaar Punkte bekomme .
Hoffe ihr könnt mir helfen.


----------



## mrBrown (8. Aug 2016)

TomatenBrot447 hat gesagt.:


> Hoffe ihr könnt mir helfen.


Den Großteil der Lösung hat @Jardcore doch schon gepostet, welche Klasse welchen Interface implementiert bzw welche Klasse extended wird doch aus dem Diagramm schnell klar, und Methoden kannst du auch daraus ablesen 
Woran hakt's denn noch?


----------



## TomatenBrot447 (8. Aug 2016)

Ich zitiere mal den Jardcore:
"_Kann es sein, das dein UML nicht ganz richtig ist... bzw eher ziemlich falsch?
Hab noch nie ein klonbares Labor gesehen und ein Stall kann 3 Schafe aufnehmen aber im Konstruktor können vier übergeben werden. Außerdem ist ein Stall auch nicht Vermehrbar... und und und_ "

Meine Antwort: Das hat mich schon sehr verwirrt. Und ich konnte seine antwort nicht ganz verstehen...


----------



## mrBrown (8. Aug 2016)

Übersieh den Teil der Antwort mal  
Den Rest der Antwort hast du verstanden oder hast du damit auch Probleme?


----------



## TomatenBrot447 (8. Aug 2016)

Diese ganzen Pfeile ...och gott :-(
wo steht denn jetzt "implements" und "extends" und so weiter. Wer implimentiert jetzt wen und wer erbt jetzt von wen?


----------



## TomatenBrot447 (8. Aug 2016)

Ja stimmt , dann hat er noch außerdem gesagt:
"
*Du brauchst 5 Klassen und 2 Interfaces.
Klassen sind: Labor, WalisischesBergschaf, Stall, Schaf und Merinolangwollschaf.
Interfaces sind: Klonbar und Vermehrbar.
usw.*
"
das wusste ich auch! Das kann man ja quasi ablesen.
aber ich weiß nicht wie ich das jetzt hinschreibe.
Wer erbt von wem? Wer implimentiert von wen?
Die attribute und methoden kann ich einfach abschreiben, das ist kein Problem aber ich weiß nicht wie die hierarchie ist!


----------



## mrBrown (8. Aug 2016)

Der (geschlossene) Pfeil zeigt jeweils auf den, von dem geerbt wird


----------



## TomatenBrot447 (8. Aug 2016)

Ok danke schonmal  .
aber die Pfeile sehen fast alle anders aus, hat das eine bedeutung?
Und wo wäre es sinnvoll überhaupt anzufangen.

ach sag mir einfach wie du die klassenhierarchie schreiben würdest, ohne extra die attribute und methoden zu impementieren.


----------



## mrBrown (8. Aug 2016)

Die gestrichelten, geschlossenen sind `implements`, die durchgehenden, geschlossenen  sind `extends`, der mit der Raute ist Aggregation (Stall hat Attribute vom Typ Schaf) und die anderen beiden kannst du ignorieren (die sind Assoziation, also Stall benutzt das Interface Vermehrbar, sind da aber erstmal nicht wichtig)


----------



## TomatenBrot447 (8. Aug 2016)

Ok danke. Und wo fang ich an?


----------



## mrBrown (8. Aug 2016)

Am besten mit einem, was nichts anderes implementiert/erweitert


----------



## TomatenBrot447 (8. Aug 2016)

Komisch...alle klassen haben irgendwie pfeile...ich weis nicht wo ich anfangen soll


----------



## mrBrown (8. Aug 2016)

Relevant ist nicht, ob irgendein Pfeil dran hängt, sondern ob sie irgendwas extenden oder implementieren, also ein Pfeil von ihnen weg auf etwas anderes zeigt. Davon sehe ich 4 Stück


----------



## TomatenBrot447 (8. Aug 2016)

Also fange ich mit dem interface "Vermehrbar" an. Da dieses interface keinen pfeil hat der davon weg zeigt, richtig?

Und dann kann ich weitermachen wie ich will oder wie?
Sag mir mal kurz wie du diese beiden teilaufgaben lösen würdest.


----------



## Flown (8. Aug 2016)

Reihenfolge: Interfaces, Aggregation(Stall), abstrakte Klasse, der klägliche Rest.


----------



## Jardcore (9. Aug 2016)

TomatenBrot447 hat gesagt.:


> Komisch...alle klassen haben irgendwie pfeile...ich weis nicht wo ich anfangen soll


https://homepages.thm.de/~hg11260/mat/uml.pdf
Hier kannst du dich informieren was UML ist und wie man es einsetzt.

Ich würde sagen mehr Hilfe können wir dir leider nicht geben, ohne die Aufgabe für dich zu machen.


----------

