Learning actionable analytics from multiple software projects
2020, Empirical Software Engineering
https://doi.org/10.1007/S10664-020-09843-6Abstract
The current generation of software analytics tools are mostly prediction algorithms (e.g. support vector machines, naive bayes, logistic regression, etc). While prediction is useful, after prediction comes planning about what actions to take in order to improve quality. This research seeks methods that generate demonstrably useful guidance on "what to do" within the context of a specific software project. Specifically, we propose XTREE (for within-project planning) and BELLTREE (for cross-project planning) to generating plans that can improve software quality. Each such plan has the property that, if followed, it reduces the expected number of future defect reports. To find this expected number, planning was first applied to data from release x. Next, we looked for change in release x + 1 that conformed to our plans. This procedure was applied using a range of planners from the literature, as well as XTREE. In 10 open-source JAVA systems, several hundreds of defects were reduced in sections of the code that conformed to XTREE's plans. Further, when compared to other planners, XTREE's plans were found to be easier to implement (since they were shorter) and more effective at reducing the expected number of defects.
References (104)
- Al Dallal J, Briand LC (2010) An object-oriented high-level design-based class cohesion metric. Information and software technology 52(12):1346-1361
- Altman E (1999) Constrained Markov decision processes, vol 7. CRC Press Alves TL, Ypma C, Visser J (2010) Deriving metric thresholds from benchmark data. In: 2010 IEEE Int. Conf. Softw. Maint., IEEE, pp 1-10, DOI 10.1109/ICSM.2010. 5609747
- Andrews JH, Li FCH, Menzies T (2007) Nighthawk: A Two-Level Genetic-Random Unit Test Data Generator. In: IEEE ASE'07
- Andrews JH, Menzies T, Li FCH (2010) Genetic Algorithms for Randomized Unit Testing. IEEE Transactions on Software Engineering
- Baier SSJA, McIlraith SA (2009) Htn planning with preferences. In: 21st Int. Joint Conf. on Artificial Intelligence, pp 1790-1797
- Bansiya J, Davis CG (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4-17, DOI 10.1109/32.979986
- Begel A, Zimmermann T (2014) Analyze this! 145 questions for data scientists in software engineering. In: Proc. 36th Intl. Conf. Software Engineering (ICSE 2014), ACM Bellman R (1957) A markovian decision process. Indiana Univ Math J 6:679-684
- Bender R (1999) Quantitative risk assessment in epidemiological studies investigating threshold effects. Biometrical Journal 41(3):305-319
- Bener A, Misirli AT, Caglayan B, Kocaguneli E, Calikli G (2015) Lessons learned from software analytics in practice. In: The Art and Science of Analyzing Software Data, Elsevier, pp 453-489
- Blue D, Segall I, Tzoref-Brill R, Zlotnick A (2013) Interaction-based test-suite min- imization. In: Proc. the 2013 Intl. Conf. Software Engineering, IEEE Press, pp 182-191
- Boehm B (1981) Software Engineering Economics. Prentice Hall Boehm B, Horowitz E, Madachy R, Reifer D, Clark BK, Steece B, Brown AW, Chulani S, Abts C (2000) Software Cost Estimation with Cocomo II. Prentice Hall Bryton S, e Abreu FB (2009) Strengthening refactoring: towards software evolution with quantitative and experimental grounds. In: Software Engineering Advances, 2009. ICSEA'09. Fourth Intl. Conf., IEEE, pp 570-575
- Cheng B, Jensen A (2010) On the use of genetic programming for automated refactor- ing and the introduction of design patterns. In: Proc. 12th Annual Conf. Genetic and Evolutionary Computation, ACM, New York, NY, USA, GECCO '10, pp 1341-1348, DOI 10.1145/1830483.1830731
- Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Transactions on software engineering 20(6):476-493
- Chidamber SR, Darcy DP, Kemerer CF (1998) Managerial use of metrics for object- oriented software: An exploratory analysis. IEEE Transactions on software Engi- neering 24(8):629-639
- Cortes C, Vapnik V (1995) Support-vector networks. Machine learning 20(3):273-297
- Cui X, Potok T, Palathingal P (2005) Document clustering using particle swarm optimization. . . . Intelligence Symposium, 2005 . . .
- Czerwonka J, Das R, Nagappan N, Tarvo A, Teterev A (2011) Crane: Failure prediction, change analysis and test prioritization in practice -experiences from windows. In: Software Testing, Verification and Validation (ICST), 2011 IEEE Fourth Intl. Conference on, pp 357 -366
- Deb K, Jain H (2014) An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints. Evolutionary Computation, IEEE Transactions on 18(4):577-601, DOI 10.1109/TEVC.2013.2281535
- Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A Fast Elitist Multi-Objective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6:182-197
- Devanbu P, Zimmermann T, Bird C (2016) Belief & evidence in empirical software engineering. In: Proc. 38th Intl. Conf. Software Engineering, ACM, pp 108-119
- Du Bois B (2006) A study of quality improvements by refactoring Elish K, Alshayeb M (2011) A classification of refactoring methods based on software quality attributes. Arabian Journal for Science and Engineering 36(7):1253-1267
- Elish K, Alshayeb M (2012) Using software quality attributes to classify refactoring to patterns. JSW 7(2):408-419
- Fayyad U, Irani K (1993) Multi-interval discretization of continuous-valued attributes for classification learning. NASA JPL Archives
- Fu W, Menzies T, Shen X (2016) Tuning for software analytics: is it really necessary? Information and Software Technology (submitted)
- Ghallab M, Nau D, Traverso P (2004) Automated Planning: theory and practice. Elsevier
- Ghotra B, McIntosh S, Hassan AE (2015) Revisiting the impact of classification techniques on the performance of defect prediction models. In: 37th ICSE-Volume 1, IEEE Press, pp 789-800
- Graves TL, Karr AF, Marron JS, Siy H (2000) Predicting fault incidence using software change history. IEEE Transactions on software engineering 26(7):653-661
- Guo X, Hernández-Lerma O (2009) Continuous-time markov decision processes. Continuous-Time Markov Decision Processes pp 9-18
- Halstead MH (1977) Elements of software science, vol 7. Elsevier New York Han J, Cheng H, Xin D, Yan X (2007) Frequent pattern mining: current status and future directions. Data mining and knowledge discovery 15(1):55-86
- Harman M, Mansouri SA, Zhang Y (2009) Search based software engineering: A com- prehensive analysis and review of trends techniques and applications. Department of Computer Science, KingâĂŹs College London, Tech Rep TR-09-03
- Harman M, McMinn P, De Souza J, Yoo S (2011) Search based software engineering: Techniques, taxonomy, tutorial. Search 2012:1-59, DOI 10.1007/978-3-642-25231-0\
- Henard C, Papadakis M, Harman M, Traon YL (2015) Combining multi-objective search and constraint solving for configuring large software product lines. In: 2015 IEEE/ACM 37th IEEE Intl. Conf. Software Engineering, vol 1, pp 517-528, DOI 10.1109/ICSE.2015.69
- Hihn J, Menzies T (2015) Data mining methods and cost estimation models: Why is it so hard to infuse new ideas? In: 2015 30th IEEE/ACM Intl. Conf. Automated Software Engineering Workshop (ASEW), pp 5-9, DOI 10.1109/ASEW.2015.27
- Ii PG, Menzies T, Williams S, El-Rawas O (2009) Understanding the value of software engineering technologies. In: Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, IEEE Computer Society, pp 52-61
- Jing X, Wu G, Dong X, Qi F, Xu B (2015) Heterogeneous cross-company defect prediction by unified metric representation and cca-based transfer learning. In: FSE'15
- Jørgensen M, Gruschke TM (2009) The impact of lessons-learned sessions on effort estimation and uncertainty assessments. Software Engineering, IEEE Transactions on 35(3):368 -383
- Jureczko M, Madeyski L (2010) Towards identifying software project clusters with regard to defect prediction. In: Proc. 6th Int. Conf. Predict. Model. Softw. Eng. - PROMISE '10, ACM Press, New York, New York, USA, p 1, DOI 10.1145/1868328. 1868342
- Kataoka Y, Imai T, Andou H, Fukaya T (2002) A quantitative evaluation of maintain- ability enhancement by refactoring. In: Software Maintenance, 2002. Proceedings. Intl. Conf., IEEE, pp 576-585
- Kocaguneli E, Menzies T (2011) How to find relevant data for effort estimation? In: Empirical Software Engineering and Measurement (ESEM), 2011 Intl. Symposium on, IEEE, pp 255-264
- Kocaguneli E, Menzies T, Bener A, Keung J (2012) Exploiting the essential as- sumptions of analogy-based effort estimation. IEEE Transactions on Software Engineering 28:425-438
- Kocaguneli E, Menzies T, Mendes E (2015) Transfer learning in effort estimation. Empirical Software Engineering 20(3):813-843, DOI 10.1007/s10664-014-9300-5
- Krall J, Menzies T, Davies M (2015) Gale: Geometric active learning for search-based software engineering. IEEE Transactions on Software Engineering 41(10):1001-1018
- Krishna R (2017) Learning effective changes for software projects. In: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, IEEE Press, pp 1002-1005
- Krishna R, Menzies T (2015) Actionable = cluster + contrast? In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering Work- shop (ASEW), pp 14-17, DOI 10.1109/ASEW.2015.23
- Krishna R, Menzies T (2018) Bellwethers: A baseline method for transfer learn- ing. IEEE Transactions on Software Engineering pp 1-1, DOI 10.1109/TSE.2018. 2821670
- Krishna R, Menzies T, Fu W (2016) Too much automation? the bellwether effect and its implications for transfer learning. In: Proc. 31st IEEE/ACM Intl. Conf. Automated Software Engineering -ASE 2016, ACM Press, New York, New York, USA, pp 122-131, DOI 10.1145/2970276.2970339
- Krishna R, Menzies T, Layman L (2017a) Less is more: Minimizing code reorganization using XTREE. Information and Software Technology DOI 10.1016/j.infsof.2017.03. 012, 1609.03614
- Krishna R, Menzies T, Layman L (2017b) Less is more: Minimizing code reorganization using xtree. Information and Software Technology 88:53-66
- Le Goues C, Dewey-Vogt M, Forrest S, Weimer W (2012) A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In: 2012 34th
- Intl. Conf. Software Engineering (ICSE), IEEE, pp 3-13, DOI 10.1109/ICSE.2012. 6227211
- Le Goues C, Holtschulte N, Smith EK, Brun Y, Devanbu P, Forrest S, Weimer W (2015) The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs. IEEE Transactions on Software Engineering 41(12):1236-1256, DOI 10.1109/TSE.2015.2454513
- Lemon B, Riesbeck A, Menzies T, Price J, D'Alessandro J, Carlsson R, Prifiti T, Peters F, Lu H, Port D (2009) Applications of Simulation and AI Search: Assessing the Relative Merits of Agile vs Traditional Software Development. In: IEEE ASE'09
- Lessmann S, Baesens B, Mues C, Pietsch S (2008) Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings. IEEE Trans Softw Eng 34(4):485-496, DOI 10.1109/TSE.2008.35
- Lewis C, Lin Z, Sadowski C, Zhu X, Ou R, Whitehead Jr EJ (2013) Does bug prediction support human developers? findings from a google case study. In: Pro- ceedings of the 2013 International Conference on Software Engineering, IEEE Press, Piscataway, NJ, USA, ICSE '13, pp 372-381, URL http://dl.acm.org/citation. cfm?id=2486788.2486838
- Lowry M, Boyd M, Kulkami D (1998) Towards a theory for integration of mathemat- ical verification and empirical testing. In: Automated Software Engineering, 1998. Proceedings. 13th IEEE International Conference on, IEEE, pp 322-331
- Madeyski L, Jureczko M (2015) Which process metrics can significantly improve defect prediction models? an empirical study. Software Quality Journal 23(3):393-422
- McCabe TJ (1976) A complexity measure. IEEE Transactions on software Engineering (4):308-320
- Mensah S, Keung J, MacDonell SG, Bosu MF, Bennin KE (2018) Investigating the significance of the bellwether effect to improve software effort prediction: Further empirical study. IEEE Transactions on Reliability (99):1-23
- Menzies T, Raffo D, on Setamanit S, Hu Y, Tootoonian S (2002) Model-based tests of truisms. In: Proceedings of IEEE ASE 2002, available from http://menzies. us/pdf/02truisms.pdf
- Menzies T, Dekhtyar A, Distefano J, Greenwald J (2007a) Problems with Precision: A Response to "Comments on 'Data Mining Static Code Attributes to Learn Defect Predictors'". IEEE Transactions on Software Engineering 33(9):637-640, DOI 10.1109/TSE.2007.70721
- Menzies T, Elrawas O, Hihn J, Feather M, Madachy R, Boehm B (2007b) The business case for automated software engineering. In: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, ACM, pp 303-312
- Menzies T, Greenwald J, Frank A (2007c) Data mining static code attributes to learn defect predictors. IEEE transactions on software engineering 33(1):2-13
- Menzies T, Greenwald J, Frank A (2007d) Data mining static code attributes to learn defect predictors. IEEE Transactions on Software Engineering Available from http://menzies.us/pdf/06learnPredict.pdf
- Menzies T, Williams S, Boehm B, Hihn J (2009) How to avoid drastic software process change (using stochastic stability). In: Proceedings of the 31st International Conference on Software Engineering, IEEE Computer Society, Washington, DC, USA, ICSE '09, pp 540-550, DOI 10.1109/ICSE.2009.5070552, URL http://dx. doi.org/10.1109/ICSE.2009.5070552
- Menzies T, Butcher A, Cok D, Marcus A, Layman L, Shull F, Turhan B, Zimmermann T (2013) Local versus Global Lessons for Defect Prediction and Effort Estimation. IEEE Transactions on Software Engineering 39(6):822-834, DOI 10.1109/TSE. 2012.83
- Menzies T, Krishna R, Pryor D (2016) The promise repository of empirical software engineering data. north carolina state university, department of computer science
- Metzger A, Pohl K (2014) Software product line engineering and variability manage- ment: achievements and challenges. In: Proc. on Future of Software Engineering, ACM, pp 70-84
- Mkaouer MW, Kessentini M, Bechikh S, Deb K, Ó Cinnéide M (2014) Recommenda- tion system for software refactoring using innovization and interactive dynamic op- timization. In: Proc. 29th ACM/IEEE Intl. Conf. Automated Software Engineering, ACM, New York, NY, USA, ASE '14, pp 331-336, DOI 10.1145/2642937.2642965
- Moghadam IH (2011) Search Based Software Engineering: Third Intl. Symposium, SSBSE 2011, Szeged, Hungary, September 10-12, 2011. Proceedings, Springer Berlin Heidelberg, Berlin, Heidelberg, chap Multi-level Automated Refactoring Using Design Exploration, pp 70-75. DOI 10.1007/978-3-642-23716-4 9
- Nagappan N, Ball T (2005) Static analysis tools as early indicators of pre-release defect density. In: Proc. 27th Intl. Conf. Software engineering, ACM, pp 580-586
- Nam J, Kim S (2015a) Heterogeneous defect prediction. In: Proc. 2015 10th Jt. Meet. Found. Softw. Eng. -ESEC/FSE 2015, ACM Press, New York, New York, USA, pp 508-519, DOI 10.1145/2786805.2786814
- Nam J, Kim S (2015b) Heterogeneous defect prediction. In: Proc. 2015 10th Jt. Meet. Found. Softw. Eng. -ESEC/FSE 2015, ACM Press, New York, New York, USA, pp 508-519, DOI 10.1145/2786805.2786814
- Nam J, Pan SJ, Kim S (2013a) Transfer defect learning. In: Proc. Intl. Conf. on Software Engineering, pp 382-391, DOI 10.1109/ICSE.2013.6606584
- Nam J, Pan SJ, Kim S (2013b) Transfer defect learning. In: Proc. Intl. Conf. Software Engineering, pp 382-391, DOI 10.1109/ICSE.2013.6606584
- Nam J, Fu W, Kim S, Menzies T, Tan L (2017) Heterogeneous defect prediction. IEEE Transactions on Software Engineering PP(99):1-1, DOI 10.1109/TSE.2017.2720603
- Nayrolles M, Hamou-Lhadj A (2018) Clever: Combining code metrics with clone detection for just-in-time fault prevention and resolution in large industrial projects. In: Mining Software Repositories O'Keeffe M, Cinnéide MO (2008) Search-based refactoring: An empirical study. J Softw Maint Evol 20(5):345-364, DOI 10.1002/smr.v20:5
- O'Keeffe MK, Cinneide MO (2007) Getting the most from search-based refactoring. In: Proc. 9th Annual Conf. Genetic and Evolutionary Computation, ACM, New York, NY, USA, GECCO '07, pp 1114-1120, DOI 10.1145/1276958.1277177
- Oliveira P, Valente MT, Lima FP (2014) Extracting relative thresholds for source code metrics. In: 2014 Software Evolution Week -IEEE Conf. Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), IEEE, pp 254-263, DOI 10.1109/CSMR-WCRE.2014.6747177
- Ostrand TJ, Weyuker EJ, Bell RM (2004) Where the bugs are. In: ISSTA '04: Proc. the 2004 ACM SIGSOFT Intl. symposium on Software testing and analysis, ACM, New York, NY, USA, pp 86-96
- Passos C, Braun AP, Cruzes DS, Mendonca M (2011) Analyzing the impact of beliefs in software project practices. In: ESEM'11
- Peters F, Menzies T, Layman L (2015) LACE2: Better privacy-preserving data sharing for cross project defect prediction. In: Proc. Intl. Conf. Software Engineering, vol 1, pp 801-811, DOI 10.1109/ICSE.2015.92
- Rahman F, Devanbu P (2013) How, and why, process metrics are better. In: 2013 35th International Conference on Software Engineering (ICSE), IEEE, pp 432-441
- Rathore SS, Kumar S (2019) A study on software fault prediction techniques. Artificial Intelligence Review 51(2):255-327, DOI 10.1007/s10462-017-9563-5, URL https: //doi.org/10.1007/s10462-017-9563-5
- Ruhe G (2010) Product release planning: methods, tools and applications. CRC Press Ruhe G, Greer D (2003) Quantitative studies in software release planning under risk and resource constraints. In: Empirical Software Engineering, 2003. ISESE 2003. Proceedings. 2003 Intl. Symposium on, IEEE, pp 262-270
- Russell S, Norvig P (1995) Artificial Intelligence: A Modern Approach. Prentice-Hall, Egnlewood Cliffs
- Sayyad AS, Ingram J, Menzies T, Ammar H (2013) Scalable product line configuration: A straw to break the camel's back. In: Automated Software Engineering (ASE), 2013 IEEE/ACM 28th Intl. Conf., IEEE, pp 465-474
- Sharma A, Jiang J, Bommannavar P, Larson B, Lin J (2016) Graphjet: real-time con- tent recommendations at twitter. Proceedings of the VLDB Endowment 9(13):1281- 1292
- Shatnawi R (2010) A quantitative investigation of the acceptable risk levels of object-oriented metrics in open-source systems. IEEE Transactions on Software Engineering 36(2):216-225, DOI 10.1109/TSE.2010.9
- Shatnawi R, Li W (2008) The effectiveness of software metrics in identifying error- prone classes in post-release software evolution process. Journal of systems and software 81(11):1868-1882
- Shull F, ad B Boehm VB, Brown A, Costa P, Lindvall M, Port D, Rus I, Tesoriero R, Zelkowitz M (2002) What we have learned about fighting defects. In: Proceedings of 8th International Software Metrics Symposium, Ottawa, Canada, pp 249-258
- Son TC, Pontelli E (2006) Planning with preferences using logic programming. Theory and Practice of Logic Programming 6(5):559-607
- Stroggylos K, Spinellis D (2007) Refactoring-does it improve software quality? In: Software Quality, 2007. WoSQ'07: ICSE Workshops 2007. Fifth Intl. Workshop on, IEEE, pp 10-10
- Tallam S, Gupta N (2006) A concept analysis inspired greedy algorithm for test suite minimization. ACM SIGSOFT Software Engineering Notes 31(1):35-42
- Theisen C, Herzig K, Morrison P, Murphy B, Williams L (2015) Approximating attack surfaces with stack traces. In: ICSE'15
- Turhan B, Menzies T, Bener AB, Di Stefano J (2009) On the relative value of cross-company and within-company data for defect prediction. Empirical Software Engineering 14(5):540-578
- Turhan B, Tosun A, Bener A (2011) Empirical evaluation of mixed-project defect prediction models. In: Software Engineering and Advanced Applications (SEAA), 2011 37th EUROMICRO Conf., IEEE, pp 396-403
- Weimer W, Nguyen T, Le Goues C, Forrest S (2009) Automatically finding patches using genetic programming. In: Proc. Intl. Conf. Software Engineering, IEEE, pp 364-374, DOI 10.1109/ICSE.2009.5070536
- Wooldridge M, Jennings NR (1995) Intelligent agents: Theory and practice. The knowledge engineering review 10(2):115-152
- Ying R, He R, Chen K, Eksombatchai P, Hamilton WL, Leskovec J (2018) Graph convolutional neural networks for web-scale recommender systems. In: Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, ACM, pp 974-983
- Yoo S, Harman M (2012) Regression testing minimization, selection and prioritization: a survey. Software Testing, Verification and Reliability 22(2):67-120
- Zhang Q, Li H (2007) MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition. Evolutionary Computation, IEEE Transactions on 11(6):712-731, DOI 10.1109/TEVC.2007.892759
- Zimmermann T, Nagappan N, Gall H, Giger E, Murphy B (2009) Cross-project defect prediction. Proc 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium -E p 91, DOI 10.1145/1595696.1595713
- Zitzler E, Künzli S (2004) Indicator-Based Selection in Multiobjective Search. In: Parallel Problem Solving from Nature -PPSN VIII, Lecture Notes in Computer Science, vol 3242, Springer Berlin Heidelberg, pp 832-842, DOI 10.1007/978-3-540-30217-9\ 84
- Zitzler E, Laumanns M, Thiele L (2002) SPEA2: Improving the Strength Pareto Evolutionary Algorithm for Multiobjective Optimization. In: Evolutionary Methods for Design, Optimisation, and Control, CIMNE, Barcelona, Spain, pp 95-100