Chisel 
logo  Computer Human Interaction & Software 
Engineering Lab





Intro | Publications | Media


Intro



Understanding the engineering behind modern software can be a great challenge. Programs today consist of millions of lines of code, spread over thousands of files. Even with access to source code, there are many barriers to meaningful comprehension of even small parts of the software. Our Diver tools and techniques to help alleviate those problems.

Diver is a set of tools that enhances the Eclipse IDE and allows developers to incorporate advanced reverse engineering techniques into their every day work. It uses combined static and dynamic analysis to help developers understand the software that they are working on. It allows developers to easily trace program execution, filter Eclipse views based on traces, and compare the differences between traces. Traces can also be viewed in an advanced sequence diagram view called the Sequence Explorer.

Built on top of the SWT framework from Eclipse and using the the patterns forged by JFace and Zest, the Sequence Explorer offers clean, robust, and efficient ways to visualize the flow of software using familiar UML Sequence Diagram Notation.

Diver is 100% free and open source. The project is hosted on sourceforge, and can be found at http://diver.sf.net.


Click to enlarge ...


Click to enlarge ...

Publications


A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams

Bennet, C., D. Myers, M.-A. Storey, D.M. German, D. Ouellet, M. Salois, P. Charland,"A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams," J. Softw. Maint. Evol. 20, 4 (Jul. 2008), 291-315.

Working with 'monster' traces: Building a scalable, usable, sequence viewer. Bennet, C. D. Myers, M.-A. Storey, D. German ">Working with 'monster' traces: Building a scalable, usable, sequence viewer." in Proceedings of the 3rd International Workshop on Program Comprehension Through Dynamic Analysis (PCODA). Technical Report TUD-SERG-2007-022. Delft University of Technology: Vancouver, Canada, 2007; 1-5.

Utilizing debug information to compact loops in large execution traces
Myers, D. M.-A. Storey, M. Salois, P. Charland,"Utilizing debug information to compact loops in large execution traces." Proc. of the 14th European Conf. on Software Maintenance and Re-engineering (March. 2010), 41-50.

Media



Sequence Diagram Demo Video (Requires the TechSmith Screen Capture Codec to view)