fehlermeldung

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
Wenn ich die Zeichnung sehe, muss ich stark an mich halten, um fair zu bleiben. "Modellierung" kommt von Modell, und das stellt ein Abbild der Wirklichkeit da. In diesem Falle einer gedachten Wirklichkeit. Und davon kann ich wenig bis nichts in der Zeichnung erkennen. Offensichtlich gibt es Modelle in der OO- Programmierung, die statisch sind oder dynamisch. Ein Klassendiagramm ist erstmal statisch und die Klassen stehen in Beziehungen zueinander, die man auch benennen kann. Und sie haben Multiplizitäten untereinander. Das will ich in einem Modell sehen. Insbesondere, weil das ja schon ähnlich programmiert ist, dürfte da doch kein Problem bestehen, wenn man schon länger programmiert.
 
Mhh, stimmt ich habe schon wieder vergessen, dass das gern mal 500-Beiträge-Themen werden.... aber ich werde gleich ew dagegen tun. 😉
 
Was soll an der Aufgabe schwer sein? Die Regel mit den zwei Instanzvariablen pro Klasse halte ich für schwer machbar in der Praxis. Dadurch entstehen zu viele Klassen oder die Daten werden schlecht gespeichert. Einfaches Beispiel, das mir sofort einfällt sind 3d Koordinaten. Dass die zusammen gehören ist doch klar und da macht es wenig Sinn, eine 2D Koordinate und eine Z Koordinate zu nehmen. Aber natürlich geht es - entweder durch speichern der Daten in einer Instanzvariable (z.B. XML Node) oder eben durch eine Aufteilung (Wäre dann etwas wie ein Binärer Baum. Egal was ich brauche - entsprechend Klassen erstellt mit jeweils 2 Instanzvariablen würde funktionieren).

Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
Die Map hat einfach eine Datenstruktur für die Felder/Inhalte. Der Rover hat Richtung und Koordinaten.

Also selbst weniger erfahrene Entwickler sollten hier bei der übersichtlichen Aufgabe keine Probleme haben.

Daher ist meine Frage, wo hier die Schwierigkeit sein soll.
 
Mhh, manchmal denke ich, ich bin verwirrter Rentner und muss die Aufgabe erstmal verstehen, aber dann kann ich sagen ob ich oder others daran scheitern würde(n). Hehe 😀
 
Was soll an der Aufgabe schwer sein? Die Regel mit den zwei Instanzvariablen pro Klasse halte ich für schwer machbar in der Praxis. Dadurch entstehen zu viele Klassen oder die Daten werden schlecht gespeichert. Einfaches Beispiel, das mir sofort einfällt sind 3d Koordinaten. Dass die zusammen gehören ist doch klar und da macht es wenig Sinn, eine 2D Koordinate und eine Z Koordinate zu nehmen. Aber natürlich geht es - entweder durch speichern der Daten in einer Instanzvariable (z.B. XML Node) oder eben durch eine Aufteilung (Wäre dann etwas wie ein Binärer Baum. Egal was ich brauche - entsprechend Klassen erstellt mit jeweils 2 Instanzvariablen würde funktionieren).

Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
Die Map hat einfach eine Datenstruktur für die Felder/Inhalte. Der Rover hat Richtung und Koordinaten.

Also selbst weniger erfahrene Entwickler sollten hier bei der übersichtlichen Aufgabe keine Probleme haben.

Daher ist meine Frage, wo hier die Schwierigkeit sein soll.
Ich glaube deine Erwartung ist zu hoch.

Aber die Aufgabe worin alle scheiterten war eine andere aber auch in Richtung oc
 
Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...):
Java:
class Rover {
int x;
int y;
int[][] feld;
int feldGrößeX;
int feldGrößeY;
String richtung;
int i; //genutzt als Index in Methode xy
Reader reader;//in Methode xz zum Einelsen des Kommandos benutzt;


//Get/Setter für alles
// maximal zwei weitere Methoden, 1,5 davon unsinnig
}
 
Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...
 
Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...
Ich denke ihr habt in eurer Zeit
Viel tiefer gelernt. Dadurch dass jede Menge neue Module sich entwickelt haben. Kann man schwer den Fokus nicht auf das wichtigste fassen.

Programmieren macht Spaß aber man muss im end Effekt das Studium schaffen.

Wenn man reines Mathe hat und weitere Module die nicht so bedeutend sind, wird es schwer halt alles zu packen.


