Menu

CURRENT PROJECT PLANS

Phase 1 – (Jan 2007) Improve existing solution without adding any major new functionality
1. (50% complete) Remove the need for the special compiler (javaprec), by:
a. Retrieving source for methods directly from un-compiled *.java source and thereby remove the need to produce the XML files
b. Use AspectJ to control the execution of altered methods and thereby remove the need to insert extra code in every method
2. (80% complete) Improve display of objects (the tree structure at top)
a. Display information about constructors and inner classes
b. Improve the “history” (backwards / forwards) functionality by integrating it into the object structure tree so that field can expand into a completely new sub-tree
3. (15% complete) Refactor clean-up and improve existing code
4. Improve performance
a. Use a tool such as JProfiler to identify bottle necks and hot spots
5. Perform extensive testing to reduce bugs

During phase 1 I also have someone else who is responsible for putting together use cases, requirements, design documentation (UML, etc), estimates, and a project plan. This will help to organise the project, increasing the chance of the correct requirements and changes being made according to their priority.

Phase 2 – (April 2007) Investigate other options for executing altered methods
1. Investigate alternatives to BeanShell, such as:
a. Compiling the altered methods into actual byte code, for example make use of Jakarta Byte Code Engineering Library (BCEL) http://jakarta.apache.org/bcel/ or Javassist http://www.csg.is.titech.ac.jp/~chiba/javassist/
b. Other interpreters such as
i. DynamicJava http://koala.ilog.fr/djava/
ii. Groovy http://groovy.codehaus.org/
iii. Pnuts https://pnuts.dev.java.net/

Phase 3 – (August 2007) Provide profiling information
6. Add profiling information as graphs, table, etc using features available in JVM and integrating other open source project. This will provide information, such as:
a. memory allocation, hot spots, etc
b. CPU utilisation, hot spots, etc
c. Diagrammatic method call graphs

Phase 4 – (January 2008) Add debugging functionality
7. Add debugging functionality to allow programmes to be stopped and break points and the code to step forwards and backwards. For this too I intend on leveraging any opens source project currently available.

Posted by James D Bloom 2006-08-12

Log in to post a comment.