# Objekt orientiertes Desing



## suryoyo (3. Dez 2016)

Hallo Leute,

folgende Aufgabe:

Entwerfen Sie ein OO-Design in Form von Klassendiagrammen der Analyse mit folgenden
Eigenschaften:
• die Stadtwerke haben Busse und Bahnen (Attribute Kennnummer, Fahrzeugtyp)
• jedes Fahrzeug wird durch einen Fahrer/Fahrerin gesteuert (Attribute Namen, Alter und
Wohnort)
• Es gibt unterschiedliche Linien mit mehreren Haltestellen (Attribut: Haltestellenname)
Entwerfen Sie die hierfür benötigten Klassendiagramme (Vernachlässigen sie in der Darstellung
unwichtige oder naheliegende Variablen und Methoden, z.B. get- und set Methoden).

 Hier mein Lösungsvorschlag: 

Was meint ihr dazu?


----------



## Tobse (3. Dez 2016)

Grundsätzlich sieht das ganz okey aus. Mir sind folgende Dinge aufgefallen:


Die Kardinalität Bus + Bahn zu Fahrer ist falsch: Das ist ein N:1 und nicht 1:N

Wozu die Klasse Liniennetz? Die wird im Text nicht erwähnt

Die Klasse "Bahnen" sollte "Bahn" heissen
Ist das ein UML in Excel?!??!??!!!!?!!!Einself?! Darf man ja keinem Erzählen... benutzt sowas wie ArgoUML oder Dia, mglw. sogar Visio. Excel ist das absolut falsche Werkzeug für diese Aufgabe (schonmal versucht mit einem Schraubenzier einen Brunnen zu graben?)


----------



## suryoyo (3. Dez 2016)

servus Tobse, 
bin echt noch ein anfänger und unser lehrbeauftragte ist übelst am springen in den themen. ja über Excel  die softwares die du aufgezählt hast kenn ich garnicht. dann werde ich mir mal eins aussuchen.
in der aufgabenstellung stand "unterschiedliche Linien mit mehreren Haltestellen" daher kam mir die idee.
danke dir vielmals für deinen support.


----------



## Tobse (3. Dez 2016)

suryoyo hat gesagt.:


> in der aufgabenstellung stand "unterschiedliche Linien mit mehreren Haltestellen" daher kam mir die idee.


Die Idee ist auch gut  Aber sie steht nicht in der Aufgabenstellung - aus Erfahrung kann ich sagen, dass Lehrkräfte bei sowas ziemlich pingelig sind. In der Praxis ist das nachher wumpe, da hast du sehr viel Freiheit.




suryoyo hat gesagt.:


> danke dir vielmals für deinen support.


Keine Ursache


----------



## suryoyo (3. Dez 2016)

stimmt wirklich, auch unsere lehrkraft bringt immerwieder die sprüche "das stand nicht in der Aufgabenstellung"t


----------



## Joose (5. Dez 2016)

Warum haben die Klasse "Bus" und "Bahn" denn eine Liste mit Kennnummern? Jeder Bus oder jede Bahn kann doch nur eine haben? Das ein Bus/eine Bahn von mehreren Fahrern gefahren wird ist so schon in Ordnung, man muss eben nur bedenken es kann nur einen aktuellen Fahrer geben.

Die Klasse Liniennetz würde ich einfach zu "Linie" umbenennen  ... ein Netz besteht aus mehreren Linien, du willst aber nur eine abbilden mit dieser Klasse oder?
Außerdem würde mir hier ein Attribut wie Linienbezeichnung oder ähnliches fehlen. Desweiteren kann es nur "Bus"linien geben, für Bahnen gibt es kein Attribut.
Generell würde ich für die Klasse Bus und Bahn eine gemeinsame Oberklasse Fahrzeug einführen (mit dem Attribut Kennzeichen und Fahrzeugtyp). Die Klasse Linie hat dann eine Liste von Fahrzeugen.


----------



## suryoyo (5. Dez 2016)

ich dachte es gibt mehrere Busse die eine Nummer haben und das wollte ich damit ausgeben.
ich wollte mit der Klasse Liniennetzt das ganze netzt zeigen. 

Gute idee mit dem Fahrzugen und der Vererbung. Danke.


----------



## Joose (5. Dez 2016)

suryoyo hat gesagt.:


> ich dachte es gibt mehrere Busse die eine Nummer haben und das wollte ich damit ausgeben.



Das Klassendiagramm zeigt aber nur den Aufbau einer Klasse an. Die Klasse ist der Bauplan für ein Objekt 
Sprich aus der Klasse "Bus" wird ein Bus-Objekt erstellt. Und jeder Bus hat maximal ein Kennzeichen.
Natürlich hast du recht das es beliebig viele Busse mit unterschiedlichen Kennzeichen geben kann.



suryoyo hat gesagt.:


> ich wollte mit der Klasse Liniennetzt das ganze netzt zeigen.


Dann würde ich zusätzlich aber eben eine Klasse Linie einführen (Attribute-> Bezeichnung: String, Haltestellen: Liste, Fahrzeuge: Liste) und das Liniennetz eben (Attribute-> Linie: Liste)


----------



## suryoyo (9. Dez 2016)

Danke für die Antworten. Ich habe die Verbesserungsvorschläge übernommen.


----------

