UML-Klassendiagramm bitte prüfen!

  • Themenstarter Themenstarter girl
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

girl

Gast
hallo an alle!!

ich hab versucht ein klassendiagramm zu programmieren.. paar ansätze hab ich schon. also die klassendiagramme gezeichnet (Artikel, Rohstoffe, Handelswaren, Erzeugnisse und Einzelteile) und hier ist der code:


public class Artikel
{
private String artnr =new String();
private string bezeichnung=new bezeichnung();

public Artikel()
public void setartnr(String pneueartnr)
{
artnr=pneueartnr;
}

public void set bezeichnung(string pneue bezeichnung
{
bezeichnung=pneue bezeichnung;
}

public String getbezeichnung()
{
return bezeichnung;
}

public void mehren (double pStueck)
{
Lagerb=bestand+pStueck;
}

public void mindern (double pStueck)
}

jetzt sollte ich wissen, ob das so korrekt ist, oder irgendwelche fehler vorhanden sind, wenn ja, welche?
für die restlichen Diagramme rohstoffe und handelswaren soll der einkaufspreis berechnet werden (hab leider keine ahnung wie das funktionieren soll -.-
für alle Erzeugnisse und Handelswaren der Verkaufspreis
und für Erzeugnisse und alle Einzeltiele die Herstellungskosten.
das komplette klassendiragramm soll erstellt werden.
ich hoffe mir kann jemand helfen!! da ich im programmieren nich so gut bin...

gruß girl
 
Hiho,

also von Vorteil wäre es vielleicht wenn wir das UML Klassendiagramm mal sehen könnten...

bye Saxony
 
bin mir jetzt nich sicher, was du meinst...denn das klassendiagramm soll ich in BlueJ erstellen.



hier die aufgabe:

Mitarbeiter

Die Haro gmbh möchte ein Programm für die Artikelverwaltung entwickeln. Folgende Annahmen sollen gelten

Bei allen Artikeln soll die Artikelnummer und die Bezeichnung erfasst werden.
Die Artikelnummer und die Bezeichnung sollen festgesetzt und abgefragt werden können.
Bei allen Artikeln soll der Lagerbestand erhöht, vermindert und abgefragt werden können.
Alle Rohstoffe und alle Handelswaren haben einenn Einkaufspreis.
Alle Erzeugnusse und allle Einzelteile haben Herstellungskosten.
Alle Erzeugnisse und alle Handelswaren haben einen Verkaufspreis.
Hinweis: alle Arttribute vom Typ Zahl sind als double zu deklarieren;

Aufgaben:
9.1 Erstellen Sie das komplette UML-Klassendiagramm.
9.2 Erstellen Sie alle Klassen in BlueJ
9.3 Testen Sie die Klassen und erstellen Sie die Dokumentation.

gruß girl
 
Yep,

und wie sieht dein UML-Klassendiagramm bisher aus ?

Rohstoffe, Handelswaren, Erzeugnisse und Einzelteile sind ja dann alles Spezialisierungen von Artikel.

Die jeweiligen Preise/Kosten sind dann weitere Objektattribute der einzelnen (spezialisierten) Artikel.

bye Saxony
 
also bis jetzt siehts so aus:

ich hab 5 Klassen angelegt. Einmal Artikel, dann Rohstoffe, Handelswaren, Erzeugnisse und Einzelteile...bin mir aber nich sicher, ob man des so lassen kann -.-

unter Artikel hab ich dann erstmal die Artnr und bez. unter String angelegt,
unter Rohstoffe den EK-Preis mit int, wie oben beschrieben.
unter Handelswaren dann auch den EK-Preis mit int und den VK-Preis auch mit int.
unter Erzeugnisse den VK-Preis mit int und die Herstellungskosten ebenfalls mit int.
dann unter Einzelteile die Herstellungskosten mit int wobei alle int ja nacher in double umgewandelt werden sollen, soweit ich weiß 🙁

dazu noch in jeder Klasse den Konstruktor.

gruß
 
Ich sehe hier ein kleines Kommunikationsproblem. Willst du wissen, ob dein Klassendiagramm korrekt ist oder willst du wissen, ob dein Code korrekt ist?
Das Klassendiagramm ist nur das Modell. In der Wikipediafindest du ein Beispiel dafür.

Das, was du im ersten Beitrag gepostet hast, ist der Code. (BTW: Diesen bitte in code-Tags packen. Ist sonst kaum lesbar.)

Im Grunde sollten die beiden schon übereinstimmen. Es stellt sich nur die Frage, was nun deine eigentliche Frage ist. ;-)
Habe ich dich richtig verstanden, dass du wissen willst, ob du die Aufgabe korrekt gelöst hast?
Um Punkt 9.1 zu beurteilen, müssen wir das Diagramm sehen. Punkt 9.3 können wir nicht beurteilen. ;-)

