Software analytics

Software Analytics refers to analytics specific to software systems and related software development processes. It aims at describing, predicting, and improving development, maintenance, and management of complex software systems. Methods and techniques of software analytics typically rely on gathering, analyzing, and visualizing information found in the manifold data sources in the scope of software systems and their software development processes---software analytics "turns it into actionable insight to inform better decisions related to software".[1]

Software analytics represents a base component of software diagnosis that generally aims at generating findings, conclusions, and evaluations about software systems and their implementation, composition, behavior, and evolution. Software analytics frequently uses and combines approaches and techniques from statistics, prediction analysis, data mining, and scientific visualization. For example, software analytics can map data by means of software maps that allow for interactive exploration.

Data under exploration and analysis by Software Analytics exists in software lifecycle, including source code, software requirement specifications, bug reports, test cases, execution traces/logs, and real-world user feedback, etc. Data plays a critical role in modern software development, because hidden in the data is the information and insight about the quality of software and services, the experience that software users receive, as well as the dynamics of software development.

Insightful information obtained by Software Analytics is information that conveys meaningful and useful understanding or knowledge towards performing the target task. Typically insightful information cannot be easily obtained by direct investigation on the raw data without the aid of analytic technologies.

Actionable information obtained by Software Analytics is information upon which software practitioners can come up with concrete solutions (better than existing solutions if any) towards completing the target task.

Software Analytics 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, etc., 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 becomes a critical means to monitor, analyze, understand and improve system quality.

Software Users. Users are (almost) always right because ultimately they will use the software and services in various ways. Therefore, it is important to continuously provide the best experience to users. 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.[2][3] Software development has evolved from its traditional form to exhibiting different characteristics. The process is more agile and engineers are more collaborative than that in the past. Analytics on software development data provides a powerful mechanism that software practitioners can leverage to achieve higher development productivity.

In general, the primary technologies employed by Software Analytics include analytical technologies such as machine learning, data mining and pattern recognition, information visualization, as well as large-scale data computing & processing.

History

In May 2009, Software Analytics was first coined and proposed when Dr. Dongmei Zhang founded the Software Analytics Group (SA) at Microsoft Research Asia (MSRA). The term has become well known in the software engineering research community after a series of tutorials and talks on software analytics were given by Dr. Dongmei Zhang and her colleagues, in collaboration with Professor 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),[4] a talk at the International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011),[5] a tutorial and a keynote talk given by Dr. Dongmei Zhang at the IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012),[6][7] a tutorial at the International Conference on Software Engineering (ICSE 2012) - Software Engineering in Practice Track,[8] and a keynote talk given by Dr. Dongmei Zhang at the Working Conference on Mining Software Repositories (MSR 2012).[9]

In November 2010, Software Development Analytics (Software Analytics with 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.[10] A goldfish bowl panel on software development analytics was organized by Thomas Zimmermann and Professor Tim Menzies from West Virginia University at the International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice track.[11]

Software Analytics Providers

See also

References

  1. Harald Gall, Tim Menzies, Laurie Williams, and Thomas Zimmerman. "Software Development Analytics". Dagstuhl Reports, Vol. 4, Issue 6, pp. 64-83.
  2. 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.
  3. Kenneth Hullett, Nachiappan Nagappan, Eric Schuh, and John Hopson, "Data Analytics for Game Development (NIER Track)". In Proceedings of the International Conference on Software Engineering, May 2011, pp. 940-943.
  4. 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.
  5. 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
  6. 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.
  7. 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.
  8. 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
  9. 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.
  10. 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.
  11. 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.

External links

This article is issued from Wikipedia - version of the Friday, October 30, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.