4.1 Introduction to the Strategy

The following table contrasts the quality goals of DokChess (→ Section 1.2) with matching architecture approaches and thus provides easy access to the solution.

Quality Goal Matching approaches in the solution
Accessible example (Analysability) 
  • architectural overview structured by arc42
  • explicit, object-oriented domain model
  • detailed documentation of public interfaces with Javadoc
Platform appealing to experiments (Changeability) 
  • widely spread programming language Java → (a)
  • Interfaces for core abstractions (for instance: position evaluation, game rules)
  • immutable objects (position, move, … ) make implementation of many algorithms easier
  • “plugging” of elements with dependency injection leads to interchangeability → (b)
  • High test coverage as a safety net
Using existing frontends (Interoperability) 
  • Use of the common communication protocol XBoard, → (c)
  • Use of portable Java → (a)
Acceptable playing strength (Attractiveness) 
  • Integration of chess opening book libraries → (d)
  • implementation of minimax algorithm and a proper position evaluation → (e)
  • Integration tests with chess problems for tactics and mate positions
Quick response to opponent’s moves (Efficiency) 
  • Reactive extensions for concurrent calculation with newly found better moves as events → (f)
  • Optimization of minimax by alpha-beta pruning → (e)
  • Efficient domain model implementation
  • Integration tests with time limits

Small letters in brackets, e.g. → (x), link individual approaches from the right hand of the table to the following architectural overview diagram. The remaining section 4 introduces significant architectural aspects and refers to further information.

DokChess Architectural Overview Diagram Fig.: DokChess Architectural Overview Diagram