Was mir beim Überfliegen auffällt. Du hast keine get-Methoden. Du kannst also nicht die Artikelnr und Bezeichnung abfragen.
Du hast die Attribute seltsam initialisiert:
Code:
private String artnr =new String(); 
private string bezeichnung=new bezeichnung();
* Groß- und Kleinschreibung beachten.
* Es gibt keine Klasse bezeichnung, außerdem hast du selbst angegeben, dass das Attribut vom Typ String ist.
* Da diese Attribute erst durch die set-Methoden gefüllt werden, lasse diese bei der Deklaration leer:
Code:
private String artNr;
private String bezeichnung;
In der Methode mehren(double) beziehst du dich auf die Attribute Lagerb und bestand, die es beide nicht gibt. Wahrscheinlich sollte es so sein:
Code:
bestand= bestand+pStueck;
Allerdings würde ich diese Methode nicht in die Klasse Artikel packen, sondern in eine gesonderte Klasse Lager. Denn ein Lager enthält Artikel. Ob das euer Lehrer auch so sieht, weiß ich natürlich nicht.

Das nur erst mal als erste Hinweise. Hoffe dich nicht verwirrt zu haben. ;-)
 
eig. möcht ich beides wissen...erstens ob mein modell stimmt, damit ich dann die Klassen anlegen kann.
und zweitens ob mein code stimmt. nur hab ich leider keine ahnung, wie ich die anderen Klassen codieren soll..bzw. wann ich einen int, bzw String benötige!

hab ich die Klassen oben richtig angelegt?

warum muss ich beim anlegen meiner deklarierung =new String(); weglassen? das versteh ich jetzt nicht ganz...

gruß
 
Anonymous hat gesagt.:
eig. möcht ich beides wissen...erstens ob mein modell stimmt,
Dann zeig es uns doch mal. Exportier das Diagramm in irgendein Bildformat und lad es z.B. auf imageshack.com, damit wir es uns angucken können.
Ist auch sinnvoll, dass wir uns zuerst das Diagramm ansehen und du erst davon dann den Code erzeugst.
BTW: Erzeugt BlueJ nicht ohnehin anhand des Modells den Code?

und zweitens ob mein code stimmt. nur hab ich leider keine ahnung, wie ich die anderen Klassen codieren soll..bzw. wann ich einen int, bzw String benötige!
Daher erst mal mit dem Modell anfangen. Das mit dem int und String ist nicht das gravierendste. Wichtiger ist, dass du erst mal die Klassen und ihre Attribute hast (von mir aus erst mal alles als String). Die korrekten Datentypen kannst du danach dann festlegen (ist aber auch nicht schwierig, besonders wenn die Vorgabe heißt: "Hinweis: alle Arttribute vom Typ Zahl sind als double zu deklarieren").

