Authors:
Devansh Tiwari
1
;
Hironori Washizaki
1
;
Yoshiaki Fukazawa
1
;
Tomoyuki Fukuoka
2
;
Junji Tamaki
2
;
Nobuhiro Hosotani
2
;
Munetaka Kohama
2
;
Yann-Gaël Guéhéneuc
3
and
Foutse Khomh
4
Affiliations:
1
Waseda University, Tokyo, Japan
;
2
eXmotion Co. Ltd., Tokyo, Japan
;
3
Concordia University, Montreal, Canada
;
4
Polytechnique Montréal, Montreal, Canada
Keyword(s):
Software Architecture, C Language, Dependency Graph, Software Metric Analysis, Code Smells, Defect Prediction, Commit History.
Abstract:
The foundation of any software system is its design and architecture. Maintaining and improving the architecture and design as systems grow are difficult tasks. Many studies on the architecture and design of object-oriented systems exist but only few studies pertain to the architecture and design of procedural systems. Herein we study the quality of systems for the C language, and investigate how dependencies and associated metrics among files, functions, and modules are related to defects. We also investigate whether a set of static, dependency, and social-network metrics are related to problems in the architecture. Additionally, we examine the bug fixing commits from the commit history and the relations among bug-fixing commits and metrics. Thirteen open source systems from trending GitHub projects are used for study. We found that files with a high number of bug fixing commits are correlated to higher cycles and centrality, indicating that key files of the architecture in C system
s are the same files causing issues in the development process. We identify some version releases having huge impact on architecture and files which could be considered at high risk and need more attention.
(More)