CyTerm design guidelines
Follow the Objectory method detailed in Rational's Objectory (now RUP)
process and further detailed in Ivar Jacobsons book "Object Oriented Software
Engineering" ISBN 0-201-54435-0.
Design for robustness to change.
Permit the system to be extended/varied/localised by using inheritence.
This will mean using objects via an abstract interface, and using factories
when instantiating objects.