TODO list for IDebug

  • Rename method Assert.assert and all temporary variables named assert so as not to conflict with the new JDK 1.4 keyword.
  • Add a find dialog to WindowOutput.
  • Consider renaming Assert class (so as not to conflict with jUnit) and change use of variable "assert" to something else (so as not to conflict with the new "assert" keyword in JDK 1.4.
  • Document default bindings (page up/down, etc.) in WindowOutput for scrolling the textarea.
  • Review ASSERTION and LOGGER class diagrams.
  • Document overridding methodology for DebugOutput. (i.e. printMsg methods)
  • Design and document Report objects for statistics reporting which are mentioned in Collect and related classes.
  • Jass question - can an abstract class implement Cloneable and have changeonly{} ensures clauses? What would be the point and semantics?
  • Check order of all javadoc tags (alphabetical).
  • Recheck visibility of all class attributes.
  • Check that every method labeled with QUERY has a changeOnly{} postcondition.
  • Recheck default semantics on Object methods and insert comment for such in all classes.
  • Move all inherited Object methods (e.g. clone) to top of inherited methods list.
  • Validate all XHTML/CSS.
  • Factor out string formatting in various DebugOutput classes.
  • Make test suite exercise every existing DebugOutput implementation.
  • Write detailed Users Guide documentation on the use of the statistics subsystem.
  • Write more implementations of the DebugOutput interface. Suggestions:
    • DebugOutputDB --- used to log debugging messages to a database via standard JDBC.
    • DebugOutputEventSource --- send messages to arbitrary listeners within a Java virtual machine (perhaps as part of a compositional Java Beans-based application).
    • DebugOutputFrame --- to send debugging messages to an arbitrary frame within a larger GUI.
    • DebugOutputLog --- to persistently log messages for off-line debugging.
    • DebugOutputMessager --- send messages via a JMS-conformant messaging infrastructure to a/some remote objects.
    • DebugOutputRemoteEventSource --- to provide debugging messages as distributed events (perhaps as part of a Jini application).
    • DebugOutputSpace --- store debugging events in a JavaSpace.
  • Integrate with Dan Zimmerman's UberNet to show an example of call stack currying.
  • Separate @author through @version information from @see and other specification.
  • Add more tests to blackbox test suite:
    • Statistics testing.
  • Improvements on code standard and specification semantics:
    • Indicate type of objects.
    • Indicate valid state of object (non-null, non-empty, etc.).
    • Indicate that invariants are valid in postcondition.
  • Look up work of Baskar Sridharan (Purdue University) for ideas. He presented a paper at the TDCS workshop at ICSE-99 entitled "An Extensible Framework for Monitoring and Controlling CORBA-Based Distributed Systems".
  • Consider integration with new assert proposed Java extension.