hab ich die Klassen oben richtig angelegt?
Du hast nicht alle Klassen umgesetzt. Und wie gesagt, hätte ich die Methoden anders aufgeteilt.
Als erstes solltest du mal heraus finden, welche Klassen du brauchst. Artikel ist schon mal richtig. Ich würde noch ein Lager dazu nehmen. Dann kämen noch Rohstoffe und wahrsch. Handleswaren (auch wenn ich das jetzt für blutige Anfänger zu komplex finde. Aber wenn es nun mal die Vorgabe ist...)
Dann überlegst du, welche Daten diese haben müssen. Für Artikel hast du das ja schon. Rohstoffe und Handelswaren bekommen einen Einkaufspreis, etc.
Und danach brauchst du noch die Methoden, also Lagerbestand erhöhen, etc.

warum muss ich beim anlegen meiner deklarierung =new String(); weglassen? das versteh ich jetzt nicht ganz...
Naja, prinzipiell kannst du das tun. Aber du hast ja keinen sinnvollen Defaultwert. Und um auszudrücken, dass diese Attribute nicht gesetzt sind, lässt du bei der Deklaration die Wertzuweisung weg (ist auch kein Muss, aber ein besserer Stil).
Außerdem war deine Zuweisung für die Bezeichnung schlicht falsch.

Also um es kurz zu machen. Erstelle erst mal das UML-Modell mit den Klassen, die du aus der Aufgabe heraus liest und pack, so weit dir das möglich ist, die Attribute gleich mit rein. Dann zeig uns das Diagramm und wir können es kritisieren. 🙂
 
hier die aufgabe:

Mitarbeiter

Die Haro gmbh möchte ein Programm für die Artikelverwaltung entwickeln. Folgende Annahmen sollen gelten

Bei allen Artikeln soll die Artikelnummer und die Bezeichnung erfasst werden.
Die Artikelnummer und die Bezeichnung sollen festgesetzt und abgefragt werden können.
Bei allen Artikeln soll der Lagerbestand erhöht, vermindert und abgefragt werden können.
Alle Rohstoffe und alle Handelswaren haben einenn Einkaufspreis.
Alle Erzeugnusse und allle Einzelteile haben Herstellungskosten.
Alle Erzeugnisse und alle Handelswaren haben einen Verkaufspreis.
Hinweis: alle Arttribute vom Typ Zahl sind als double zu deklarieren;

Aufgaben:
9.1 Erstellen Sie das komplette UML-Klassendiagramm.
9.2 Erstellen Sie alle Klassen in BlueJ
9.3 Testen Sie die Klassen und erstellen Sie die Dokumentation.


das is das einzige blatt das ich hab. meinst du das? mehr hab ich leider nicht -.-

muss von dem ausgehn. oben hab ich beschrieben wie ich die klassen eingeteilt hab. also welche attribute wo hin gehören und so.
 
warum muss ich beim anlegen meiner deklarierung =new String(); weglassen? das versteh ich jetzt nicht ganz...
Nebenbei bemerkt, sollte der null argument String Konstruktor eigentlich nie verwendet werden 😉
 
Die Aufgabe hast du oben schon gepostet.
Du hast auch deinen ersten Code gepostet, aber noch kein Modell.
Das UML Modell, das du erstellt hast, brauchen wir. Wie eins aussieht, siehst du in dem Wikipedia-Link. Hast du so eins schon erstellt?

Anonymous hat gesagt.:
muss von dem ausgehn. oben hab ich beschrieben wie ich die klassen eingeteilt hab. also welche attribute wo hin gehören und so.
Ja, aber du wolltest doch das Diagramm auch bewertet wissen. Das obige ist kein Diagramm, sondern Code.
Wie gesagt, theoretisch sollten diese ohnehin exakt das selbe beinhalten (nur verschiedene Darstellungsformen).

Du kannst auch weiterhin den Code posten. Ist auch ok. Aber da musst du das selbst machen. Erstell die Klassen, füge denen die Attribute hinzu. Die Methoden kannst du ja erst mal weglassen. Und dann poste uns diese Klassen noch mal (bitte in Code-Tags eingeschlossen, sonst kann man das kaum lesen).

Tipps dazu habe ich weiter oben schon gegeben.
 
da hast zwar recht, aber wenn nich jeder für sich alleine arbeiten würde, wärs au kein problem!!
 
