Software analytics is to enable software practitioners to perform data exploration and analysis in order to obtain insightful and actionable information for data-driven tasks around software and services.
Insightful information is information that conveys meaningful and useful understanding or knowledge towards performing the target task. Typically insightful information is not easily attainable by directly investigating the raw data without aid of analytic technologies. Actionable information is information upon which software practitioners can come up with concrete solutions (better than existing solutions if any) towards completing the target task.
A huge wealth of various data exists in software lifecycle, including source code, feature specifications, bug reports, test cases, execution traces/logs, and real-world user feedback, etc. Data plays an essential role in modern software development, because hidden in the data is information about the quality of software and services as well as the dynamics of software development. With various analytical and computing technologies, such as pattern recognition, machine learning, data mining, information visualization and large-scale data computing & processing, software analytics is to enable software practitioners to perform effective and efficient data exploration and analysis in order to obtain insightful and actionable information for data-driven tasks in engineering software and services.
Software analytics broadly focuses on trinity of software systems, software users, and software development process:
Software Systems. Depending on scale and complexity, the spectrum of software systems can span from operating systems for devices to large networked systems that consist of thousands of servers. System quality such as reliability, performance and security, is the key to success of modern software systems. As the system scale and complexity greatly increase, larger amount of data, e.g., run-time traces and logs, is generated; and data has become a critical media to monitor, analyze, understand and improve system quality.
Software Users. Users are (almost) always right because ultimately they pay for the software and services in various ways. Therefore, it is important to continuously create the best user experience. Usage data collected from the real world reveals how users interact with software and services. The data is incredibly valuable for software practitioners to better understand their customers and gain insights on how to improve user experience accordingly.
Software Development Process. Software development has evolved from its traditional form to exhibit different characteristics. The process is more agile and engineers are more collaborative. Analytics on software development data provides a powerful mechanism that we can leverage in order to achieve higher development productivity.
History
In May 2009, Software Analytics was first proposed when the Software Analytics Group (SA) at Microsoft Research Asia (MSRA) was founded. The term has become well known in the software engineering research community after a series of tutorials on software analytics were given at software engineering conferences such as IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012), International Conference on Software Engineering (ICSE 2012) - Software Engineering in Practice Track, and a keynote talk given by Dr. Dongmei Zhang (the manager of the SA Group at MSRA) at the 9th Working Conference on Mining Software Repositories (MSR 2012).
In November 2010, Software Development Analytics (Software Analytics with focus on Software Development) was first proposed by the Empirical Software Engineering Group (ESE) at Microsoft Research Redmond in their FoSER 2010 paper. A goldfish bowl panel on software development analytics was organized at the 34th International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice track.
See also
References
- 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. PDF
- 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
- 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, 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
- 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.
- 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. PDF
External links
- Microsoft Research Asia Software Analytics Group (SA)
- Microsoft Research Redmond Empirical Software Engineering Group (ESE)
- Software Analytics in Practice – Approaches and Experiences, Keynote slides by Dongmei Zhang at the 9th Working Conference on Mining Software Repositories (MSR 2012)
- Software Analytics in Practice, Mini-tutorial slides by Dongmei Zhang and Tao Xie at the 34th International Conference on Software Engineering (ICSE 2012)
- Software Analytics Portal
- Software Analytics Pinterest