jGRASP is a lightweight development environment, created specifically to provide automatic generation of software visualizations to improve the comprehensibility of software. jGRASP is implemented in Java, and runs on all platforms with a Java Virtual Machine (Java version 1.5 or higher). jGRASP produces Control Structure Diagrams (CSDs) for Java, C, C++, Objective-C, Python, Ada, and VHDL; Complexity Profile Graphs (CPGs) for Java and Ada; UML class diagrams for Java; and has dynamic object viewers and a viewer canvas that work in conjunction with an integrated debugger and workbench for Java. The viewers include a data structure identifier mechanism which recognizes objects that represent traditional data structures such as stacks, queues, linked lists, binary trees, and hash tables, and then displays them in an intuitive textbook-like presentation view.
jGRASP is developed by the Department of Computer Science and Software Engineering in the Samuel Ginn College of Engineering at Auburn University.
Note on Tutorials
We are in the process of updating the tutorials for jGRASP 2.0. The four updated tutorials that are available now cover most of the new features.
Version 2.0.1 adds CSD support for Java 8 syntax. CPG, UML, Interactions, Workbench, and debugger Eval table have not yet been updated for Java 8. These items will be completed in the next few months.
Version 2.0.0_16 adds full support for Unicode path names when compiling or running Cygwin programs on Windows.
Version 2.0.0_08 introduces basic support for Java 8. It should run correctly under Java 8 and all functions should work correctly for code compiled under Java 8 unless it has new Java 8 features.
Version 2.0.0_08 has much better display speed when running under Java 7 on most Mac OS X systems. Fonts should now be sized similarly to native applications on OS X when running under Java 7 update 40 and higher.
New Features in jGRASP 2.0.0
A new Viewer Canvas for Java that allows multiple viewers to be placed in one window, and the open viewers and viewer settings to be saved to file and to persist between debugging sessions.
Unicode support with the ability to manually specify the encoding (if something other than the system default is needed) when opening or saving a file.
Support for Python, including CSD generation.
Project management for C, C++, Objective-C, and Ada: the ability to compile and link multiple files without creating a makefile and support for separate source and binary directories.
Changes to the CSD so that with the CSD removed the code is formatted with standard 3 space indentation. There are no longer 3 leading spaces on all code. Exception handlers no longer have an "extra" level of indentation. The new CSD generator will attempt to correct for code with leading space (code indented with CSD generation in older versions of jGRASP) and for code with an indent size different from 3 spaces.
The development of jGRASP has been supported by a research grant from the National Science Foundation.
The development of previous versions of GRASP was supported by research grants from NASA Marshall Space Flight Center, the Department of Defense Advanced Research Projects Agency (ARPA), and the Defense Information Systems Agency (DISA).
Copyright © 2014 Auburn University