Knowledge (XXG)

jGRASP

Source 📝

24: 33: 252:, 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, a 259:
The Complexity Profile Graph (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 as
239:
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 of
173:(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 for 462: 208:(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, 256:
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.
1934: 455: 318: 279:
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 at
1963: 1941: 448: 1901: 302: 232:
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.
471: 306: 136: 95: 1968: 1758: 1170: 1165: 1160: 1155: 1150: 1145: 1140: 1135: 1130: 728: 1026: 1462: 1322: 298: 692: 435: 288: 166: 62: 221: 196:
and basic IDE. It can be configured to work with most free and commercial compilers for any programming language.
1772: 1312: 268: 205: 1299: 766: 479: 209: 921: 602: 1753: 1354: 1007: 140: 1611: 1099: 893: 697: 241: 253: 401: 1781: 1593: 1476: 1420: 1331: 1257: 1219: 1040: 984: 775: 492: 170: 1192: 90: 1800: 1794: 1490: 1438: 1400: 1048: 1002: 997: 935: 798: 640: 607: 520: 235:
The Java/Kotlin object viewers in jGRASP provide interface-based, structural, and other views of
193: 159: 78: 402:
An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE
1973: 1789: 1539: 1521: 1395: 1375: 992: 574: 280: 182: 174: 1873: 1570: 1200: 570: 102: 388: 1828: 1679: 1531: 1349: 1081: 864: 743: 627: 236: 144: 414: 579: 375: 1560: 1433: 1115: 941: 819: 686: 155: 440: 1957: 1858: 1707: 1687: 1669: 1565: 1503: 1467: 1410: 1089: 1071: 1053: 1012: 883: 831: 813: 669: 658: 612: 597: 535: 362: 151: 294:
The development of previous versions of GRASP was supported by research grants from
23: 1868: 1748: 1555: 1125: 951: 738: 635: 565: 505: 261: 245: 229: 143:. It produces static visualizations of source code structure and visualizations of 747: 1915: 1733: 1728: 1654: 1484: 1380: 1285: 1265: 1237: 1184: 1120: 910: 733: 646: 500: 249: 217: 32: 1920: 1910: 1818: 1738: 1495: 1385: 1242: 975: 854: 560: 46: 38: 1836: 1697: 1664: 1631: 1601: 1443: 1359: 1280: 1094: 931: 888: 880: 875: 808: 723: 702: 664: 651: 515: 287:. The development of jGRASP has been supported by a research grant from the 150:
The runtime data structure visualizations are also available as plugins for
1810: 1692: 1646: 1626: 1616: 1513: 1448: 1390: 1270: 1247: 1232: 1063: 960: 945: 925: 916: 841: 826: 589: 555: 550: 545: 510: 111: 1863: 1702: 1428: 1307: 1275: 674: 540: 83: 1891: 1883: 1743: 1659: 1621: 1405: 1339: 1227: 793: 783: 752: 718: 178: 483: 430: 363:
Visual Support for Incremental Abstraction and Refinement in Ada 95
213: 1584: 1364: 956: 803: 788: 679: 617: 530: 525: 284: 186: 107: 1850: 1712: 1636: 1344: 1030: 295: 225: 444: 301:, the Department of Defense Advanced Research Projects Agency ( 1606: 1210: 51: 264:
and content complexity, which can be displayed individually.
271:
diagrams for Java, with interactive dependency information.
376:
GRASP/Ada 95: Visualization with Control Structure Diagrams
338: 121: 192:
For languages other than Java and Kotlin, jGRASP is a
1900: 1882: 1849: 1827: 1809: 1780: 1771: 1721: 1678: 1645: 1592: 1583: 1548: 1530: 1512: 1475: 1461: 1419: 1330: 1321: 1298: 1256: 1218: 1209: 1183: 1108: 1080: 1062: 1039: 1025: 983: 974: 902: 863: 840: 774: 765: 711: 626: 588: 491: 478: 117: 101: 89: 77: 61: 45: 319:Comparison of integrated development environments 305:), and the Defense Information Systems Agency ( 456: 8: 415:Visualization and Measurement of Source Code 16: 1777: 1589: 1472: 1327: 1215: 1036: 980: 771: 488: 463: 449: 441: 389:Dynamic Object Viewers for Data Structures 31: 22: 15: 283:. It is maintained and evaluated by the 228:. The editing window provides CSD-based 139:that includes the automatic creation of 1146:Visual Studio Express for Windows Phone 330: 436:Videos about Java jGrasp on MrBool.com 7: 1964:Integrated development environments 472:Integrated development environments 169:, and runs on all platforms with a 14: 68:2.0.6_16 / February 5, 2024 1: 944:(aka Espresso, superseded by 1136:Visual Web Developer Express 299:Marshall Space Flight Center 693:Rational Software Architect 289:National Science Foundation 1990: 1929: 1313:R Tools for Visual Studio 206:Control Structure Diagram 165:jGRASP is implemented in 73: 57: 30: 21: 1670:Visual Studio Community 1632:VisualFBEditor / WinFBE 1072:Visual Studio Community 922:Sun Java Studio Creator 613:Visual Studio Community 603:Oracle Developer Studio 141:software visualizations 137:development environment 1969:Java development tools 267:jGRASP also generates 122:http://www.jgrasp.org/ 1612:Microsoft Small Basic 1759:Visual Basic Express 1131:Visual Basic Express 171:Java Virtual Machine 1193:Adobe Flash Builder 1171:Express for Windows 1161:Express for Desktop 189:and other systems. 181:, and as a generic 18: 1795:Visual Studio Code 1439:Visual Studio Code 1401:Visual Studio Code 1151:Visual C++ Express 1049:Visual Studio Code 998:Visual Studio Code 816:Community Edition 729:Visual C++ Express 608:Visual Studio Code 339:"jGRASP Home Page" 194:source code editor 185:file suitable for 37:jGRASP running on 1951: 1950: 1845: 1844: 1767: 1766: 1579: 1578: 1457: 1456: 1294: 1293: 1179: 1178: 1156:Visual C# Express 1141:Visual J# Express 1021: 1020: 970: 969: 761: 760: 281:Auburn University 127: 126: 1981: 1874:Powerflasher FDT 1778: 1590: 1522:Delphi Community 1473: 1328: 1216: 1201:Powerflasher FDT 1037: 981: 772: 489: 465: 458: 451: 442: 431:Official website 418: 411: 405: 398: 392: 385: 379: 372: 366: 359: 353: 352: 350: 349: 335: 35: 26: 19: 1989: 1988: 1984: 1983: 1982: 1980: 1979: 1978: 1954: 1953: 1952: 1947: 1925: 1896: 1878: 1841: 1823: 1805: 1763: 1717: 1674: 1641: 1575: 1544: 1526: 1508: 1466: 1453: 1415: 1317: 1290: 1252: 1205: 1175: 1166:Express for Web 1104: 1076: 1058: 1017: 966: 934:(superseded by 924:(superseded by 898: 859: 836: 757: 744:Borland Turbo C 707: 622: 584: 474: 469: 427: 422: 421: 412: 408: 399: 395: 386: 382: 373: 369: 360: 356: 347: 345: 337: 336: 332: 327: 315: 277: 237:data structures 202: 145:data structures 129: 69: 41: 12: 11: 5: 1987: 1985: 1977: 1976: 1971: 1966: 1956: 1955: 1949: 1948: 1946: 1945: 1938: 1930: 1927: 1926: 1924: 1923: 1918: 1913: 1906: 1904: 1898: 1897: 1895: 1894: 1888: 1886: 1880: 1879: 1877: 1876: 1871: 1866: 1861: 1855: 1853: 1847: 1846: 1843: 1842: 1840: 1839: 1833: 1831: 1825: 1824: 1822: 1821: 1815: 1813: 1807: 1806: 1804: 1803: 1798: 1792: 1786: 1784: 1775: 1769: 1768: 1765: 1764: 1762: 1761: 1756: 1751: 1746: 1741: 1736: 1731: 1725: 1723: 1719: 1718: 1716: 1715: 1710: 1705: 1700: 1695: 1690: 1684: 1682: 1676: 1675: 1673: 1672: 1667: 1662: 1657: 1651: 1649: 1643: 1642: 1640: 1639: 1634: 1629: 1624: 1619: 1614: 1609: 1604: 1598: 1596: 1587: 1581: 1580: 1577: 1576: 1574: 1573: 1568: 1563: 1561:Virtual Pascal 1558: 1552: 1550: 1546: 1545: 1543: 1542: 1536: 1534: 1528: 1527: 1525: 1524: 1518: 1516: 1510: 1509: 1507: 1506: 1501: 1498: 1493: 1488: 1481: 1479: 1470: 1459: 1458: 1455: 1454: 1452: 1451: 1446: 1441: 1436: 1434:PythonAnywhere 1431: 1425: 1423: 1417: 1416: 1414: 1413: 1408: 1403: 1398: 1393: 1388: 1383: 1378: 1373: 1370: 1367: 1362: 1357: 1352: 1347: 1342: 1336: 1334: 1325: 1319: 1318: 1316: 1315: 1310: 1304: 1302: 1296: 1295: 1292: 1291: 1289: 1288: 1283: 1278: 1273: 1268: 1262: 1260: 1254: 1253: 1251: 1250: 1245: 1240: 1235: 1230: 1224: 1222: 1213: 1207: 1206: 1204: 1203: 1198: 1195: 1189: 1187: 1181: 1180: 1177: 1176: 1174: 1173: 1168: 1163: 1158: 1153: 1148: 1143: 1138: 1133: 1128: 1123: 1118: 1116:Xamarin Studio 1112: 1110: 1106: 1105: 1103: 1102: 1097: 1092: 1086: 1084: 1078: 1077: 1075: 1074: 1068: 1066: 1060: 1059: 1057: 1056: 1051: 1045: 1043: 1034: 1023: 1022: 1019: 1018: 1016: 1015: 1010: 1005: 1000: 995: 989: 987: 978: 972: 971: 968: 967: 965: 964: 954: 949: 939: 929: 919: 914: 906: 904: 900: 899: 897: 896: 891: 886: 878: 873: 869: 867: 861: 860: 858: 857: 852: 846: 844: 838: 837: 835: 834: 829: 824: 823: 822: 820:Android Studio 811: 806: 801: 796: 791: 786: 780: 778: 769: 763: 762: 759: 758: 756: 755: 750: 741: 736: 731: 726: 721: 715: 713: 709: 708: 706: 705: 700: 695: 689: 687:LabWindows/CVI 684: 683: 682: 677: 672: 661: 656: 655: 654: 649: 638: 632: 630: 624: 623: 621: 620: 615: 610: 605: 600: 594: 592: 586: 585: 583: 582: 577: 568: 563: 558: 553: 548: 543: 538: 533: 528: 523: 518: 513: 508: 503: 497: 495: 486: 476: 475: 470: 468: 467: 460: 453: 445: 439: 438: 433: 426: 425:External links 423: 420: 419: 406: 393: 380: 367: 354: 343:www.jgrasp.org 329: 328: 326: 323: 322: 321: 314: 311: 276: 273: 201: 200:Visualizations 198: 156:Android Studio 125: 124: 119: 115: 114: 105: 99: 98: 93: 87: 86: 81: 75: 74: 71: 70: 67: 65: 63:Stable release 59: 58: 55: 54: 49: 43: 42: 36: 28: 27: 13: 10: 9: 6: 4: 3: 2: 1986: 1975: 1972: 1970: 1967: 1965: 1962: 1961: 1959: 1944: 1943: 1939: 1937: 1936: 1932: 1931: 1928: 1922: 1919: 1917: 1914: 1912: 1908: 1907: 1905: 1903: 1899: 1893: 1890: 1889: 1887: 1885: 1881: 1875: 1872: 1870: 1867: 1865: 1862: 1860: 1859:IntelliJ IDEA 1857: 1856: 1854: 1852: 1848: 1838: 1835: 1834: 1832: 1830: 1826: 1820: 1817: 1816: 1814: 1812: 1808: 1802: 1799: 1796: 1793: 1791: 1788: 1787: 1785: 1783: 1779: 1776: 1774: 1770: 1760: 1757: 1755: 1752: 1750: 1747: 1745: 1742: 1740: 1737: 1735: 1732: 1730: 1727: 1726: 1724: 1720: 1714: 1711: 1709: 1708:Liberty BASIC 1706: 1704: 1701: 1699: 1696: 1694: 1691: 1689: 1688:Visual Studio 1686: 1685: 1683: 1681: 1677: 1671: 1668: 1666: 1663: 1661: 1658: 1656: 1653: 1652: 1650: 1648: 1644: 1638: 1635: 1633: 1630: 1628: 1625: 1623: 1620: 1618: 1615: 1613: 1610: 1608: 1605: 1603: 1600: 1599: 1597: 1595: 1591: 1588: 1586: 1582: 1572: 1569: 1567: 1566:Borland Kylix 1564: 1562: 1559: 1557: 1554: 1553: 1551: 1547: 1541: 1538: 1537: 1535: 1533: 1529: 1523: 1520: 1519: 1517: 1515: 1511: 1505: 1504:PascalABC.NET 1502: 1499: 1497: 1494: 1492: 1489: 1486: 1483: 1482: 1480: 1478: 1474: 1471: 1469: 1468:Object Pascal 1464: 1460: 1450: 1447: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1426: 1424: 1422: 1418: 1412: 1411:DevEco Studio 1409: 1407: 1404: 1402: 1399: 1397: 1394: 1392: 1389: 1387: 1384: 1382: 1379: 1377: 1374: 1371: 1368: 1366: 1363: 1361: 1358: 1356: 1353: 1351: 1348: 1346: 1343: 1341: 1338: 1337: 1335: 1333: 1329: 1326: 1324: 1320: 1314: 1311: 1309: 1306: 1305: 1303: 1301: 1297: 1287: 1284: 1282: 1279: 1277: 1274: 1272: 1269: 1267: 1264: 1263: 1261: 1259: 1255: 1249: 1246: 1244: 1241: 1239: 1236: 1234: 1231: 1229: 1226: 1225: 1223: 1221: 1217: 1214: 1212: 1208: 1202: 1199: 1196: 1194: 1191: 1190: 1188: 1186: 1182: 1172: 1169: 1167: 1164: 1162: 1159: 1157: 1154: 1152: 1149: 1147: 1144: 1142: 1139: 1137: 1134: 1132: 1129: 1127: 1124: 1122: 1119: 1117: 1114: 1113: 1111: 1107: 1101: 1098: 1096: 1093: 1091: 1090:Visual Studio 1088: 1087: 1085: 1083: 1079: 1073: 1070: 1069: 1067: 1065: 1061: 1055: 1054:PascalABC.NET 1052: 1050: 1047: 1046: 1044: 1042: 1038: 1035: 1032: 1028: 1024: 1014: 1013:DevEco Studio 1011: 1009: 1006: 1004: 1001: 999: 996: 994: 991: 990: 988: 986: 982: 979: 977: 973: 962: 958: 955: 953: 950: 947: 943: 940: 937: 933: 930: 927: 923: 920: 918: 915: 912: 908: 907: 905: 901: 895: 892: 890: 887: 885: 884:IntelliJ IDEA 882: 879: 877: 874: 871: 870: 868: 866: 862: 856: 853: 851: 848: 847: 845: 843: 839: 833: 832:DevEco Studio 830: 828: 825: 821: 818: 817: 815: 814:IntelliJ IDEA 812: 810: 807: 805: 802: 800: 797: 795: 792: 790: 787: 785: 782: 781: 779: 777: 773: 770: 768: 764: 754: 751: 749: 745: 742: 740: 737: 735: 732: 730: 727: 725: 722: 720: 717: 716: 714: 710: 704: 701: 699: 696: 694: 690: 688: 685: 681: 678: 676: 673: 671: 670:IntelliJ IDEA 668: 667: 666: 662: 660: 659:Visual Studio 657: 653: 650: 648: 645: 644: 642: 639: 637: 634: 633: 631: 629: 625: 619: 616: 614: 611: 609: 606: 604: 601: 599: 598:DevEco Studio 596: 595: 593: 591: 587: 581: 578: 576: 572: 569: 567: 564: 562: 559: 557: 554: 552: 549: 547: 544: 542: 539: 537: 536:GNOME Builder 534: 532: 529: 527: 524: 522: 519: 517: 514: 512: 509: 507: 504: 502: 499: 498: 496: 494: 490: 487: 485: 481: 477: 473: 466: 461: 459: 454: 452: 447: 446: 443: 437: 434: 432: 429: 428: 424: 416: 410: 407: 403: 397: 394: 390: 384: 381: 377: 371: 368: 364: 358: 355: 344: 340: 334: 331: 324: 320: 317: 316: 312: 310: 308: 304: 300: 297: 292: 290: 286: 282: 274: 272: 270: 265: 263: 257: 255: 251: 247: 243: 238: 233: 231: 227: 223: 219: 215: 211: 207: 199: 197: 195: 190: 188: 184: 180: 176: 172: 168: 163: 161: 157: 153: 152:IntelliJ IDEA 148: 146: 142: 138: 134: 130: 123: 120: 116: 113: 109: 106: 104: 100: 97: 94: 92: 88: 85: 82: 80: 76: 72: 66: 64: 60: 56: 53: 50: 48: 44: 40: 34: 29: 25: 20: 1940: 1933: 1869:Sublime Text 1754:Visual Basic 1749:SharpDevelop 1722:Discontinued 1556:Turbo Pascal 1549:Discontinued 1197:FlashDevelop 1126:SharpDevelop 1109:Discontinued 913:Pro for Java 903:Discontinued 849: 739:SharpDevelop 712:Discontinued 506:Code::Blocks 409: 396: 383: 370: 357: 346:. Retrieved 342: 333: 293: 278: 266: 262:reachability 258: 254:color swatch 246:linked lists 234: 203: 191: 164: 149: 147:at runtime. 132: 131: 128: 47:Developer(s) 1916:Eclipse Che 1782:Open source 1734:MonoDevelop 1729:CA-Realizer 1655:FutureBASIC 1594:Open source 1571:QuickPascal 1485:Free Pascal 1477:Open source 1421:Proprietary 1381:Komodo Edit 1355:Light Table 1332:Open source 1286:Zend Studio 1266:Codelobster 1258:Proprietary 1238:Komodo Edit 1220:Open source 1121:MonoDevelop 1041:Open source 985:Open source 942:Visual Café 911:CodeWarrior 909:Metrowerks 776:Open source 734:MonoDevelop 647:CodeWarrior 501:Arduino IDE 493:Open source 285:jGRASP Team 250:hash tables 218:Objective-C 52:jGRASP Team 1958:Categories 1935:Comparison 1921:SourceLair 1911:Cloud9 IDE 1819:Cloud9 IDE 1739:QuickBASIC 1496:Dev-Pascal 1386:Komodo IDE 1369:PyScripter 1243:Komodo IDE 1100:Understand 976:JavaScript 952:Visual J++ 894:Understand 855:JDeveloper 698:Understand 636:C++Builder 580:OpenWatcom 561:Qt Creator 348:2020-06-01 325:References 39:Windows XP 1698:PureBasic 1602:Basic-256 1444:SlickEdit 1360:Ninja-IDE 1281:SlickEdit 932:VisualAge 889:SlickEdit 881:JetBrains 876:MyEclipse 809:Greenfoot 724:VisualAge 703:SlickEdit 665:JetBrains 652:MyEclipse 1974:Freeware 1942:Category 1811:Freeware 1797:(VSCode) 1693:NS Basic 1647:Freeware 1627:Basic4GL 1617:SdlBasic 1514:Freeware 1449:Wing IDE 1391:KDevelop 1271:PhpStorm 1248:KDevelop 1233:NetBeans 1064:Freeware 1008:Chromium 961:NetBeans 959:(became 946:JBuilder 926:NetBeans 917:JBuilder 872:JCreator 842:Freeware 827:NetBeans 590:Freeware 556:QDevelop 551:NetBeans 546:KDevelop 511:CodeLite 313:See also 112:freeware 96:Java IDE 79:Platform 1864:VS Code 1801:Eclipse 1703:GLBasic 1665:thinAir 1491:Lazarus 1429:PyCharm 1308:RStudio 1276:PHPEdit 936:Eclipse 799:Eclipse 675:AppCode 643:-based 641:Eclipse 541:Kakoune 521:Eclipse 516:Dev-C++ 275:History 230:folding 175:Windows 160:Eclipse 118:Website 108:License 103:License 84:Java SE 1902:Online 1892:Poplog 1884:POP-11 1837:GoLand 1829:Retail 1744:QBasic 1680:Retail 1660:RapidQ 1637:InForm 1622:Gambas 1540:Delphi 1532:Retail 1463:Pascal 1406:Thonny 1376:Spyder 1340:Anjuta 1323:Python 1228:Aptana 1082:Retail 865:Retail 850:jGRASP 794:DrJava 784:Anjuta 753:QuickC 719:Anjuta 628:Retail 566:TheIDE 224:, and 179:Mac OS 158:, and 133:jGRASP 17:jGRASP 1585:BASIC 1500:GNAVI 1365:PyDev 1185:Flash 1095:Rider 957:Xelfi 804:Geany 789:BlueJ 680:CLion 618:Xcode 531:Geany 526:Emacs 303:DARPA 242:trees 187:Linux 135:is a 1909:AWS 1851:Haxe 1713:Xojo 1372:PIDA 1350:Eric 1345:IDLE 1031:.NET 1003:Atom 767:Java 691:IBM 307:DISA 296:NASA 226:VHDL 204:The 167:Java 91:Type 1790:Vim 1607:B4X 1487:IDE 1396:Vim 1211:PHP 1027:CLI 993:Vim 748:C++ 663:By 575:Vim 484:C++ 309:). 269:UML 222:Ada 214:C++ 183:ZIP 1960:: 1773:Go 746:, 571:Vi 482:, 341:. 291:. 248:, 244:, 220:, 216:, 212:, 177:, 162:. 154:, 110:, 1465:, 1300:R 1033:) 1029:( 963:) 948:) 938:) 928:) 573:– 480:C 464:e 457:t 450:v 417:" 413:" 404:" 400:" 391:" 387:" 378:" 374:" 365:" 361:" 351:. 210:C

Index



Windows XP
Developer(s)
jGRASP Team
Stable release
Platform
Java SE
Type
Java IDE
License
License
freeware
http://www.jgrasp.org/
development environment
software visualizations
data structures
IntelliJ IDEA
Android Studio
Eclipse
Java
Java Virtual Machine
Windows
Mac OS
ZIP
Linux
source code editor
Control Structure Diagram
C
C++

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.