Software analytics: Difference between revisions

Content deleted Content added
Taoxie (talk | contribs)
Reverting edit(s) by Jimsteven1993 (talk) to rev. 1266529382 by Bolinasfrank: write the article first (UV 0.1.6)
 
(85 intermediate revisions by 59 users not shown)
Line 1:
{{Expert needed|software|reason=it appears to misrepresent the history of software analytics|date=December 2014}}
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 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.
 
'''Software analytics''' is the [[analytics]] specific to the ___domain of [[software system]]s taking into account [[source code]], static and dynamic characteristics (e.g., [[software metric]]s) as well as related processes of their [[software development|development]] and [[software evolution|evolution]]. It aims at describing, monitoring, predicting, and improving the efficiency and effectiveness of [[software engineering]] throughout the [[software lifecycle]], in particular during [[software development]] and [[software maintenance]]. The data collection is typically done by mining [[software repository|software repositories]], but can also be achieved by collecting user actions or production data.
'''Software Analytics''' is to utilize the data-driven approach to enable software practitioners to perform data exploration and analysis in order to obtain insightful and actionable information for various tasks around software systems, software users, and software development process.
 
== Definitions ==
Insightful information 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 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 aims to obtain insightful and actionable information from software artifacts that help practitioners accomplish tasks related to software development, systems, and users."<ref name="IEEESoftware-2013" /> --- centers on analytics applied to artifacts a software system is composed of.
Software Analytics focuses on trinity of software systems, software users, and software development process:
* "Software analytics is analytics on software data for managers and software engineers with the aim of empowering software development individuals and teams to gain and share insight form their data to make better decisions."<ref name="ICSESEIP12InfoNeeds"/> --- strengthens the core objectives for methods and techniques of software analytics, focusing on both software artifacts and activities of involved developers and teams.
* "Software analytics (SA) represents a branch of [[big data]] analytics. SA is concerned with the analysis of all software artifacts, not only source code. [...] These tiers vary from the higher level of the management board and setting the enterprise vision and portfolio management, going through project management planning and implementation by software developers."<ref name="BIGDSE2015" /> --- reflects the broad scope including various stakeholders.
 
