Prof. Dr. Pape - Softwarelabor

Deutsch
English

Softwarelabor

Verantwortlich für die Aufgaben des Softwarelabors ist Prof. Vogelsang. Die Aufgabenblätter, Hinweise zum Labor und Checkstyle Konfiguration finden Sie auf seiner Laborseite.

Die Einteilung, Termine und aktuellen Status der Abgabe meiner Gruppe finden sie hier.

Halten Sie bei der Abgabe der Aufgaben die angegebenen Abgabetermine ein, damit Sie die Rückmeldungen zu Ihren Lösungen in den nachfolgenden Aufgaben einfließen lassen können. Falls Sie einen Abgabetermin nicht einhalten können, halten Sie rechtzeitig mit mir Rücksprache. Eine Abnahme aller Aufgaben en-bloc am Ende oder nach der Vorlesungszeit führe ich nicht durch.

Halten Sie bei Ihren Lösungen die Java-Programmierrichtlinien, wie Sie sie aus der Informatik 1 kennen sollten, unbedingt ein. Es gibt die Richtlinien als PDF, besser lesbar aber weniger aktuell als die HTML-Version.

Abgabetermine

Beachten Sie, daß die Donnerstage oft ausfallen.

  1. Aufgabe bis 2.4.
  2. Aufgabe bis 23.4.
  3. Aufgabe bis 7.5.
  4. Aufgabe bis 28.5.
  5. Aufgabe bis 18.6.
  6. Aufgabe bis 2.7.

Zusätzliche Anforderungen

Aufgabe 1 (Medienverwaltung)

Verwenden Sie statt Vector überall im Quelltext nur den abstrakten Datentyp List oder Set. Nur beim Konstruktoraufruf dürfen Sie eine konkrete Implementierung verwenden.

Aufgabe 2 (Jawbreaker)

Testen Sie Ihre Implementierung mit JUnit. Dazu benötigen Sie einen Konstruktor bei dem Sie ein genau definiertes Spielfeld - etwas als Feld - angeben. Testen Sie unter anderem folgende Szenarien:

  • Bei einem vollem Feld mit Steinen von nur einer Farbe, müssen nach Auswahl eines Steines alle Steine entfernt sein.
  • Bei einem Vollem Feld mit Steinen von nur einer Farbe und einer Spalte in der Mitte mit Steinen anderer Farbe, wird diese Spalte bei Wahl eines Steines entfernt, und die anderen Spalten rücken nach.
  • Bei einem vollem Feld mit Steinen von nur einer Farbe und einigen andersfarbigen zusammenhängenden Steinen in der Mitte, "fallen" nach Auswahl eines dieser Steine alle darüberliegeneden korrekt herunter.
  • Testen Sie auch die korrekte Berechnung der Punktzahlen in weiteren Testfällen.

Aufgabe 3-6 (Zeichenprogramm)

  • Wie bei der Medienverwaltung dürfen Sie bei Variablendeklarationen nur den abstrakten Datentyp (z.B. List, Set) verwenden, nie die konkrete Implementierung (z.B. ArrayList, HashSet). Die konkrete Implementierung darf beim Konstruktor verwendet werden.
  • Bei Aufgabe 5 müssen beim Speichern die Exceptions so behandelt werden, dass immer die Ein- und Ausgabeströme geschlossen werden.