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
Subsystem | Short description |
---|---|
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.