Tag Archives: exercise

Programming Methodologies, WS1213

PMWS1213_HA10.pdf

Eine aktuelle Version des SDMLib Projekts:
SDMLib.zip

Die Abgabe muss bis spätestens Donnerstag 07.02.2013 um 23:59 Uhr über unser Hausaufgabenabgabesystem
http://seblog.cs.uni-kassel.de/pmws1213/ 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.

Bei Fragen: george@uni-kassel.de

Compiler Construction, WS1213

Die Abgabe ist bis Di, den 12.02.2012 23:59 Uhr fällig!

Für diese Aufgabe soll der mit Hilfe von von BCEL http://commons.apache.org/bcel/ (Hinweise unter http://commons.apache.org/bcel/manual.html) ein Compiler entwickelt werden. Dieser soll folgendes unterstützen:

  • als Eingabe dienen mehrstellige Zahlen >= 0 inklusive beliebigen Nachkommastellen, bspw. 62.231
  • Alternativ muss auch die Exponentialschreibweise unterstützt werden, bspw. 3.81E-6 (dabei gilt: positive und negative Exponenten müssen unterstützt werden)
  • Addition (+) wird korrekt ausgewertet, bspw. 1.33+1.4 ergibt 2.73
  • Subtraktion (-) wird korrekt ausgewertet, bspw. 2.61-1.3 ergibt 1.31
  • Multiplikation (*) wird korrekt ausgewertet, bspw. 5.2*1.5 ergibt 1,8
  • Division (/) wird korrekt ausgewertet, bspw. 8.4/2.8 ergibt 3
  • Geklammerte Ausdrücke werden korrekt ausgewertet, bspw. (3+4)*5 ergibt 35
  • ’Punkt vor Strich’ wird korrekt ausgewertet, bspw. 3+4*5 ergibt 23
  • Es muss möglich sein (mehrbuchstabige) Variablen zu definieren, bspw. ahsd=…
  • Zuweisungen zu Variablen sollen mit Zahlen, anderen Variablen oder eine Mischung dieser möglich sein, bspw. x=y+(3-z)
  • Mehrere Ausdrücke, bspw. y=2 z=5 x=y+(3-z)
  • ‘If’-‘else’-Abfragen müssen unterstützt werden
    • Schachtelung soll möglich sein, d.h. so etwas wie if (…) { if (…) {}else{} }else{}
    • für die If-Bedingung sollen mindestens ==, < und > in Verbindung mit Variablen, Dezimahl- oder Exponentialzahlen möglich sein
    • die If-Bedingung soll beliebig komplex mit Hilfe von &, | und Klammerungen aufgebaut sein können, bspw.  if ( (x < y) & 3 < z | 3.81E-6  == y ) …
  • ‘While’-Schleifen müssen unterstützt werden
    • für die While-Bedingung sollen mindestens ==, < und > in Verbindung mit Variablen, Dezimahl- oder Exponentialzahlen möglich sein, bspw. while x < 22 …
  • Funktionen mit und ohne Parameter müssen definiert und aufgerufen werden können
    • in den Funktionsrümpfen müssen alle hier aufgeführten Strukturen nutzbar sein, d.h. if, while, usw.
  • rekursive Funktionsaufrufe müssen unterstützt werden, bspw. function fibu (number){ if number < 2 {number} else {fibu ( number – 1 ) + fibu ( number – 2 )} }
