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.