Software analytics aims at supporting decisions and generating insights, i.e., findings, conclusions, and evaluations about software systems and their implementation, composition, behavior, quality, evolution as well as about the activities of various stakeholders of these processes.
Methods, techniques, and tools of software analytics typically rely on gathering, measuring, analyzing, and visualizing information found in the manifold data sources stored in software development environments and ecosystems. Software systems are well suited for applying analytics because, on the one hand, mostly formalized and precise data is available and, on the other hand, software systems are extremely difficult to manage ---in a nutshell: "software projects are highly measurable, but often unpredictable."4
Core data sources include source code, "check-ins, work items, bug reports and test executions [...] recorded in software repositories such as CVS, Subversion, GIT, and Bugzilla."5 Telemetry data as well as execution traces or logs can also be taken into account.
Automated analysis, massive data, and systematic reasoning support decision-making at almost all levels. In general, key technologies employed by software analytics include analytical technologies such as machine learning, data mining, statistics, pattern recognition, information visualization as well as large-scale data computing & processing. For example, software analytics tools allow users to map derived analysis results by means of software maps, which support interactively exploring system artifacts and correlated software metrics. There are also software analytics tools using analytical technologies on top of software quality models in agile software development companies, which support assessing software qualities (e.g., reliability), and deriving actions for their improvement.6
In 2009, the term "software analytics" was used in a paper by Dongmei Zhang, Shi Han, Yingnong Dang, Jian-Guang Lou, and Haidong Zhang in part by the Software Analytics Group (SA) at Microsoft Research Asia (MSRA).7
The term has since become well known in the software engineering research community after a series of tutorials and talks on software analytics were given by the Software Analytics Group, in collaboration with Tao Xie from North Carolina State University, at software engineering conferences including a tutorial at the IEEE/ACM International Conference on Automated Software Engineering (ASE 2011),8 a talk at the International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011),9 a tutorial and a keynote talk given by Zhang at the IEEE-CS Conference on Software Engineering Education and Training,1011 a tutorial at the International Conference on Software Engineering - Software Engineering in Practice Track,12 and a keynote talk given by Zhang at the Working Conference on Mining Software Repositories.13
In November 2010, Software Development Analytics (Software Analytics with a focus on Software Development) was proposed by Thomas Zimmermann and his colleagues at the Empirical Software Engineering Group (ESE) at Microsoft Research Redmond in their FoSER 2010 paper.14 A goldfish bowl panel on software development analytics was organized by Zimmermann and Tim Menzies from West Virginia University at the International Conference on Software Engineering, Software Engineering in Practice Track.15
D. Zhang, S. han, Y. Dan, J.-G. Lou, H Zhang: "Software Analytics in Practice". IEEE Software, Sept./Oct. 2013, pp. 30-35. ↩
Raymond P. L. Buse and Thomas Zimmermann. "Information Needs for Software Development Analytics." In Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice, Zurich, Switzerland, June 2012, pp. 987-996. ↩
T. M. Abdellatif, L. F. Capretz, D. Ho. "Software Analytics to Software Practice: A Systematic Literature Review". 1. Int'l Workshop on Big Data Engineering, 2015, pp. 30-36. ↩
Harald Gall, Tim Menzies, Laurie Williams, and Thomas Zimmerman. "Software Development Analytics". Dagstuhl Reports, Vol. 4, Issue 6, pp. 64-83. /wiki/Laurie_Williams_(software_engineer) ↩
Martínez-Fernández, Silverio; Vollmer, Anna Maria; Jedlitschka, Andreas; Franch, Xavier; Lopez, Lidia; Ram, Prabhat; Rodriguez, Pilar; Aaramaa, Sanja; Bagnato, Alessandra (2019). "Continuously assessing and improving software quality with software analytics tools: a case study" (PDF). IEEE Access. 7: 68219–68239. Bibcode:2019IEEEA...768219M. doi:10.1109/ACCESS.2019.2917403. ISSN 2169-3536. https://upcommons.upc.edu/bitstream/2117/133374/1/FINAL-Access-Paper-preprint.pdf ↩
Brannon, Brian G. (23 June 2013). "Software Analytics in Practice" (PDF). microsoft.com. Retrieved 31 December 2024. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/ieeesoft13-softanalytics.pdf ↩
Dongmei Zhang and Tao Xie. "xSA: eXtreme Software Analytics - Marriage of eXtreme Computing and Software Analytics." In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), Tutorial, Lawrence, Kansas, November 2011. ↩
Dongmei Zhang, Yingnong Dang, Jian-Guang Lou, Shi Han, Haidong Zhang, and Tao Xie. "Software Analytics as a Learning Case in Practice: Approaches and Experiences". In Proceedings of International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011), Lawrence, Kansas, November 2011. PDFSlides http://people.engr.ncsu.edu/txie/publications/malets11-analytics.pdf ↩
Dongmei Zhang. "Software Analytics in Practice and Its Implications for Education and Training." Keynote. In Proceedings of the 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012), Tutorial, Nanjing, China, April 2012. ↩
Dongmei Zhang, Yingnong Dang, Shi Han, and Tao Xie. "Teaching and Training for Software Analytics." In Proceedings of the 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012), Tutorial, Nanjing, China, April 2012. ↩
Dongmei Zhang and Tao Xie. "Software Analytics in Practice: Mini Tutorial." In Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice, Mini Tutorial, Zurich, Switzerland, June 2012, pp. 997. Slides http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf ↩
Dongmei Zhang. "MSR 2012 keynote: Software Analytics in Practice - Approaches and Experiences." In Proceedings of the 9th Working Conference on Mining Software Repositories (MSR 2012), Zurich, Switzerland, June 2012, pp. 1. ↩
Raymond P. L. Buse and Thomas Zimmermann. "Analytics for Software Development." In Proceedings of the Workshop on Future of Software Engineering Research (FoSER 2010), Santa Fe, NM, USA, November 2010, pp. 77-80. ↩
Tim Menzies and Thomas Zimmermann. "Goldfish Bowl Panel: Software Development Analytics." In Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice, Zurich, Switzerland, June 2012, pp. 1032-1033. ↩