@inproceedings{29ef5dc302f94d6f9ff62649313e8063,
title = "ICSD: Interactive Visual Support for Understanding Code Control Structure",
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.",
keywords = "Code complexity, Code regularity, Visualization",
author = "Ahmad Jbara and Mousa Agbaria and Alon Adoni and Malek Jabareen and Ameen Yasin",
note = "Publisher Copyright: {\textcopyright} 2019 IEEE.; 26th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2019 ; Conference date: 24-02-2019 Through 27-02-2019",
year = "2019",
month = mar,
day = "15",
doi = "10.1109/SANER.2019.8667981",
language = "English (US)",
series = "SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "644--648",
editor = "Emad Shihab and David Lo and Xinyu Wang",
booktitle = "SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering",
}