Obwohl reines Mathe schon wichtig sein kann für ai.

Ich wollte eig auf eine fh aber die liegt in gummersbach.

Finde Uni ist zu theoretisch aber dafür hilft das einem beseer Probleme zu lösen.
 
Ich glaube deine Erwartung ist zu hoch
Also evtl. sollten wir erst einmal klären, wie Du "erfahrene Entwickler" definierst.

Für mich ist ein erfahrende Entwickler jemand, der Erfahrungen in der Software Entwicklung sammeln konnte. Also jemand, der schon an mehreren Projekten mitgearbeitet hat (als aktiver Software Entwickler).

Im Berufsleben bekommt man öfters die Begriffe Junior , Intermediate und Senior Entwickler. Dabei ist Junior jemand, den man noch an die Hand nehmen muss und der aktiv eingearbeitet wird Der kann durchaus auch an gewissen Dingen noch Probleme haben. Aber selbst von einem Junior Entwickler würde ich relativ schnell erwarten, dass er so eine einfache Aufgabe schnell und ohne Probleme lösen kann. Aber der Junior Entwickler macht Software Entwicklung auch als tägliche Arbeit, denn sonst wäre er kein Junior Entwickler .... Jemand, der jetzt im Studium an die Entwicklung heran geführt wird, würde ich nie als "Erfahrenen Softwareentwickler" bezeichnen.

Erfahrener Softwareentwickler ist mind. ein Junior mit entsprechenden ersten Erfahrungen in Projekten.

Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...):
Java:
class Rover {
int x;
int y;
int[][] feld;
int feldGrößeX;
int feldGrößeY;
String richtung;
int i; //genutzt als Index in Methode xy
Reader reader;//in Methode xz zum Einelsen des Kommandos benutzt;


//Get/Setter für alles
// maximal zwei weitere Methoden, 1,5 davon unsinnig
}
Nunja - das wäre akzeptabel, wenn da nicht entsprechend etwas anderes unterrichtet wurde. Wir mussten damals an der Uni die Booch Method verwenden. Das war krass fand ich. Booch hatte da gerade das Buch auf Englisch veröffentlicht. Fand ich grausam, da es wenig Sinn gemacht hat in meinen Augen. Da musste alles auch ein Interface und einen Controller haben....
Und dann geht es ja nur um die Umsetzung des Gelehrten .... Wenn Objektorientiertes Design nicht vermittelt wurde, dann kommt so etwas raus 🙂

Warum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...
Weil das die einzige Klasse ist. Und das ist keine 6. Die Variablen sind nicht static, daher wird es mehr als die static main Funktion geben 🙂

Die Frage ist ja, was man an einen Studenten herantragen kann ...


Ich denke ihr habt in eurer Zeit
Viel tiefer gelernt. Dadurch dass jede Menge neue Module sich entwickelt haben. Kann man schwer den Fokus nicht auf das wichtigste fassen.

Also das waren bei uns auch nur kleine Themen. Also ob wir an der Uni nur Software Entwickelt hätten oder so. Ich glaube nicht, dass die Unterschiede zu damals so gross sein dürften ...
 
Wir sind aber immer noch beim ADIT-Kreis und bewegen uns zwischen A und D, sprich Analyse und Design. Wir warten immer noch auf das Modell.
 
@Heyoka955 Mal unter uns, die erste Mathevorlesung (meist ist das Analysis oder so etwas), braucht man zum Lösen informatischer Probleme nie. Das ist einfach eine Hürde um 2/3 der Studierenden zu sieben.
 
@Heyoka955 Mal unter uns, die erste Mathevorlesung (meist ist das Analysis oder so etwas), braucht man zum Lösen informatischer Probleme nie. Das ist einfach eine Hürde um 2/3 der Studierenden zu sieben.
Du brauchst nicht den Inhalt aber du lernst da zu denken.

Das ist wichtig.

Bei den Beweis Aufgaben lernt man halt zu denken und Probleme zu lösen.
 
bitteschön, denke das müsste klappen als grund idee, also kenne mich mit uml kaum aus !und ich weiß nicht wie ich die klasse schritte und drehen gestalten soll!

11968

Okay ich muss Deich eine Klasse Koordinate machen denn bei Rover muss ich ja das char speichern also den Rover selbst.

Das heißt ich hatte dann drei Instanzen daher würde ich bei der Klasse Rover nur dann diese Instanzen speichern wollen

