Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/2664446.2664480acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Can we predict types of code changes?: an empirical analysis

Published: 02 June 2012 Publication History

Abstract

There exist many approaches that help in pointing developers to the change-prone parts of a software system. Although beneficial, they mostly fall short in providing details of these changes. Fine-grained source code changes (SCC) capture such detailed code changes and their semantics on the statement level. These SCC can be condition changes, interface modifications, inserts or deletions of methods and attributes, or other kinds of statement changes. In this paper, we explore prediction models for whether a source file will be affected by a certain type of SCC. These predictions are computed on the static source code dependency graph and use social network centrality measures and object-oriented metrics. For that, we use change data of the Eclipse platform and the Azureus 3 project. The results show that Neural Network models can predict categories of SCC types. Furthermore, our models can output a list of the potentially change-prone files ranked according to their change-proneness, overall and per change type category.

References

[1]
W. Li and S. Henry, "Object-oriented metrics that predict maintainability," Journal of Systems and Software, vol. 23, no. 2, pp. 111--122, 1993.
[2]
M. Dagpinar and J. Jahnke, "Predicting maintainability with object-oriented metrics - an empirical comparison," in Proc. Working Conf. on Reverse Eng., 2003, pp. 155--164.
[3]
E. Arisholm, L. Briand, and A. Foyen, "Dynamic coupling measurement for object-oriented software," IEEE Trans. Softw. Eng., vol. 30, no. 8, pp. 491--506, 2004.
[4]
T. Girba, S. Ducasse, and M. Lanza, "Yesterday's weather: Guiding early reverse engineering efforts by summarizing the evolution of changes," in Proc. Int'l Conf. on Softw. Maintenance, 2004, pp. 40--49.
[5]
T. Zimmermann, P. Weisgerber, S. Diehl, and A. Zeller, "Mining version histories to guide software changes," in Proc. Int'l Conf. on Softw. Eng., 2004, pp. 563--572.
[6]
A. Ying, G. Murphy, R. Ng, and M. Chu-Carroll, "Predicting source code changes by mining change history," IEEE Trans. Softw. Eng., vol. 30, no. 9, pp. 574--586, 2004.
[7]
R. Robbes, D. Pollet, and M. Lanza, "Logical coupling based on fine-grained change information," in Proc. Working Conf. on Reverse Eng., 2008, pp. 42--46.
[8]
N. Tsantalis, A. Chatzigeorgiou, and G. Stephanides, "Predicting the probability of change in object-oriented systems," IEEE Trans. Softw. Eng., vol. 31, no. 7, pp. 601--614, 2005.
[9]
Y. Zhou and H. Leung, "Predicting object-oriented software maintainability using multivariate adaptive regression splines," Journal of Systems and Software, vol. 80, no. 8, pp. 1349--1361, 2007.
[10]
H. C. Gall, B. Fluri, and M. Pinzger, "Change analysis with evolizer and changedistiller," IEEE Software, vol. 26, no. 1, pp. 26--33, 2009.
[11]
S. R. Chidamber and C. F. Kemerer, "A metrics suite for object oriented design," IEEE Trans. Softw. Eng., vol. 20, no. 6, pp. 476--493, 1994.
[12]
S. Wasserman and K. Faust, Social Network Analysis: Methods and Applications, 1st ed. Camb. Univ. Press, 1994.
[13]
T. Zimmermann and N. Nagappan, "Predicting defects using network analysis on dependency graphs," in Proc. Int'l Conf. on Softw. Eng., 2008, pp. 531--540.
[14]
T. Nguyen, B. Adams, and A. Hassan, "Studying the impact of dependency network measures on software quality," in Proc. Int'l Conf. on Softw. Maint., 2010, pp. 1--10.
[15]
S. Borgatti, M. Everett, and L. Freeman, UCINET 5.0 Version 1.00, Natick: Analytic Technologies., 1999.
[16]
V. Basili, L. Briand, and W. Melo, "A validation of object-oriented design metrics as quality indicators," IEEE Trans. Softw. Eng., vol. 22, no. 10, pp. 751--761, 1996.
[17]
L. C. Freeman, "Centrality in social networks conceptual clarification," Social Networks, vol. 1, no. 3, pp. 215--239, 1979.
[18]
P. Bonacich, "Power and centrality: A family of measures," The American Journal of Sociology, vol. 92, no. 5, pp. 1170--1182, 1987.
[19]
B. Fluri, M. Würsch, M. Pinzger, and H. C. Gall, "Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction," IEEE Trans. on Softw. Eng., vol. 33, no. 11, pp. 725--743, 2007.
[20]
A. Schroeter, T. Zimmermann, and A. Zeller, "Predicting component failures at design time," in Proc. Int'l Symp. on Empirical Softw. Eng., 2006, pp. 18--27.
[21]
T. Zimmermann, R. Premraj, and A. Zeller, "Predicting defects for eclipse," in Proc. Int'l Workshop on Predictor Models in Softw. Eng., 2007, pp. 9--15.
[22]
R. Moser, W. Pedrycz, and G. Succi, "A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction," in Proc. Int'l Conf. on Softw. Eng., 2008, pp. 181--190.
[23]
E. Giger, M. Pinzger, and H. C. Gall, "Comparing fine-grained source code changes and code churn for bug prediction," in Proc. Int'l Workshop on Mining Softw. Repositories, 2011, pp. 83--92.
[24]
S. Dowdy, S. Weardon, and D. Chilko, Statistics for Research, 3rd ed., ser. Probability and Statistics. Hoboken, New Jersey: John Wiley and Sons, 2004.
[25]
M. Pinzger, N. Nagappan, and B. Murphy, "Can developer-module networks predict failures?" in Proc. Symp. on the Found. of Softw. Eng., 2008, pp. 2--12.
[26]
S. Lessmann, B. Baesens, C. M. Swantje, and Pietsch, "Bench-marking classification models for software defect prediction: A proposed framework and novel findings," IEEE Trans. on Softw. Eng., vol. 34, no. 4, pp. 485--496, 2008.
[27]
T. Menzies, J. Greenwald, and A. Frank, "Data mining static code attributes to learn defect predictors," IEEE Trans. on Softw. Eng., vol. 33, no. 1, pp. 2--13, 2007.
[28]
D. Kawrykow and M. P. Robillard, "Non-essential changes in version histories," in Proc. Int'l Conf. on Softw. Eng., 2011, pp. 351--360.
[29]
N. Juristo and S. Vegas, "Using differences among replications of software engineering experiments to gain knowledge," in Proc. Int'l Symp. on Empirical Softw. Eng. and Measurement, 2009, pp. 356--366.
[30]
C. Bird, D. Pattison, R. D'Souza, V. Filkov, and P. Devanbu, "Latent social structure in open source projects," in Proc. Int'l Symp. on Found. of Softw. Eng., 2008, pp. 24--35.
[31]
L. González, G. Barahona, and G. Robles, "Applying social network analysis to the information in cvs repositories," in Proc. Int'l Workshop on Mining Softw. Repositories, 2004, pp. 101--105.
[32]
S.-K. Huang and K. min Liu, "Mining version histories to verify the learning process of legitimate peripheral participants," in Proc. Int'l Workshop on Mining Softw. Repositories, 2005, pp. 1--5.
[33]
M. Ohira, N. Ohsugi, T. Ohoka, and K. Matsumoto, "Accelerating cross-project knowledge collaboration using collaborative filtering and social networks," in Proc. Int'l Workshop on Mining Softw. Repositories, 2005, pp. 1--5.
[34]
N. Ducheneaut, "Socialization in an open source software community: A socio-technical analysis," Comput. Supported Coop. Work, vol. 14, pp. 323--368, 2005.
[35]
C. Bird, A. Gourley, P. Devanbu, A. Swaminathan, and G. Hsu, "Open borders? immigration in open source projects," in Proc. Int'l Workshop on Mining Softw. Repositories, 2007, p. 6.
[36]
D. Rombach, "A controlled experiment on the impact of software structure on maintainability," IEEE Trans. on Softw. Eng., vol. 13, no. 3, pp. 344--354, 1987.
[37]
R. Subramanyam and M. Krishnan, "Empirical analysis of ck metrics for object-oriented design complexity: Implications for software defects," IEEE Trans. Softw. Eng., vol. 29, no. 4, pp. 297--310, April 2003.
[38]
T. Khoshgoftaar and R. Szabo, "Improving code churn predictions during the system test and maintenance phases," in Proc. Int'l Conf. on Softw. Maint., 1994, pp. 58--67.
[39]
A. Mockus and D. Weiss, "Predicting risk of software changes," Bell Labs Technical J., vol. 5, pp. 169--180, 2000.
[40]
S. Kim, J. Whitehead, and Y. Zhang, "Classifying software changes: Clean or buggy?" IEEE Trans. Softw. Eng., vol. 34, no. 2, pp. 181--196, March 2008.
[41]
S. Shirabad, T. Lethbridge, and S. Matwin, "Mining the maintenance history of a legacy software system," in Proc. Int'l Conf. on Softw. Maint., 2003, pp. 95--104.

