TY - JOUR
T1 - FineCodeAnalyzer
T2 - Multi-Perspective Source Code Analysis Support for Software Developer Through Fine-Granular Level Interactive Code Visualization
AU - Qayum, Abdul
AU - Khan, Saif Ur Rehman
AU - Inayat-Ur-Rehman,
AU - Akhunzada, Adnan
N1 - Publisher Copyright:
© 2013 IEEE.
PY - 2022
Y1 - 2022
N2 - Source code analysis is one of the important activities during the software maintenance phase that focuses on performing the tasks including bug localization, feature location, bug/feature assignment, and so on. However, handling the aforementioned tasks on a manual basis (i.e. finding the location of buggy code from a large application) is an expensive, time-consuming, tedious, and challenging task. Thus, the developers seek automated support in performing the software maintenance tasks through automated tools and techniques. However, the majority of the reported techniques are limited to textual analysis where the real developers' concerns are not properly considered. Moreover, existing solutions seem less useful for the developers. This work proposes a tool (called as FineCodeAnalyzer) that supports an interactive source code analysis grounded on structural and historical relations at fine granular-level between the source code elements. To evaluate the performance of FineCodeAnalyzer, we consider 74 developers that assess three main facets: (i) usefulness, (ii) cognitive-load, and (iii) time efficiency. For usefulness concern, the results show that FineCodeAnalyzer outperforms the developers' self-adopted strategies in locating the code elements in terms of Precision, Recall, and F1-Measure of accurately locating the code elements. Specifically, FineCodeAnalyzer outperforms the developers' strategies up to 47%, 76%, and 61% in terms of Precision, Recall, and F1-measure, respectively. Additionally, FineCodeAnalyzer takes 5% less time than developers' strategies in terms of minutes of time. For cognitive-load, the developers found FineCodeAnalyzer to be 72% less complicated than manual strategies, in terms of the NASA Tool Load Index metric. Finally, the results indicate that FineCodeAnalyzer allows effectively locating the code elements than the developer's adopted strategies.
AB - Source code analysis is one of the important activities during the software maintenance phase that focuses on performing the tasks including bug localization, feature location, bug/feature assignment, and so on. However, handling the aforementioned tasks on a manual basis (i.e. finding the location of buggy code from a large application) is an expensive, time-consuming, tedious, and challenging task. Thus, the developers seek automated support in performing the software maintenance tasks through automated tools and techniques. However, the majority of the reported techniques are limited to textual analysis where the real developers' concerns are not properly considered. Moreover, existing solutions seem less useful for the developers. This work proposes a tool (called as FineCodeAnalyzer) that supports an interactive source code analysis grounded on structural and historical relations at fine granular-level between the source code elements. To evaluate the performance of FineCodeAnalyzer, we consider 74 developers that assess three main facets: (i) usefulness, (ii) cognitive-load, and (iii) time efficiency. For usefulness concern, the results show that FineCodeAnalyzer outperforms the developers' self-adopted strategies in locating the code elements in terms of Precision, Recall, and F1-Measure of accurately locating the code elements. Specifically, FineCodeAnalyzer outperforms the developers' strategies up to 47%, 76%, and 61% in terms of Precision, Recall, and F1-measure, respectively. Additionally, FineCodeAnalyzer takes 5% less time than developers' strategies in terms of minutes of time. For cognitive-load, the developers found FineCodeAnalyzer to be 72% less complicated than manual strategies, in terms of the NASA Tool Load Index metric. Finally, the results indicate that FineCodeAnalyzer allows effectively locating the code elements than the developer's adopted strategies.
KW - bug assignment
KW - bug localization
KW - feature location
KW - historical analysis
KW - interactive tool
KW - software maintenance
KW - Source code analysis
KW - structural analysis
KW - usefulness
UR - https://www.scopus.com/pages/publications/85124825155
U2 - 10.1109/ACCESS.2022.3151395
DO - 10.1109/ACCESS.2022.3151395
M3 - Article
AN - SCOPUS:85124825155
SN - 2169-3536
VL - 10
SP - 20496
EP - 20513
JO - IEEE Access
JF - IEEE Access
ER -