Category Archives: Programming Methodologies

Programming Methodologies, WS1314

Hier das in der Übung implementierte Beispiel.


ClassModel model = new ClassModel("de.uniks.pm.battleship");

// Method checkWinnerMethod = new Method()
// .withSignature("checkWinner")
// .withReturnType("void");
//
Clazz battleship = model.createClazz("Battleship")
;//.withMethods(checkWinnerMethod);

Clazz field = model.createClazz("Field")
.withAttribute("x", "int")
.withAttribute("y", "int");

Clazz ship = model.createClazz("Ship")
.withAttribute("size", "int");

// Method fireMethod = new Method()
// .withSignature("fire(Field field)")
// .withReturnType("boolean");

Clazz player = model.createClazz("Player")
.withAttribute("turn", "boolean")
.withAttribute("name", "String")
;//.withMethods(fireMethod);

player.withAssoc(ship, "ship", R.MANY, "owner", R.ONE);

player.withAssoc(battleship, "battleshipGame", R.ONE, "player", R.MANY);

player.withAssoc(battleship, "wonGame", R.ONE, "winner", R.ONE);

player.withAssoc(field, "shotField", R.MANY, "player", R.MANY);

ship.withAssoc(field, "fields", R.MANY, "ships", R.MANY);

field.withAssoc(battleship, "battleshipGame", R.ONE, "field", R.MANY);

model.generate("genSrc");

Programming Methodologies, WS1314

Da die Frage nach den für die Vorlesung gültigen Spielregeln aufkam, hier ein Auszug aus den offiziellen deutschen Regeln von Quoridor.

Es kann zum Zwecke der Vereinfachung zu Änderungen der Regeln kommen, diese werden dann explizit an der jeweiligen Stelle erwähnt. Soweit nicht anders beschrieben gelten die folgenden Regeln.

Photo 1 (2) Photo 2

Programming Methodologies, WS1314

Nachtrag:

Es gab in der Übung und wohl auch schon in der Vorlesung eine syntaktische Verwirrung bezüglich der Objektdiagramme. Die Syntax zur Beschreibung von Attributen ist:

attributName = attributWert

In der Vorlesung wurde wahlweise auch “==” oder fälschlicherweise in der Übung “:” verwendet. Bitte haltet euch bei der Syntax streng an die Vorgaben, da es unter Umständen zu Punktabzügen kommen kann, vor allem in späteren Abgaben. Aufgrund der Inkonsistenz werden Fehler dieser Art (“=”, “==”, “:”) in Abgabe 2 noch nicht gewertet.

Die wichtigsten Punkte sind:

  • Klassennamen groß-, Objektnamen kleingeschrieben
  • Objekte unterstreichen
  • Kardinalitäten im Klassendiagramm angeben (nur 0..1 oder 0..n)
  • Rollennamen im Klassendiagramm sind nicht optional
  • haltet euch an die Syntax der Beispiele in den Übungsfolien

In der Übung wurde auf Nachfrage einiger Studenten in der Bearbeitungszeit noch gemeinsam ein weiteres Beispiel für das Spiel “tictactoe” entwickelt:

(es fehlen die Rollennamen im Klassendiagramm!)

Photo 1

 

 

Ursprünglicher Eintrag:

Den Screencast zur Übung 2 findet ihr nach der Übung unter: PMWS1314_UE2.html
Nochmal als AVI: PMWS1314_UE2.mp4

Die Folien liegen hier:
PMW1314_UE2

HA2

Programming Methodologies, WS1314

Die Hausaufgaben müssen von jedem Studierenden einzeln bearbeitet und abgegeben werden. Die Abgabe muss bis spätestens Donnerstag 07.11.2013 um 23:59 Uhr über unser Hausaufgabenabgabesystem
https://se.cs.uni-kassel.de/hms

erfolgen. Die Abgabe ist nur als einzelne
*.zip oder *.jar-Datei möglich. Daher müssen alle für eine Abgabe relevanten Daten zu einem
solchen Archiv kombiniert werden. Diese Hausaufgabe gibt 17 Punkte.

PMWS1314_HA2