CyTerm 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;"