skip to main content
10.1109/ICSE.2019.00069acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Investigating the impact of multiple dependency structures on software defects

Published: 25 May 2019 Publication History

Abstract

Over the past decades, numerous approaches were proposed to help practitioner to predict or locate defective files. These techniques often use syntactic dependency, history co-change relation, or semantic similarity. The problem is that, it remains unclear whether these different dependency relations will present similar accuracy in terms of defect prediction and localization. In this paper, we present our systematic investigation of this question from the perspective of software architecture. Considering files involved in each dependency type as an individual design space, we model such a design space using one DRSpace. We derived 3 DRSpaces for each of the 117 Apache open source projects, with 643,079 revision commits and 101,364 bug reports in total, and calculated their interactions with defective files. The experiment results are surprising: the three dependency types present significantly different architectural views, and their interactions with defective files are also drastically different. Intuitively, they play completely different roles when used for defect prediction/localization. The good news is that the combination of these structures has the potential to improve the accuracy of defect prediction/localization. In summary, our work provides a new perspective regarding to which type(s) of relations should be used for the task of defect prediction/localization. These quantitative and qualitative results also advance our knowledge of the relationship between software quality and architectural views formed using different dependency types.

References

[1]
R. W. Selby and V. R. Basili, "Analyzing error-prone system structure," IEEE Transactions on Software Engineering, vol. 17, no. 2, pp. 141--152, 1991.
[2]
N. Nagappan, T. Ball, and A. Zeller, "Mining metrics to predict component failures," in Proceedings of the 28th international conference on Software engineering. ACM, 2006, pp. 452--461.
[3]
T. Zimmermann and N. Nagappan, "Predicting defects using network analysis on dependency graphs," in ACM/IEEE International Conference on Software Engineering, 2008, pp. 531--540.
[4]
M. Cataldo, A. Mockus, J. A. Roberts, and J. D. Herbsleb, "Software dependencies, work dependencies, and their impact on failures," IEEE Transactions on Software Engineering, vol. 35, no. 6, pp. 864--878, 2009.
[5]
T. L. Graves, A. F. Karr, J. S. Marron, and H. Siy, "Predicting fault incidence using software change history," IEEE Transactions on software engineering, vol. 26, no. 7, pp. 653--661, 2000.
[6]
S. Wang, T. Liu, and L. Tan, "Automatically learning semantic features for defect prediction," in Ieee/acm International Conference on Software Engineering, 2016, pp. 297--308.
[7]
Y. Qu, X. Guan, Q. Zheng, T. Liu, L. Wang, Y. Hou, and Z. Yang, "Exploring community structure of software call graph and its applications in class cohesion measurement," Journal of Systems and Software, vol. 108, pp. 193--210, 2015.
[8]
L. Xiao, Y. Cai, and R. Kazman, "Design rule spaces: A new form of architecture insight," in Proceedings of the 36th International Conference on Software Engineering. ACM, 2014, pp. 967--977.
[9]
Y. Cai, H. Wang, S. Wong, and L. Wang, "Leveraging design rules to improve software architecture recovery," in Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures. ACM, 2013, pp. 133--142.
[10]
Z. Li, X. Y. Jing, X. Zhu, and H. Zhang, "Heterogeneous defect prediction through multiple kernel learning and ensemble learning," in IEEE International Conference on Software Maintenance and Evolution, 2017, pp. 91--102.
[11]
D. D. Nucci, F. Palomba, R. Oliveto, and A. D. Lucia, "Dynamic selection of classifiers in bug prediction: An adaptive method," IEEE Transactions on Emerging Topics in Computational Intelligence, vol. 1, no. 3, pp. 202--212, 2017.
[12]
V. Tzerpos and R. C. Holt, "Acdc: An algorithm for comprehension-driven clustering." in wcre, 2000, pp. 258--267.
[13]
J. Garcia, D. Popescu, C. Mattmann, N. Medvidovic, and Y. Cai, "Enhancing architectural recovery using concerns," in Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, 2011, pp. 552--555.
[14]
A. Corazza, S. Di Martino, V. Maggio, and G. Scanniello, "Investigating the use of lexical information for software system clustering," in Software Maintenance and Reengineering (CSMR), 2011 15th European Conference on. IEEE, 2011, pp. 35--44.
[15]
B. S. Mitchell, "A heuristic approach to solving the software clustering problem," in Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on. IEEE, 2003, pp. 285--288.
[16]
F. Beck and S. Diehl, "Evaluating the impact of software evolution on software clustering," in Reverse Engineering, 2010, pp. 99--108.
[17]
B. S. Mitchell and S. Mancoridis, "On the automatic modularization of software systems using the bunch tool," IEEE Transactions on Software Engineering, vol. 32, no. 3, pp. 193--208, 2006.
[18]
J. Garcia, I. Ivkovic, and N. Medvidovic, "A comparative analysis of software architecture recovery techniques," in Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on. IEEE, 2013, pp. 486--496.
[19]
T. Lutellier, D. Chollak, J. Garcia, L. Tan, D. Rayside, N. Medvidovic, and R. Kroeger, "Comparing software architecture recovery techniques using accurate dependencies," in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 2. IEEE, 2015, pp. 69--78.
[20]
I. Macia, R. Arcoverde, E. Cirilo, A. Garcia, and A. V. Staa, "Supporting the identification of architecturally-relevant code anomalies," in IEEE International Conference on Software Maintenance, 2012, pp. 662--665.
[21]
R. Mo, Y. Cai, R. Kazman, and L. Xiao, "Hotspot patterns: The formal definition and automatic detection of architecture smells," in Software Architecture (WICSA), 2015 12th Working IEEE/IFIP Conference on. IEEE, 2015, pp. 51--60.
[22]
W. Oizumi, A. Garcia, L. da Silva Sousa, B. Cafeo, and Y. Zhao, "Code anomalies flock together: exploring code anomaly agglomerations for locating design problems," in Proceedings of the 38th International Conference on Software Engineering. ACM, 2016, pp. 440--451.
[23]
F. A. Fontana, I. Pigazzini, R. Roveda, and M. Zanoni, "Automatic detection of instability architectural smells," in IEEE International Conference on Software Maintenance and Evolution, 2017, pp. 433--437.
[24]
F. A. Fontana, I. Pigazzini, R. Roveda, D. Tamburri, M. Zanoni, and E. D. Nitto, "Arcan: A tool for architectural smells detection," in IEEE International Conference on Software Architecture Workshops, 2017, pp. 282--285.
[25]
L. Xiao, Y. Cai, R. Kazman, R. Mo, and Q. Feng, "Identifying and quantifying architectural debt," in Proceedings of the 38th International Conference on Software Engineering. ACM, 2016, pp. 488--498.
[26]
M. Gethers and D. Poshyvanyk, "Using relational topic models to capture coupling among classes in object-oriented software systems," in IEEE International Conference on Software Maintenance, 2010, pp. 1--10.
[27]
J. Chang and D. M. Blei, "Hierarchical relational models for document networks," Annals of Applied Statistics, vol. 4, no. 1, pp. 124--150, 2010.
[28]
G. Bavota, R. Oliveto, M. Gethers, D. Poshyvanyk, and A. D. Lucia, "Methodbook: Recommending move method refactorings via relational topic models," IEEE Transactions on Software Engineering, vol. 40, no. 7, pp. 671--694, 2014.
[29]
L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, 3rd ed., 2012.
[30]
R. Kazman, Y. Cai, R. Mo, Q. Feng, L. Xiao, S. Haziyev, V. Fedak, and A. Shapochka, "A case study in locating the architectural roots of technical debt," in Proceedings of the 37th International Conference on Software Engineering-Volume 2. IEEE Press, 2015, pp. 179--188.
[31]
L. Xiao, Y. Cai, and R. Kazman, "Titan: A toolset that connects software architecture with quality analysis," in Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 2014, pp. 763--766.
[32]
Z. Wen and V. Tzerpos, "An effectiveness measure for software clustering algorithms," in IEEE International Workshop on Program Comprehension, 2004, p. 194.
[33]
D. M. Le, P. Behnamghader, J. Garcia, and D. Link, "An empirical study of architectural change in open-source software systems," in MSR, 2015, pp. 235--245.
[34]
S. Wong and Y. Cai, "Generalizing evolutionary coupling with stochastic dependencies," in Ieee/acm International Conference on Automated Software Engineering, 2011, pp. 293--302.
[35]
A. Bachmann, C. Bird, F. Rahman, P. Devanbu, and A. Bernstein, "The missing links:bugs and bug-fix commits," in ACM Sigsoft International Symposium on Foundations of Software Engineering, 2010, Santa Fe, Nm, Usa, November, 2010, pp. 97--106.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '19: Proceedings of the 41st International Conference on Software Engineering
May 2019
1318 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Author Tags

  1. software maintenance
  2. software quality
  3. software structure

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media