Tic-tac-toe is a classic case in the field of computer science,
though our primary goal here is to investigate software development
concepts and practices, and infer engineering-level indications
to formal methods and patterns of construction.
Go to TicTacToe 1.2.B
Go to TicTacToe 0.2.A / Docs
TicTacToe the project was started in mid 2005 as a case study for software engineering. Deliveries from iteration zero can be found in TicTacToe 0.2.A / Docs. These include a functional prototype and a product draft (by marucca).
As it may be apparent by comparing prototype 0.2.A to the current version (TicTacToe 1.2.B), user features have been just slightly improved and overall completed.
Those few improvements at the surface correspond to, and have required, the first actual engineering of the product, involving:
Below is a top-level design diagram mainly showing: the modules composing the system, their structural relationships, and the flow of control.
(Particularly, structural notation is very informal here because the overall architecture is still emerging, and because the underlying JavaScript implementation does not fit quite naturally into an object-oriented paradigm as implied by industry standard notations, namely UML - at least, to the best of our current knowledge!)
In orange are elements marked for revision or extension: these will be illustrated in the next section on open issues. An essential legenda is along the right side of the diagram (to download: right-click / save as...):
(This diagram is coupled with a high-level pseudo-class diagram,
and detailed state-transition diagrams for the few modules
with significant complexity, namely: GX_Board
,
GE_Controller
, and GX_View.Board
.
These diagrams are not provided here.)
Follows a reference list to the source files along with a summary description of the modules they package (to download: right-click / save as...):
GE_Controller
: "universal" game controllerGE_Model
: wrapper to concrete modelGE_APlayer
: wrapper to concrete playerGX_Board
: (tic-tac-toe) game modelGX_APlayer
: (tic-tac-toe) automatic playerGX_View
: (tic-tac-toe) game view contextGX_View.Board
: board widgetGX_View.Score
: score widgetGX_View.Info
: info widgetGX_View.Ctrl
: controls widgetGX_View.CtrlExt
: external controls widgetGX_Driver
: (tic-tac-toe) main game driverGX_Driver.Engine
: facade to engine systemGX_Driver.View
: facade to view system«Our primary goal here is to investigate software development concepts and practices, and infer engineering-level indications to formal methods and patterns of construction.»
The software process in place for TicTacToe follows a road-map to a radical agile approach where: [A] implementation drives design (forward engineering), and design supports back implementation (reverse engineering). This is called "implementation-driven development" (IDD).
There are some underlying open issues to this:
All these components are crucial to a deeper formalization and instrumentation of the (software) development process as a whole.
At the moment, these high-level requirements are informally tied to elements marked in orange within the TicTacToe top-level design diagram. These marks remind us of the areas promising immediate development:
GX_APlayer
:GE_Controller
:GX_View
:GX_View.CtrlExt
:GX_Driver
:Issued : 2007-01-05 00:00 GMT+1
Go to TicTacToe 1.2.B
Go to TicTacToe 0.2.A / Docs
© 2006-2015 Julio P. Di Egidio
All Rights Reserved
Updated : 2015-09-07 16:30 GMT+1 Created : 2007-01-05 00:00 GMT+1 --- END OF PAGE ---