ja, genau das hab ich erstellt.
dann in BlueJeigegeben.

ich hab 5 Klassen angelegt. Einmal Artikel, dann Rohstoffe, Handelswaren, Erzeugnisse und Einzelteile...bin mir aber nich sicher, ob man des so lassen kann -.-

unter Artikel hab ich dann erstmal die Artnr und bez. unter String angelegt,
unter Rohstoffe den EK-Preis mit int, wie oben beschrieben.
unter Handelswaren dann auch den EK-Preis mit int und den VK-Preis auch mit int.
unter Erzeugnisse den VK-Preis mit int und die Herstellungskosten ebenfalls mit int.
dann unter Einzelteile die Herstellungskosten mit int wobei alle int ja nacher in double umgewandelt werden sollen, soweit ich weiß
 
public class Artikel
{
private String artnr =new String();
private String bezeichnung=new String();

public Artikel()
{}

public void setartnr(String pneueartnr)
{
artnr=pneueartnr;
}

public void setbezeichnung(String pneuebezeichnung)
{
bezeichnung=pneuebezeichnung;
}

public String getbezeichnung()
{
return bezeichnung;
}

public void mehren (double pStueck)
{
Bestand=bestand+pStueck;
}

public void mindern (double pStueck)
{
}
}


da stimmt jetzt soweit, nur beim bestand bringt er mir noch ein fehler...
 
Anonymous hat gesagt.:
ich hab 5 Klassen angelegt. Einmal Artikel, dann Rohstoffe, Handelswaren, Erzeugnisse und Einzelteile...bin mir aber nich sicher, ob man des so lassen kann -.-
Dann zeig es uns. ;-)
Klingt so weit erst mal nicht grundlegend falsch. Oben hast du nur Artikel gepostet. Die andern müssen wir schon sehen, wenn wir sagen sollen, ob es so ok ist.

unter Artikel hab ich dann erstmal die Artnr und bez. unter String angelegt,
Ist auch absolut korrekt.
unter Rohstoffe den EK-Preis mit int, wie oben beschrieben.
Klingt auch korrekt. Aber wo oben beschrieben?
unter Handelswaren dann auch den EK-Preis mit int und den VK-Preis auch mit int.
Klingt auch vernünftig.
unter Erzeugnisse den VK-Preis mit int und die Herstellungskosten ebenfalls mit int.
Auch das klingt gut.
dann unter Einzelteile die Herstellungskosten mit int wobei alle int ja nacher in double umgewandelt werden sollen, soweit ich weiß
Gut so.

War ich dir jetzt eine Hilfe? Du hast hier mehrfach dein Geschreibsel von oben kopiert. Die tatsächlichen Klassen haben wir immer noch nicht gesehen (bis auf Artikel).
Also, viel mehr als die Tipps von oben kann ich dazu nicht geben. Hast du diese denn mittlerweile schon beherzigt?
 
Anonymous hat gesagt.:
public class Artikel
{
private String artnr;
private String bezeichnung;

public Artikel()
{}

public void setartnr(String pneueartnr)
{
artnr=pneueartnr;
}

public void setbezeichnung(String pneuebezeichnung)
{
bezeichnung=pneuebezeichnung;
}

public String getbezeichnung()
{
return bezeichnung;
}

public void mehren (double pStueck)
{
Bestand=bestand+pStueck;
}

public void mindern (double pStueck)
{
}
}


da stimmt jetzt soweit, nur beim bestand bringt er mir noch ein fehler...
 
Anonymous hat gesagt.:
Anonymous hat gesagt.:
public class Artikel
{
private String artnr;
private String bezeichnung;

public Artikel()
{}

public void setartnr(String pneueartnr)
{
artnr=pneueartnr;
}

public void setbezeichnung(String pneuebezeichnung)
{
bezeichnung=pneuebezeichnung;
}

public String getbezeichnung()
{
return bezeichnung;
}

public void mehren (double pStueck)
{
Bestand=bestand+pStueck;
}

public void mindern (double pStueck)
{
}
}


