# Klassenhierarchie - UML Diagramm erstellen



## JAVAsk (6. Jan 2015)

In dieser Aufgabe wird eine Software zum Verwalten von beliebig vielen Serverfarmen betrachtet.
(1) Eine Serverfarm enthält beliebig viele Rechner.
(2) Jeder Rechner hat eine eindeutige MAC-Adresse (repräsentiert durch einen String), welche für die IPVergabe
verwendet wird.
(3) Die meisten Rechner in einer Serverfarm sind Server.
(4) Einige Rechner sind jedoch Terminals zur Kontrolle der Server.
(5) Alle fernwartbaren Rechner können neu gestartet werden.
(6) Alle fernwartbaren Rechner stellen eine Funktion bereit, die angibt, ob der Rechner abgestürzt ist.
(7) Eine Serverfarm stellt die Funktionalität bereit, alle ihre abgestürzten, fernwartbaren Rechner neu zu
starten.
(8) Server und Terminals sind immer fernwartbar. Wie die Fernwartung implementiert ist, hängt von der
Rechnerart ab.
(9) Bei Servern ist vor allem die Anzahl der CPUs und die zur Verfügung stehende Menge an RAM interessant.
(10) Servicetechniker haben kleine Diagnoserechner, welche nicht fernwartbar sind.
(11) Datenbankserver sind Server, bei denen vor allem das Volumen der Festplatte relevant ist.
(12) Es gibt keine sonstigen Rechner.

a) Entwerfen Sie unter Berücksichtigung der Prinzipien der Datenkapselung eine geeignete *Klassenhierarchie *für die Serverfarm. Notieren Sie keine Konstruktoren, Getter und Setter. Sie müssen nicht markieren, ob Attribute final sein sollen. Achten Sie darauf, dass gemeinsame Merkmale in Oberklassen bzw. Interfaces zusammengefasst werden. Welche Objekte realisieren Sie als Klasse und welche als Interface? Begründen Sie ihre Antwort.

Bitte dringend um Hilfe!
*Vielen Dank für eure Antworten!*


----------



## Gucky (6. Jan 2015)

Wobei genau brauchst du Hilfe? Ich könnte dir jetzt so ein Diagramm erstellen aber damit wäre dir nicht geholfen.


----------



## Saheeda (6. Jan 2015)

Und was ist deine Frage?


----------



## JAVAsk (6. Jan 2015)

Ich werde versuchen, euch zu zeigen, wie ich das Diagramm gezeichnet habe. Dann könnt ihr evt. meine Fehler finden.


----------



## JAVAsk (6. Jan 2015)

Siehe Beitrag davor.


----------



## JAVAsk (6. Jan 2015)

UML-Diagramme online erstellen
Dieser Link führt zu meinem Diagramm.....

* Bitte um Hilfe! Vielen Dank!*


----------



## Saheeda (6. Jan 2015)

Warum erbt Rechner von Serverfarm?
Warum erbt IFernwartbar von Rechner?
Warum haben Terminal und Server nur eine Beziehung zum Interface, aber sonst nirgendwohin?
Wo wird deutlich, dass eine Farm aus vielen verschiedenen Rechnern besteht?


----------



## JAVAsk (6. Jan 2015)

Ich dachte, dass *Serverfarm *die Oberklasse sein soll, weil eine *Serverfarm *mehrere *Rechner *enthalten kann. Dadurch kann man die Methode restartAll() in der Oberklasse aufrufen, um alle *Rechner *neu starten zu können...
*Fernwertbar *habe ich als Interface gewählt, weil es zwei Methoden von zwei Klassen zusammenfasst (restart() und abgestuertzt() von den Klassen *Server *und *Terminal*) 
*Fernwartbar *soll die Unterklasse von *Rechner *sein, weil *Server *und *Terminal *irgendwie von *Rechner *erben müssen.

Kann sein, dass ich falsch denke...
Bitte dringend um Hilfe!* Vielen Vielen Dank!*


----------



## Saheeda (6. Jan 2015)

Deine Begründungen sind nah dran, aber die Schlussfolgerungen sind falsch.


- Serverfarm braucht eine List<Rechner>
- Interfaces können nicht von Klassen erben, nur von anderen Interfaces
Ich würde daher Terminal und Server direkt von Rechner erben und zusätzlich das Interface implementieren lassen.


Außerdem: laut Aufgabe sollen sich nur die fernwartbaren Rechner neu starten lassen, nicht alle (7).


----------

