#
# UML Class Definition
#
# Template
#
# +-Class/Package Name-------------------------------------------------------------------------------+
# |
# |
# |
# |
# +-Attribute----------------------------------------------------------------------------------------+
# |
# |
# |
# |
# |
# |
# +-Operations---------------------------------------------------------------------------------------+
# |
# |
# |
# |
# |
# |
# +--------------------------------------------------------------------------------------------------+
#
# Formal Template
#
# +--------------------------------------------------------------------------------------------------+
# | Class 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. Class scope is indicated by underlining the method/variable
#
# Examples
#
# +-Class------------------------------------------+
# | Car |
# +-Attribute--------------------------------------+
# | |
# | + registration number : String |
# | + data : CarData |
# | figCounter : Integer |
# | -------------------- |
# | + speed : Integer |
# | + direction : Direction |
# | |
# +-Operations-------------------------------------+
# | |
# | + drive(speed: Integer, direction : Direction) |
# | + getData() : CarData |
# | |
# +------------------------------------------------+
#