da stimmt jetzt soweit, nur beim bestand bringt er mir noch ein fehler...

kann mans so jetzt besser lesen? ich hoff doch 😉
 
Ah, offenbar eine zeitliche Überschneidung.


1. Ich bat dich darum code-Tags zu verwenden. Dafür gibt es beim Erstellen eines Beitrags hier im Forum den Button. Verwende diesen bitte.


da stimmt jetzt soweit, nur beim bestand bringt er mir noch ein fehler...
Wichtig: Wenn du einen Fehler bekommst, immer dazu schreiben was für ein Fehler Die gesamte Fehlermeldung bitte hier posten. Sonst kann dir keiner helfen.



Code:
public void mehren (double pStueck) 
{ 
Bestand=bestand+pStueck; 
}
Hier ist es jedoch offensichtlich. Du beziehst dich auf die Variable 'Bestand'. Die gibt es nicht. Weiterhin beziehst du dich auf eine 2. Variable 'bestand' (Groß- und Kleinschreibung beachten!). Die gibt es auch nicht. Wenn du Bestand als Teil von Artikel haben möchtest, dann deklariere auch dafür noch eine Variable. Genau wie für Artikelnr und Bezeichnung.
 
also mit dem oben beschrieben meint ich in der aufgabe.

und die anderen Klassen hab ich noch nicht angelegt, da ich nicht wusste, ob ich die Attribute richtig angelegt hab.
dankee vielmals!!
 
achso jetzt^^ sorry.....ich sitz hier scho ca 6 std und versuch die aufg. zu lösen -.-

also er bringt mir die fehlermeldung cannot resolve symbol- variable Bestand.



public class Artikel
{
private String artnr =new String();
private String bezeichnung=new String();

public Artikel()
{}

public void setartnr(String pneueartnr)
{
artnr=pneueartnr;
}

public void setbezeichnung(String pneuebezeichnung)
{
bezeichnung=pneuebezeichnung;
}

public String getbezeichnung()
{
return bezeichnung;
}

public void mehren (double pStueck)
{
Bestand=bestand+pStueck;
}

public void mindern (double pStueck)
{
}
}

so siehts bis jetzt aus...jetzt müsst mans lesen können *g*
 
mist.....ich glaub ich sitz echt scho zu lang dran...



Code:
public class Artikel 
{ 
private String artnr =new String(); 
private String bezeichnung=new String(); 

public Artikel() 
{}

public void setartnr(String pneueartnr) 
{ 
artnr=pneueartnr; 
} 

public void setbezeichnung(String pneuebezeichnung) 
{ 
bezeichnung=pneuebezeichnung; 
} 

public String getbezeichnung() 
{ 
return bezeichnung; 
} 

public void mehren (double pStueck) 
{ 
Bestand=bestand+pStueck; 
} 

public void mindern (double pStueck) 
{
    }
}
 
was bedeutet die fehler meldung <identifier> expectet ??

wär nett, wenn mir das jemand kurz erklären könnt 😉

gruß
 
Das mit der Variable Bestand hab ich dir oben schon beschrieben. Du musst sie deklarieren, so wie artNr und bezeichnung.

<identifier> expected heißt, dass du irgendwo vergessen hast einen Variablennamen anzugeben.

Aber mir scheint, dass du hier eher recht planlos vorgehst. So wird das nichts. Vlt. nach 6 Stunden erst mal Pause machen und morgen weiter machen. Die Anforderungen sind ja nun wirklich nicht so hoch. Aber mit etwas Ruhe musst du schon rangehen.
 
ja klar...des war einfach zu lang! mach dann morgen weiter..

ich hab einfach probleme mit DV .....aber ich hoff es klappt noch..wir programmieren mit java auch erst seit ein paar wochen..

s problem is halt, dass ich die grundregeln nich verstanden hab -.-

könntst du mir da vll mit nem link oder irgend einem buch weiterhelfen? falls es da vll was gibt.

des wär echt nett 🙂
lg
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben