JGRASP

jGRASP
개발자jGRASP 팀
안정화 버전
2.0.6_17 / 2024년 12월 20일(22개월 전)(2024-12-20)
플랫폼자바 SE
종류자바 IDE
라이선스라이선스, 프리웨어
웹사이트http://www.jgrasp.org/

jGRASP는 소프트웨어 시각화의 자동 생성 기능을 포함하는 개발 환경이다. 이 프로그램은 소스 코드 구조의 정적 시각화와 런타임 시 자료 구조의 시각화를 생성한다.

런타임 자료 구조 시각화 기능은 IntelliJ IDEA, 안드로이드 스튜디오, 그리고 Eclipse의 플러그인으로도 사용할 수 있다.

jGRASP는 자바로 구현되었으며, 자바 가상 머신(자바 1.8 버전 이상)이 설치된 모든 플랫폼에서 실행된다. GRASP(리눅스, 유닉스)와 pcGRASP(윈도우)는 C/C++로 작성된 반면, jGRASP는 자바로 작성되었다(jGRASP의 'j'는 JVM에서 실행된다는 의미를 담고 있다). jGRASP 웹사이트는 윈도우, 맥 OS의 역사용 다운로드를 제공하며, 리눅스 및 기타 시스템에 적합한 범용 ZIP 파일 형태로도 제공한다.

자바와 코틀린 이외의 언어에 대해, jGRASP는 소스 코드 편집기이자 기본적인 IDE 역할을 한다. 이는 거의 모든 프로그래밍 언어를 위한 무료 및 상용 컴파일러와 연동되도록 설정할 수 있다.

시각화

제어 구조 다이어그램(Control structure diagram)(CSD)은 소스 코드 내에서 일반적으로 들여쓰기가 차지하는 공간에 들어가는 제어 흐름 다이어그램이다. 그 목적은 소스 코드의 가독성을 높이는 것이다. jGRASP는 자바, C, C++, 오브젝티브-C, 에이다, VHDL에 대한 CSD를 생성한다. 편집 창은 CSD 기반의 코드 폴딩과 마우스를 CSD 구조 위에 올렸을 때 화면 밖에 있는 코드 구조의 첫 줄을 표시하는 "컨텍스트 힌트" 기능을 제공한다.

jGRASP의 자바/코틀린 객체 뷰어는 디버깅 및 워크벤치 작업 중에 자료 구조 및 기타 객체와 프리미티브에 대한 인터페이스 기반의 구조적 뷰 등을 제공한다. 예를 들어, 콘텐츠 기반 뷰는 ArrayList와 LinkedList를 요소의 목록으로 동일하게 보여준다. 구조적 뷰는 트리, 연결 리스트, 해시 테이블 등의 내부 구조를 보여준다. 연결 자료 구조의 구조적 뷰는 지역 변수 노드와 메인 구조와의 관계를 표시한다. 연결 리스트에 노드가 추가되는 것과 같이 변경 사항이 발생하면 결과가 애니메이션으로 나타난다. 일반적인 자료 구조는 자동으로 식별되어 구조적으로 표시된다. 다른 뷰어는 예를 들어, 색상에 대한 색상 견본, 아이콘 이미지, double형의 이진 상세 정보 등을 보여준다. 여러 뷰어를 단일 뷰어 캔버스 창에 결합할 수 있으며 콘텐츠를 파일로 저장할 수도 있다.

복잡도 프로필 그래프(Complexity Profile Graph)(CPG)는 문장 수준의 복잡도 다이어그램이다. 그 목적은 소스 코드의 지나치게 복잡한 영역을 식별하는 것을 돕는 것이다. jGRASP는 자바와 에이다 모두에 대한 CPG를 생성한다. 이 메트릭에는 개별적으로 표시할 수 있는 도달성 및 콘텐츠 복잡도와 같은 일반적인 측정치가 포함된다.

jGRASP는 또한 대화형 의존성 정보를 포함하는 자바용 UML 다이어그램을 생성한다.

역사

jGRASP는 오번 대학교 새뮤얼 긴 공과대학(Samuel Ginn College of Engineering)의 컴퓨터 과학 및 소프트웨어 공학과에서 제임스 크로스(James Cross)와 래리 바로우스키(Larry Barowski)에 의해 개발되었다. 이는 jGRASP 팀에 의해 유지 관리 및 평가된다. jGRASP의 개발은 미국 국립과학재단의 연구 보조금 지원을 받았다.

이전 버전인 GRASP의 개발은 미국 항공 우주국(NASA) 마셜 우주비행센터, 미국 국방고등연구계획국(DARPA), 그리고 미국 국방정보시스템국(DISA)의 연구 보조금 지원을 받았다.

같이 보기

각주

외부 링크