scg-cli -- a Tool Supporting Software Comprehension via Extraction and Analysis of Semantic Code Graph
Krzysztof Borowski, Bartosz Bali\'s

TL;DR
scg-cli is a command line tool that extracts semantic code graphs from Java and Scala projects, enabling software comprehension through metrics, critical code identification, and project partitioning, with export options for visualization and analysis.
Contribution
The paper introduces scg-cli, a novel tool that constructs semantic code graphs from Java and Scala projects, supporting advanced analysis and visualization.
Findings
Effective extraction of semantic code graphs from Java and Scala projects.
Enables project metrics, critical code identification, and partitioning.
Supports export to visualization and data analysis tools.
Abstract
We present scg-cli, a~command line tool facilitating software comprehension. The tool extracts semantic information about code structure and dependencies from the Java and Scala projects, and structures it as a~Semantic Code Graph (SCG), an information model underlying scg-cli. The SCG data, once written into a~portable, open protobuf-based format, can be used by the scg-cli command line tool to obtain project metrics, find the most critical code entities, and compute project partitionings. The results of this analysis and the SCG data can be exported for further investigation by external tools such as Gephi software (visualization) and, notably, as a Jupyter Notebook environment with helper APIs to enable advanced analysis of the project using data analytics methods. We explain functionalities of the scg-cli tool and demonstrate its capabilities by showing an example analysis of an…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Scientific Computing and Data Management