== Aims ==
'''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 becomes a critical means to monitor, analyze, understand and improve system quality.
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.
* Insightful information obtained by software analytics conveys meaningful and useful understanding or knowledge towards performing target tasks. Typically, it cannot be easily obtained by direct examining raw big data without the aid of analytics methods and techniques.
* Actionable information obtained by software analytics steers or prescribes solutions that stakeholders in software engineering processes may take (e.g., software practitioners, development leaders, or C-level management).
 
== Approach ==
'''Software Users'''. Users are (almost) always right because ultimately they will use for 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.
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."<ref name="ICSESEIP12InfoNeeds"/>
'''Software Development Process'''. 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.
 
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."<ref>Harald Gall, Tim Menzies, [[Laurie Williams (software engineer)|Laurie Williams]], and Thomas Zimmerman. "Software Development Analytics". Dagstuhl Reports, Vol. 4, Issue 6, pp. 64-83.</ref> [[telemetry | Telemetry data]] as well as execution traces or logs can also be taken into account.
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.
 
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 map]]s, 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.<ref>{{Cite journal|last1=Martínez-Fernández|first1=Silverio|last2=Vollmer|first2=Anna Maria|last3=Jedlitschka|first3=Andreas|last4=Franch|first4=Xavier|last5=Lopez|first5=Lidia|last6=Ram|first6=Prabhat|last7=Rodriguez|first7=Pilar|last8=Aaramaa|first8=Sanja|last9=Bagnato|first9=Alessandra|date=2019|title=Continuously assessing and improving software quality with software analytics tools: a case study|journal=IEEE Access|volume=7|pages=68219–68239|doi=10.1109/ACCESS.2019.2917403|issn=2169-3536|url=https://upcommons.upc.edu/bitstream/2117/133374/1/FINAL-Access-Paper-preprint.pdf|doi-access=free|bibcode=2019IEEEA...768219M }}</ref>
 
== History ==
{{Expert needed|Software|reason=it misrepresents the history of software analytics, strengthening a single researcher group that claims to have coined the expression software analytics|date=August 2017}}
In May 2009, Software Analytics was first coined and proposed when Dr. Dongmei Zhang founded [http://research.microsoft.com/en-us/groups/sa/ 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, in collaboration with Professor [http://people.engr.ncsu.edu/txie/ 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), a tutorial and a keynote talk given by Dr. Dongmei Zhang at the IEEE-CS Conference on Software Engineering Education and Training ([http://conferences.computer.org/cseet/ CSEE&T 2012]), a tutorial at the International Conference on Software Engineering ([http://www.ifi.uzh.ch/icse2012/ ICSE 2012]) - Software Engineering in Practice Track, and a keynote talk given by Dr. Dongmei Zhang at the Working Conference on Mining Software Repositories ([http://2012.msrconf.org/ MSR 2012]).
 
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).<ref>{{Cite web |last=Brannon |first=Brian G. |date=23 June 2013 |title=Software Analytics in Practice |url=https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/ieeesoft13-softanalytics.pdf |access-date=31 December 2024 |website=microsoft.com}}</ref>
 
In May 2009, Software Analytics was first coined and proposed when Dr. Dongmei Zhang founded [http://research.microsoft.com/en-us/groups/sa/ the Software Analytics Group (SA) at Microsoft Research Asia (MSRA)]. 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 Dr.the DongmeiSoftware ZhangAnalytics Group, in collaboration with Professor [http://people.engr.ncsu.edu/txie/ 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),<ref name="ASE2011" /> a talk at the International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011),<ref name="MALETS" /> a tutorial and a keynote talk given by Dr. Dongmei Zhang at the IEEE-CS Conference on Software Engineering Education and Training,<ref name="CSEETKeynote" ([http://conferences.computer.org/cseet/><ref CSEE&Tname="CSEETTutorial" 2012]),/> a tutorial at the International Conference on Software Engineering ([http://www.ifi.uzh.ch/icse2012/ ICSE 2012]) - Software Engineering in Practice Track,<ref name="ICSETutorial" /> and a keynote talk given by Dr. Dongmei Zhang at the Working Conference on Mining Software Repositories ([http://2012.msrconf.org/<ref MSRname="MSRKeynote" 2012])./>
 
In November 2010, Software Development Analytics (Software Analytics with a focus on Software Development) was proposed by [http://research.microsoft.com/en-us/people/tzimmer/ Thomas Zimmermann] and his colleagues at [http://research.microsoft.com/en-us/groups/ese/ the Empirical Software Engineering Group (ESE) at Microsoft Research Redmond] in their FoSER 2010 paper.<ref name="FoSER" /> A goldfish bowl panel on software development analytics was organized by [http://research.microsoft.com/en-us/people/tzimmer/ Thomas Zimmermann] and Professor [http://menzies.us/ [Tim Menzies]] from West Virginia University at the International Conference on Software Engineering ([http://www.ifi.uzh.ch/icse2012/ ICSE 2012]), Software Engineering in Practice trackTrack.<ref name="Goldfish" />
 
==See also==
Line 37 ⟶ 43:
 
== References ==
{{Reflist|
* 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. [http://research.microsoft.com/apps/pubs/default.aspx?id=136301 PDF]
refs=
* 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. [http://dl.acm.org/citation.cfm?id=1985952 PDF]
*<ref Dongmeiname="FoSER">Raymond Zhang,P. YingnongL. Dang, Jian-Guang Lou, Shi Han, Haidong Zhang,Buse and TaoThomas XieZimmermann. "Software Analytics asfor aSoftware Learning Case in Practice: Approaches and ExperiencesDevelopment.". In Proceedings of Internationalthe Workshop on MachineFuture Learning Technologies inof Software Engineering Research (MALETSFoSER 20112010), LawrenceSanta Fe, KansasNM, USA, November 20112010, pp. [http://people77-80.engr.ncsu.edu</txie/publications/malets11-analytics.pdf PDF]ref>[httpshttp://sitesresearch.googlemicrosoft.com/siteapps/xsoftanalyticspubs/malets11-msrasadefault.pdfaspx?attredirectsid=0136301 SlidesPDF]
 
* 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.
<ref name="MALETS">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. [http://people.engr.ncsu.edu/txie/publications/malets11-analytics.pdf PDF][https://sites.google.com/site/xsoftanalytics/malets11-msrasa.pdf?attredirects=0 Slides]</ref>
* 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.
<ref name="BIGDSE2015">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.</ref>
* 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.
 
* 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. [http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf Slides]
*<ref Timname="ASE2011">Dongmei MenziesZhang and ThomasTao ZimmermannXie. "Goldfish Bowl PanelxSA: eXtreme Software DevelopmentAnalytics - Marriage of eXtreme Computing and Software Analytics." In Proceedings of the 34th26th IEEE/ACM International Conference on Automated Software Engineering (ICSEASE 20122011), Software Engineering in PracticeTutorial, ZurichLawrence, SwitzerlandKansas, JuneNovember 2012, pp. 1032-10332011.</ref>
 
* 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. [http://research.microsoft.com/apps/pubs/?id=144543 PDF]
<ref name="IEEESoftware-2013">D. Zhang, S. han, Y. Dan, J.-G. Lou, H Zhang: "Software Analytics in Practice". IEEE Software, Sept./Oct. 2013, pp. 30-35.</ref>
 
*<ref name="CSEETKeynote">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. </ref>
 
*<ref name="CSEETTutorial">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. </ref>
 
*<ref name="MSRKeynote">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.</ref>
 
*<ref name="ICSETutorial">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. [http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf Slides]</ref>
 
*<ref Raymond P. L.name="Goldfish">Tim BuseMenzies and Thomas Zimmermann. "InformationGoldfish NeedsBowl forPanel: Software Development Analytics." In Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), Software Engineering in Practice, Zurich, Switzerland, June 2012, pp. 9871032-9961033. [http:<//research.microsoft.com/apps/pubs/?id=144543 PDF]ref>
 
*<ref name="ICSESEIP12InfoNeeds">Raymond P. L. Buse and Thomas Zimmermann. "AnalyticsInformation Needs for Software Development Analytics." In Proceedings of the Workshop34th onInternational FutureConference ofon Software Engineering Research (FoSERICSE 20102012), SantaSoftware FeEngineering in Practice, NMZurich, USASwitzerland, NovemberJune 20102012, pp. 77987-80996.</ref> [http://research.microsoft.com/apps/pubs/default.aspx?id=136301144543 PDF]
}}
 
==External links==
* [http://www.infoworld.com/t/applications/turn-application-metrics-business-value-241019/ InfoWorld: Turn application metrics into business value]
* [http://research.microsoft.com/en-us/groups/sa/ Microsoft Research Asia Software Analytics Group (SA)]
* [http://research.microsoft.com/en-us/groups/ese/ Microsoft Research Redmond Empirical Software Engineering Group (ESE)]
* [http://conferences.computer.org/cseet/2012/CSEET_2012/Dongmei.html Software Analytics in Practice and Its Implications for Education and Training, Keynote by Dongmei Zhang at the 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012)]
* [http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_approachesandexperiences_msr2012.pdf Software Analytics in Practice – Approaches and Experiences, Keynote slides by Dongmei Zhang at the 9th Working Conference on Mining Software Repositories (MSR 2012)]
* [http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf Software Analytics in Practice, Mini-tutorial slides by Dongmei Zhang and Tao Xie at the 34th International Conference on Software Engineering (ICSE 2012)]
* [httpshttp://sites.googlepinterest.com/sitetomzimmermann/xsoftanalyticssoftware-analytics/ Software Analytics PortalPinterest]
* [https://azure.microsoft.com/en-us/services/application-insights/ Microsoft Azure - Application Insights in Azure]
* [http://pinterest.com/tomzimmermann/software-analytics/ Software Analytics Pinterest]
 
[[Category:Mining Software Repositories]]
[[Category:Software maintenance]]
[[Category:Types of analytics]]
 
 
{{software-eng-stub}}