ICSD: Interactive Visual Support for Understanding Code Control Structure

Ahmad Jbara, Mousa Agbaria, Alon Adoni, Malek Jabareen, Ameen Yasin

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Code comprehension is a mental process in any maintenance activity. It becomes decisive in large methods. Such methods are burdened with programming constructs as lines of code (LOC) correlate with McCabe's cyclomatic complexity (MCC). This makes it hard to capture their code, as they span many pages even in large screens, and as a result hinders grasping their structural properties that might be key for maintenance. Visualization can assist in comprehending complex systems. It has been shown that control structure diagrams (CSDs) could be useful to better understand and discover structural properties, such as code regularity, of such large methods. IDEs and development tools have been moving from desktops to the Web so as to benefit from this ubiquitous environment that provides instant collaboration and easier integration.This paper presents ICSD, an interactive Web-based tool that implements CSD for Java methods. In particular it visualizes their control structure and nesting. The interactivity of the tool enables the developer to examine the underlying code of specific parts in the diagram. Using ICSD the developer can compare between different regions in the diagram that seem to have any kind of commonality or other interesting relation. ICSD easily conveys structural characteristics of the code, especially very large code, to the programmer and helps him to better understand and refactor.To demonstrate the usage and usefulness of ICSD, very large functions from real softwares are presented and the different features of ICSD are shown.

Original languageEnglish (US)
Title of host publicationSANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering
EditorsEmad Shihab, David Lo, Xinyu Wang
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages644-648
Number of pages5
ISBN (Electronic)9781728105918
DOIs
StatePublished - Mar 15 2019
Externally publishedYes
Event26th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2019 - Hangzhou, China
Duration: Feb 24 2019Feb 27 2019

Publication series

NameSANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering

Conference

Conference26th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2019
CountryChina
CityHangzhou
Period2/24/192/27/19

    Fingerprint

Keywords

  • Code complexity
  • Code regularity
  • Visualization

ASJC Scopus subject areas

  • Computer Science Applications
  • Software
  • Computational Theory and Mathematics

Cite this

Jbara, A., Agbaria, M., Adoni, A., Jabareen, M., & Yasin, A. (2019). ICSD: Interactive Visual Support for Understanding Code Control Structure. In E. Shihab, D. Lo, & X. Wang (Eds.), SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering (pp. 644-648). [8667981] (SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/SANER.2019.8667981