User:BenMcDonald
From CSSEMediaWiki
Revision as of 09:45, 19 September 2009 by BenMcDonald (Talk | contribs)
Contents |
Ben McDoanld's page
I am doing my design study for my COSC426:Augmented Reality project. I need a design for a boxing skills trainer. No code has been written so far. I have made a sketch of the requirements for the design of the software. The project is in C++ using the libraries open scene graph (osg) and augmented reality tool-kit open scene graph (ARTosg)
Requirements:
- A score needs to be generated from a set of tested skills:
- Consistent guard
- Eyes forward and on opponent
- Bobbing and weaving
- Timing of punches
- Each skill needs to be modelled and the evaluation method for each skill also needs to be modelled.
- The performance on the skills needs to be evaluated and for additional activities to be recommended to the athlete.
- An athlete’s evaluation history, progress and general details to be recorded and recoverable.
Iteration One
Design:
- Subject - Observable
- ConcreteSubject - Athlete
- Observer - Observer
- ConcreteObserver - Trainer
Iteration Two
Design:
- Context - Trainer
- State - TrainingState
- ConcreteStates - PunchingDrill, BobbingAndWeaving
- Subject - Observable
- ConcreteSubject - Athlete
- Observer - Observer
- ConcreteObserver - Trainer
- Subject - Observable
- ConcreteSubject - Trainer
- Observer - Observer
- ConcreteObserver - TrainerAnimation
Maxims that have been useful:
- Command query separation - One plus of C++ is that you can mark queries, and enforce them, with the const keyword.
- Design by contract - Using assert's to enforce conditions at the moment