CyTerm programming guidelines

Author: Chris Turner,

Programming Guidelines

Use the java 1.2 JDK. Use javadoc comments. Choose classnames carefully and document the roles and responsibilities of each class. Provide hyperlinks to the design documentation. Ensure traceability from implementation to design, analysis and use cases. Document design or implementation decisions. Follow the OO Software construction methods of Betrand Meyer (ISBN 0-13-629049-3 ISBN 0-13-629031-0 PBK).

If the complexity warrants the addition of QA related features.

Please code a non-optimised version of any optimised code and make this available guarded by a class member called "public static boolean n3oOpt=false;". Provide a test harness as a separate class with a name starting with "T3est".  The insertion of "3" into the names are to reduce the possibility of name conflict with other members and allow automated global editing of source code to make a production or debug release.

Checking of preconditions should be guarded by a  member called "public final static boolean c3heckPre=true;".
Similarly postconditions should be guarded by a members with name "public final static boolean c3heckPost=false;".
Class invariants may be checked via a method called "public boolean c3heckInvariant()". This method returns true if instance passes checks.
Trace messages should be sent to the "public static PrintStream Trace.ts"  guarded by the class member "public final static boolean t3race=false;"