Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
129 tokens/sec
GPT-4o
28 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

scg-cli -- a Tool Supporting Software Comprehension via Extraction and Analysis of Semantic Code Graph (2310.03044v1)

Published 3 Oct 2023 in cs.SE

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 open-source Java project commons-io.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (13)
  1. Nedhal A. Al-Saiyd. Source code comprehension analysis in software maintenance. In 2017 2nd International Conference on Computer and Communication Systems (ICCCS), pages 1–5, July 2017.
  2. Graph buddy — an interactive code dependency browsing and visualization tool. In 2022 Working Conference on Software Visualization (VISSOFT), pages 152–156, Oct 2022.
  3. Recent advances in graph partitioning. Springer, 2016.
  4. Patoh (partitioning tool for hypergraphs). In Encyclopedia of parallel computing, pages 1479–1487. Springer, 2011.
  5. Cospa: Identifying key classes in object-oriented software using preference aggregation. IEEE Access, 9:114767–114780, 2021.
  6. Sergi Gomez. Centrality in Networks: Finding the Most Important Nodes, pages 401–433. Springer International Publishing, Cham, 2019.
  7. Metis: A software package for partitioning unstructured graphs, partitioning meshes, and computing fill-reducing orderings of sparse matrices. 1997.
  8. A new algorithm for software clustering considering the knowledge of dependency between artifacts in the source code. Information and Software Technology, 105:252–256, 2019.
  9. Software module clustering: An in-depth literature analysis. IEEE Transactions on Software Engineering, 48(6):1905–1928, June 2022.
  10. Comprehending studies on program comprehension. In 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC), pages 308–311, May 2017.
  11. Janet Siegmund. Program comprehension: Past, present, and future. In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), volume 5, pages 13–20, March 2016.
  12. Hadley Wickham. The split-apply-combine strategy for data analysis. Journal of statistical software, 40:1–29, 2011.
  13. Measuring program comprehension: A large-scale field study with professionals. IEEE Transactions on Software Engineering, 44(10):951–976, Oct 2018.

Summary

We haven't generated a summary for this paper yet.