4. Lösungsstrategie

Die folgende Tabelle stellt die Qualitätsziele von DokChess (siehe Abschnitt 1.2) passenden Architekturansätzen gegenüber, und erleichtert so einen Einstieg in die Lösung.
Qualitätsziel
Dem zuträgliche Ansätze in der Architektur
Zugängliches Beispiel (Analysierbarkeit)
  • Architekturüberblick gegliedert nach arc42
  • Explizites, objektorientiertes Domänenmodell 
  • Modul-, Klassen- und Methodennamen in Deutsch, um englische Schachbegriffe zu vermeiden
  • Ausführliche Dokumentation der öffentlichen Schnittstellen in javadoc
Einladende Experimentierplattform (Änderbarkeit)
  • verbreitete Programmiersprache Java, →(a)[1] 
  • Schnittstellen für Kernabstraktionen (z.B. Stellungsbewertung, Spielregeln) 
  • Unveränderliche Objekte (Stellung, Zug, ...) erleichtern Implementierung vieler Algorithmen 
  • „Zusammenstecken“ der Bestandteile mit Dependency Injection führt zu Austauschbarkeit, →(b) Hohe Testabdeckung als Sicherheitsnetz
Bestehende Frontends nutzen (Interoperabilität)
  • Verwendung des verbreiteten Kommunikationsprotokolls xboard, →(c),
  • Einsatz des portablen Java, →(a)
Akzeptable Spielstärke (Attraktivität)
  • Integration von Eröffnungsbibliotheken →(d) 
  • Implementierung des Minimax-Algorithmus und einer geeigneter Stellungsbewertung, →(e)
  • Integrationstests mit Schachaufgaben für taktische Motive und Mattsituationen
Schnelles Antworten auf Züge (Effizienz)
  • Reactive Extensions für nebenläufige Berechnung mit neu gefundenen besseren Zügen als Events →(f)
  • Optimierung des Minimax durch Alpha-Beta-Suche, →(e)
  • Effiziente Implementierung des Domänenmodells
  • Integrationstests mit Zeitvorgaben

Kleine Buchstaben in Klammern →(x) verorten einzelne Ansätze aus der Tabelle im schematischen Bild 9.6. Der restliche Abschnitt 4 führt in wesentliche Architekturaspekte ein und verweist auf weitere Informationen dazu in diesem Kapitel.
Bild: Informelles Überblicksbild für DokChess
Bild: Informelles Überblicksbild für DokChess