DokChess breaks down in four subsystems as presented below. The dashed arrows represent logical dependencies between the subsystems (“x -> y” for “x depends on y”). The squared boxes on the membrane of the system are interaction points (“ports”) with the outside world (→ 3.2 Deployment Context).
Fig.: DokChess, building block view, level 1
|Text UI||Realizes communication with a client using the XBoard protocol.|
|Rules||Provides the rules of chess and for instance can determine all valid moves for a position.|
|Engine||Contains the determination of a next move starting from a game situation.|
|Opening||Provides standard moves of the chess opening literature for a game situation.|
Table: Subsystems overview of DokChess
Section → 6.1 “Move Determination Walkthrough” contains an example of the interaction between the subsystems at runtime.