Simple Architecture Verification
- by Jean Carlos Suárez Marranzini
I just made an architecture for an application with the function of scoring, saving and loading tennis games.
The architecture has 2 kinds of elements: components & layers.
Components: Standalone elements that can be consumed by other components or by layers. They might also consume functionality from the model/bottom layer.
Layers: Software components whose functionality rests on previous layers (except for the model layer).
-Layers:
-Models: Data and it's behavior.
-Controllers: A layer that allows interaction between the views and the models.
-Views: The presentation layer for interacting with the user.
-Components:
-Persistence: Makes sure the game data can be stored away for later retrieval.
-Time Machine: Records changes in the game through time so it's possible to navigate the game back and forth.
-Settings: Contains the settings that determine how some of the game logic will apply.
-Game Engine: Contains all the game logic, which it applies to the game data to determine the path the game should take.
This is an image of the architecture (I don't have enough rep to post images):
http://i49.tinypic.com/35lt5a9.png
The requierements which this architecture should satisfy are the following:
Save & load games.
Move through game history and see how the scoreboard changes as the
game evolves.
Tie-breaks must be properly managed.
Games must be classified by hit-type.
Every point can be modified.
Match name and player names must be stored.
Game logic must be configurable by the user.
I would really appreciate any kind of advice or comments on this architecture. To see if it is well built and makes sense as a whole.
I took the idea from this link.
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller