| jGRASP | |
|---|---|
jGRASP running onWindows XP | |
| Developer | jGRASP Team |
| Stable release | 2.0.6_17 / December 20, 2024; 10 months ago (2024-12-20) |
| Platform | Java SE |
| Type | Java IDE |
| License | License,freeware |
| Website | http://www.jgrasp.org/ |
jGRASP is adevelopment environment that includes the automatic creation ofsoftware visualizations. It produces static visualizations of source code structure and visualizations ofdata structures at runtime.[1]
The runtime data structure visualizations are also available as plugins forIntelliJ IDEA,Android Studio, andEclipse.
jGRASP is implemented inJava, and runs on all platforms with aJava Virtual Machine (Java version 1.8 or higher). GRASP (Linux, UNIX) and pcGRASP (Windows) are written in C/C++, whereas jGRASP is written in Java (the "j" in jGRASP means it runs on the JVM). The jGRASP web site offers downloads forWindows,Mac OS, and as a genericZIP file suitable forLinux and other systems.
For languages other than Java and Kotlin, jGRASP is asource code editor and basic IDE. It can be configured to work with most free and commercial compilers for any programming language.
TheControl structure diagram[2][3] (CSD) is a control flow diagram that fits into the space normally taken by indentation in source code. Its purpose is to improve the readability of source code. jGRASP produces CSDs for Java,C,C++,Objective-C,Ada, andVHDL. The editing window provides CSD-basedfolding and a "context hint" feature that displays the first line of a code structure that is off-screen when the mouse is hovered over its CSD structure.
The Java/Kotlin object viewers[4][5] in jGRASP provide interface-based, structural, and other views ofdata structures and other objects and primitives during debugging and workbench operations. For example, a content-based view shows ArrayList and LinkedList in an identical way, as a list of elements. Structural views show the internal structure oftrees,linked lists,hash tables, etc. Structural views of linked data structures display local variable nodes and their relation to the main structure. The result is animated when changes occur, as when a node is added to a linked list. Common data structures are automatically identified and displayed structurally. Other viewers show, for example, acolor swatch for a Color, the image for an icon, and the binary details of a double. Multiple viewers can be combined on a single viewer canvas window and the contents can be saved to file.
The Complexity Profile Graph[6] (CPG) is a statement-level complexity diagram. Its purpose is to aid in identifying overly complex areas of source code. jGRASP generates CPGs for both Java and Ada. The metric includes common measures, such asreachability and content complexity, which can be displayed individually.
jGRASP also generatesUML diagrams for Java, with interactive dependency information.
jGRASP was created by James Cross and Larry Barowski at the Department of Computer Science and Software Engineering in the Samuel Ginn College of Engineering atAuburn University. It is maintained and evaluated by the jGRASP Team. The development of jGRASP has been supported by a research grant from theNational Science Foundation.
The development of previous versions of GRASP was supported by research grants fromNASAMarshall Space Flight Center, the Department of Defense Advanced Research Projects Agency (DARPA), and the Defense Information Systems Agency (DISA).