/*
 * UML C++ Class Definition
 *
 * Template
 *
 * +-Module Name-------------------------------------------------------------------------------------+
 * |
 * |
 * |
 * |
 * +-Attribute---------------------------------------------------------------------------------------+
 * |
 * |
 * |
 * |
 * |
 * |
 * +-Operations--------------------------------------------------------------------------------------+
 * |
 * |
 * |
 * |
 * |
 * |
 * +-------------------------------------------------------------------------------------------------+
 *
 * Formal Template   
 *
 * +--------------------------------------------------------------------------------------------------+
 * | Module Name Compartment
 * |
 * +--------------------------------------------------------------------------------------------------+
 * | Attribute Compartment
 * | 
 * | visibility name : type-expression = initial-value { property-string }
 * | 
 * +--------------------------------------------------------------------------------------------------+
 * | Operation Compartment
 * |
 * | visibility name ( parameter-list ) : return-type-expression { property-string }
 * |
 * |     parameter-list => name : type-expression = default-value
 * |
 * +--------------------------------------------------------------------------------------------------+ 
 *
 * N.B. Function scope is indicated by underlining the method/variable
 *
 * Examples
 *
 * +-Module--------------------------------------------+
 * |                      Car                          |
 * +-Attribute-----------------------------------------+
 * |                                                   |
 * | + registration number : char *                    |
 * | + data : struct CarData                           |
 * | figCounter : unsigned long                        |
 * | --------------------                              |
 * | + speed : int                                     |
 * | + direction : enum Direction                      |
 * |                                                   |
 * +-Operations----------------------------------------+
 * |                                                   |
 * | + drive(speed: float, direction : enum Direction) |
 * | + getData() : CarData                             |
 * |                                                   |
 * +---------------------------------------------------+ 
 *
 */


Author: Graeme Burnett    
Draft
  Last Updated :