Chess Server Design
CS 240 – Advanced Software Construction
HTTP Request
Chess Client
Web
Chess Server
HTTP Response
Clients
Console
Client
Web Browser
(Test Page)
Test Driver
(JUnit tests)
Server
Web API
Web Site
Relevant Specifications
Academic Integrity
Software Design Principles
Chess Server Data
User
User
User
User
Auth
Token
Auth
Token
Auth
Token
Game
Game
Game
Game
Chess Game
Chess Board
Chess Piece
Chess Move
…
+
Model
User
AuthToken
Game
Data Access
UserDao
AuthTokenDao
GameDao
Model
User
AuthToken
Game
Model
Data Access
Request/
Result
RegisterRequest
RegisterResult
LoginRequest
LoginResult
…
UserDao
AuthTokenDao
GameDao
User
AuthToken
Game
RegisterResult register(RegisterRequest r)
Clear Service
LoginResult login(LoginRequest r)
ClearResult clear()
Game Service
JoinResult join(JoinRequest r)
User Service
LogoutResult logout(LogoutRequest r)
CreateResult create(CreateRequest r)
Service Classes
ListResult list(ListRequest r)
Model Classes
Data Access Classes
Request/
Result Classes
RegisterRequest
RegisterResult
LoginRequest
LoginResult
…
UserDao
AuthTokenDao
GameDao
User
AuthToken
Game
Register Handler
Login Handler
Join Handler
Clear Handler
Server
Main Server Class
HTTP Handler Classes
RegisterResult register(RegisterRequest r)
Clear Service
LoginResult login(LoginRequest r)
ClearResult clear()
Game Service
JoinResult join(JoinRequest r)
User Service
LogoutResult logout(LogoutRequest r)
CreateResult create(CreateRequest r)
Service Classes
Logout Handler
Create Handler
ListResult list(ListRequest r)
List Handler
Frequently Asked Questions
Chess Server Design Assignment
(Phase 2)
Citations
Diagrams created by Ken Rodham