Zudem sollte eine aussagekräftige Fehlerbehandlung erfolgen, d.h. falls die Generierung einer Class-Datei nicht möglich ist, sollte die fehlerhafte Stelle identifiziert und dem Benutzer ausgegeben werden.
Automatisch korrigierbare Fehler, bspw. eine fehlerhafte Klammerung sollten (sinnvoll) behoben werden und NICHT zu einem Fehlschlagen der Generierung der Class-Datei führen, d.h. ‘1+2*(3-1’ sollte zu ‘1+2*(3-1)‘ ergänzt werden. Das betrifft auch komplexere Ausdrücke wie: ‘if(3>2){1+2*(3-1}else{5}’ sollte zu ‘if(3>2){1+2*(3-1)}else{5}‘ ergänzt werden. 
WICHTIG:
Für alle Funktionalitäten müssen Unit Tests mitgeliefert werden. Jede Funktionalität, für die kein Unit Test vorliegt, gilt als nicht implementiert und kann nicht bewertet werden. Diese Abgabe muss als separates Eclipse-Projekt implementiert und abgegeben werden. Sofern nicht explizit zugelassen, dürfen zusätzliche Bibliotheken Dritter nicht verwendet werden. Im Zweifel bitte bei mir rückversichern.
Programming Methodologies, WS1213

PMWS1213_HA9.pdf

Das vorgegebene Castleprojekt liegt hier:
PMWS1213_HA9_Castle.zip

Die Abgabe muss bis spätestens Donnerstag 31.01.2013 um 23:59 Uhr über unser Hausaufgabenabgabesystem
http://seblog.cs.uni-kassel.de/pmws1213/ 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.

Bei Fragen: george@uni-kassel.de

Software Engineering II, WS1213

Hi,

um den Code eines Tasks im Diagramm darstellen zu können, könnt ihr an Attribute im Klassendiagramm die Eugenia Annotation “@gmf.label” schreiben. Aus dem Eugenia Tutorial:

gmf.label (for EAttribute)
Defines additional labels for the containing EClass. These labels will be displayed underneath the default label for the containing EClass. It accepts the following details:
  • label.readOnly (optional) : A value of true denotes that the label cannot be changed in the generated diagram editor.

 

Programming Methodologies, WS1213

ACHTUNG: In den JUnit Tests (StoryBoards) für das Projekt waren Fehler enthalten.

Ich habe hier die korrekten JUnit-Tests als gezippte Java-Dateien verlinkt. Kopiert sie einfach in euer Projekt und überschreibt damit die von euch generierten Tests:
HA8_JUnitTests.zip

Alternativ können alle Teilnehmer, die bereits mit der Hausaufgabe begonnen haben folgende Anpassungen in den StoryBoards vornehmen:
– Im StoryBoard “validHorizontalMove” sollte in der Startsituation der Aufruf “move(f3)” durch “move(f6)” ersetzt werden.
– Im StoryBoard “validHorizontalMove” sollte in Start- und Resultsituation im Objekt “f7 : Field” die Zuweisung “x == 3” durch “y == 3” ersetzt werden.
– Im StoryBoard “invalidDiagonalPass” sollte in der Resultsituation der Link zwischen “p1” und “pass” NICHT negativ sein.
– Im StoryBoard “invalidMoveToEngagedField” sollte in der Resultsituation der Link zwischen “p1” und “pass” NICHT negativ sein.
– Im StoryBoard “validVerticalMove” SOLLTE in der Resultsituation der Link zwischen “p1” und “pass” negativ sein.

Dies betrifft die Modellierung der Storydiagramme nur in soweit, als dass die JUnit Tests nicht alle Regeln zu 100% korrekt prüfen. Die Modellierung sollte trotzdem den Regeln entsprechend durchgeführt werden. Die unten verlinkte Version wurde korrigiert.

Im Aufgabenblatt sollte die Methode “checkWinner()” durch “checkEnd()” ersetzt werden. Hier die korrigierte Version:
HA8_korrigiert2.pdf

Das korrigierte vorgegebene Diaballikprojekt liegt hier:
PMWS1213_HA8_korrigiert2.zip

Die Abgabe muss bis spätestens Donnerstag 24.01.2013 um 23:59 Uhr über unser Hausaufgabenabgabesystem
http://seblog.cs.uni-kassel.de/pmws1213/ 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.

Bei Fragen: george@uni-kassel.de