Cited By

View all
  • (2019)Leveraging Change Intents for Characterizing and Identifying Large-Review-Effort ChangesProceedings of the Fifteenth International Conference on Predictive Models and Data Analytics in Software Engineering10.1145/3345629.3345635(46-55)Online publication date: 18-Sep-2019
  • (2017)Extracting build changes with BuildDiffProceedings of the 14th International Conference on Mining Software Repositories10.1109/MSR.2017.65(368-378)Online publication date: 20-May-2017
  • (2017)Analysing the Linux kernel feature model changes using FMDiffSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0472-216:1(55-76)Online publication date: 1-Feb-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '12: Proceedings of the 9th IEEE Working Conference on Mining Software Repositories
June 2012
262 pages
ISBN:9781467317610

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Author Tags

  1. machine learning
  2. software maintenance
  3. software quality

Qualifiers

  • Research-article

Conference

ICSE '12
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Leveraging Change Intents for Characterizing and Identifying Large-Review-Effort ChangesProceedings of the Fifteenth International Conference on Predictive Models and Data Analytics in Software Engineering10.1145/3345629.3345635(46-55)Online publication date: 18-Sep-2019
  • (2017)Extracting build changes with BuildDiffProceedings of the 14th International Conference on Mining Software Repositories10.1109/MSR.2017.65(368-378)Online publication date: 20-May-2017
  • (2017)Analysing the Linux kernel feature model changes using FMDiffSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0472-216:1(55-76)Online publication date: 1-Feb-2017
  • (2015)Post Release Versions based Code Change Quality MetricsProceedings of the Third International Symposium on Women in Computing and Informatics10.1145/2791405.2791466(235-243)Online publication date: 10-Aug-2015
  • (2014)Connection between version control operations and quality change of the source codeActa Cybernetica10.14232/actacyb.21.4.2014.421:4(585-607)Online publication date: 1-Dec-2014
  • (2013)A study of repetitiveness of code changes in software evolutionProceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2013.6693078(180-190)Online publication date: 11-Nov-2013

View Options

Get Access

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