Das Zeichen selbst also der Rover woraus er besteht und eine neue Klasse Koordinate.
 
Zuletzt bearbeitet von einem Moderator:
also kenne mich mit uml kaum aus
Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.

bitteschön, denke das müsste klappen als grund idee
Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?

Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars ist eine Karte“ und der „Rover ist eine Bewegung“.

Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.

Deine beiden Koordinaten-Klassen sind völliger Humbug.

Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.
 
@mrBrown war schneller...


Stimmt.
Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.


Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?

Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars ist eine Karte“ und der „Rover ist eine Bewegung“.

Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.

Deine beiden Koordinaten-Klassen sind völliger Humbug.

Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.
Keine primitiven Datentypen darf ich verwenden
 
Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.


Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?

Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars ist eine Karte“ und der „Rover ist eine Bewegung“.

Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.

Deine beiden Koordinaten-Klassen sind völliger Humbug.

Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.

Dann würde ich einfach garnichts vererben? Weil es keine Vererbung gibt aber kann ich nicht annehmen dass der Mars eine Karte ist.

Musst bei den Regeln stehen.
Also alles wrappen
 
Zuletzt bearbeitet von einem Moderator:
Nein: „3. Wrap All Primitives And Strings“. Das meint nicht, einfach immer stumpf den Wrapper-Typ zu nutzen. Primitives sind dabei nämlich auch die Wrapper-Typen in Java.

Ich zeige:
Objekte sollen eine Bedeutung haben und nicht nur einfache Datenstrukturen sein. Zum Einen bekommen wir so eine Stelle, an der sich Verhalten ausdrücken lässt, zum Anderen können wir die spezifische Typen genauer ausdrücken, welche Operationen auf einem Wert ausgeführt werden können. Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.

Die Wrapper-Regel bezieht sich auf Methoden und Klassen, die Sie schreiben, nicht auf bestehende Methoden von existierenden Java Klassen. Sie dürften also die println Methode einer Instanz der Klasse PrintStream aufrufen und dabei einen ungewrappten String übergeben.

Die Regel betrifft sowohl Parameter als auch die Rückgabe aller Methoden, die von einer anderen Klasse sichtbar sein könnten, also auf alle Methoden, die nicht private sind.

Die Wrapperklassen dürfen einen String/Primitive im Konstruktor übergeben bekommen und müssen fachlich spezifisch sein, d.h. einen speziellen Zweck haben und nicht einen primitiven Typen oder String allgemein wrappen.

Die Verwendung einer Collection oder eines Optionals, um einen primitiven Datenwert zu verpacken, würden wir als vorsätzliches Umgehen der Regel interpretieren.
 
Zuletzt bearbeitet von einem Moderator:
Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.
Diesen Satz hast du auch gelesen?
Integer ist genauso „verboten“ wie int!


Ich finde die Reaktion von Studenten, wenn sie Dinge nicht verstehen, echt bemerkenswert. Anstatt auf die Idee zu kommen, einfach mal zu fragen wie das gemeint ist, machen die einfach irgendwelchen Unsinn.
 
Zuletzt bearbeitet:
Diesen Satz hast du auch gelesen?
Integer ist genauso „verboten“ wie int!


Ich finde die Reaktion von Studenten, wenn sie Dinge nicht verstehen, echt bemerkenswert. Anstatt auf die Idee zu kommen, einfach mal zu fragen wie das gemeint ist, machen die einfach irgendwelchen Unsinn.
oh wusste nicht was ich da schreiben soll, musste das in uml realisieren können.
 
Okay. Geh mal drei Schritte zurück.

Das Zitat zur nicht Verwendung von primitiven Werten - lies es noch mal durch.
Und dann sag uns, ob du es zur Gänze verstanden hast, oder ob du irgendwo fragen hast.
 
Okay. Geh mal drei Schritte zurück.

Das Zitat zur nicht Verwendung von primitiven Werten - lies es noch mal durch.
Und dann sag uns, ob du es zur Gänze verstanden hast, oder ob du irgendwo fragen hast.
Die Verwendung einer Collection oder eines Optionals, um einen primitiven Datenwert zu verpacken, würden wir als vorsätzliches Umgehen der Regel interpretieren.

Ich weiß nicht wie ich mir vorstellen soll wie eine Collection einen int ersetzt?
 
"Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc."
 

Zurück
Oben