Review von Gruppe 9 durch Gruppe 10


von Michael Hußmann, Markus Zarbock

(1) Beobachtungen beim Compilieren und Ausführen des Programmes

Negative Kritik

  • Roboter durchlaufen Karten, andere Roboter und Wände (siehe Anhang).
  • Roboter verlassen eigentliche Arena (siehe Anhang).
  • Roboter werden scheinbar nicht neu initialisiert und alte Roboterlisten werden beibehalten?
  • Items sind kaum zu unterscheiden:
    • Lediglich die Wände und die Ausrichtung der Roboter ist gut zu erkennen.
    • Der Ausgang, die Wurmlöcher und die Brunnen sind nicht unterscheidbar.
    • Bei den Karten ist keine Unterscheidung der Farben möglich.
  • Hellgrüner und türkisfarbener Roboter kaum zu unterscheiden.
  • Hilfe nicht vorhanden.
  • Roboter ohne Energie werden nicht gemeldet.
  • Disqualifikation wird stets durch Spielkontrolle initiiert.
  • Benutzer kann Roboter nur durch normales Entfernen aus dem Spiel nehmen (aber dann verschwindet Roboter auch aus Anzeige).
  • Nach Disqualifikations-Aufruf wird Roboter völlig entfernt, müßte aber im Statistik-Fenster verbleiben.
  • Überschreitung der 10 Sekunden führt nicht zur Disqualifikation aber zum Absturz.
  • Keine Default Arena.
  • Wenn nach Laden der Arena/der Roboter Intro aktiviert wird, ist unklar, wie es deaktiviert wird.
  • Statistikteil wird langsam aktualisiert.
  • Keine Meldung, wie Spiel beendet wurde (Ausgang, alle tot...).
  • Zweimaliges Aufrufen des Grafikoptionen-Dialoges bringt enorme Verzögerung, Programm ist aber noch zu beenden.

Positive Kritik

  • Roboter unserer Gruppe sind ladbar und laufen.
  • Roboter Exception wird korrekt gefangen.
  • Punktwertung entspricht Schnittstelle.
  • Reihenfolge zufällig.

(2) Beobachtungen beim Code-Review

  • Kartentausch nicht durch Thread von Spielkontrolle abgekoppelt, keine 10 Sekunden Prüfung.
  • Aufruf von getCommand() auf RobotFunctions nicht durch Threads abgekoppelt.
  • In jetziger Version schlechte Proxy-Integration.
  • Illegale Aktionen werden mit Energieabzug geahndet, statt mit Disqualifikation (ArenaControl.java Z.428ff).
  • Disqualifikation nur bei Zeitüberschreitung (wenn es denn funktionierte).
  • Kartentauschmethodenaufrufe nicht in try-catch-Blöcke geklammert


  • Kommentare:
    • Bender42MainFrame.java:
      • Klassendoku fehlt
      • Methode sortit() StyleGuide verletzt
      • methode actionPerformed fast 100 zeilen kein Kommentar
    • Bender42RemoveRobotDialog.java:
      • KlassenDoku fehlt
    • Bender42RobotData.java:
      • KlassenDoku fehlt
    • Bender42ArenaControl.java:
      • innere Klasse MapXMLHandler keine JavaDocs...
    • Bender42Robot.java:
      • KlassenDoku fehlt
      • Datei in schrecklichem Zustande (Tabs Leerzeichen)

(3) Fragen nach denen wir das Programm untersuchten :

  • (1) Fängt Arena Exceptions vom Roboter ab?
    • Testroboter, der Exceptions erzeugte, wurde ordnungsgemäß entfernt.
  • (2) Wie ist Exception-Handling im allgemeinen?
  • (3) Ermöglicht Arena Mogeln?
  • (4) Ist Arena gerecht zu allen Robotern?
  • (5) Hat Roboter nebenläufige Threads?
  • (6) Kann Roboter Arena verändern / verändert Arena sich?
  • (7) Kann Roboter auf Arena zugreifen und sich globales Bild machen?
  • (8) Reißt abgestürzter Roboter die Arena mit?
  • (9) Werden Kommandos ädaquat ausgeführt und mögliche Fehler und Mogeln erkannt?

(4) Anhang

  • Code-Fragmente
    • getCommand() Aufruf in Bender42ArenaControl.java
    • Aufruf der Kartentausch-Methoden nicht durch Threads abgekoppelt

  • Screenshots
    • Roboter durchquert Objekt



    • Roboter verläßt Arena



    • Roboter verläßt Arena, andere "Intelligenz"



    (5) Protokoll der Review Besprechung am 11 Juli 2001

    Protokollführer: M. Hußmann

    Die Gruppe ging die von uns genannten Kritikpunkte durch und nahm zu jedem Stellung:

    • Problem mit Durchlaufen der Karten ist schon bekannt und behoben
    • Es besteht dringender Bedarf die restlichen Probleme betreffend des Durchqueren anderer Items wie Wände, Roboter etc. zu beheben
    • Darstellung soll geändert werden, um eine bessere Unterscheidung der Wurmlöcher, Brunnen und des Ausgangs zu ermöglichen - Gewicht liegt jedoch auf Behebung der offensichtlichen Programmierfehler
    • Dokumentation und Hilfe ist teilweise schon vorhanden, wird aber erst einmal in den Hintergrund gestellt, weil dies noch bis Mitte August abgeschlossen werden kann
    • Roboter ohne Energie sollen gemeldet bzw. markiert werden
    • Wenn einfach zu implementieren, sollen Roboter nach Disqualifikation nur aus Arena entfernt werden, nicht aber aus Statistik. Es macht Sinn, den bereits implementierten Dialog zum Entfernen eines Roboters auch zum Disqualifizieren zu benutzen und entsprechend zu modifizieren
    • Eine Blockierung der Arena durch abgestürzte Roboter muß unbedingt verhindert werden
    • default arena sollte vorhanden sein, ist aber minder wichtig
    • Langsame Aktualisierung der Statistik ist auf die Interna der Swing-Realisierung zurückzuführen (asynchrones Update) - hier besteht zur Zeit kein Bedarf an Änderungen
    • der Grafikoptionen-Dialog wird so belassen
    • Wenn ein Roboter mogelt, muß er zur Disqualifikation vorgeschlagen werden und nicht nur mit Energieabzug bestraft werden.
    • Package-Struktur soll verbessert werden, um GUI und Arena zu trennen