Mining Developer's Behavior from Web-Based IDE Logs

The birth of cloud-based development environments makes available an increasing number of data coming out from the interaction of different developers with a diverse level of expertise. This data, if opportunely captured and analyzed, can be useful to understand how developers head the coding activities and can suggest members of developers community how to improve their performances. This paper presents a framework allowing to generate event logs from cloud-based IDE. These event logs are then examined using a process mining technique to extract the developers' coding processes and compare them in the shared coding environment. The approach can be used to discover emergent and interesting developers' behavior. Thus, we compare the coding process extracted by developers with different skills. To validate our approach, we describe the results of a study in which we investigate the coding activities of forty students of an advanced Java programming course performing a given programming task—during four assignments. Results also prove that users with different performances possess distinct attitudes highlighting that the adopted process mining technique can be useful to comprehend how developers can improve their coding skills.

[1]  Johannes Schneider,et al.  Mining Sequences of Developer Interactions in Visual Studio for Usage Smells , 2017, IEEE Transactions on Software Engineering.

[2]  Fabrizio Maria Maggi,et al.  Do activity lifecycles affect the validity of a business rule in a business process? , 2016, Inf. Syst..

[3]  Ekkart Kindler,et al.  Incremental Workflow Mining Based on Document Versioning Information , 2005, ISPW.

[4]  Fabrizio Maria Maggi,et al.  Lights, Camera, Action! Business Process Movies for Online Process Discovery , 2014, Business Process Management Workshops.

[5]  Boudewijn F. van Dongen,et al.  Towards Improving the Representational Bias of Process Mining , 2011, SIMPDA.

[6]  Wil M. P. van der Aalst,et al.  Process Mining - Discovery, Conformance and Enhancement of Business Processes , 2011 .

[7]  Boudewijn F. van Dongen,et al.  Causal Nets: A Modeling Language Tailored towards Process Discovery , 2011, CONCUR.

[8]  Michele Lanza,et al.  Visualizing the workflow of developers , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[9]  Boudewijn F. van Dongen,et al.  Component behavior discovery from software execution data , 2016, 2016 IEEE Symposium Series on Computational Intelligence (SSCI).

[10]  Wil M. P. van der Aalst,et al.  Big Software on the Run In Vivo Software Analytics Based on Process Mining (Keynote) , 2015 .

[11]  Boudewijn F. van Dongen,et al.  Process Mining Framework for Software Processes , 2007, ICSP.

[12]  Genny Tortora,et al.  A Fuzzy Clustering-based Approach to study Malware Phylogeny , 2018, 2018 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE).

[13]  Antonella Santone,et al.  k-Bisimulation: A Bisimulation for Measuring the Dissimilarity Between Processes , 2015, FACS.

[14]  Wil M. P. van der Aalst,et al.  Recursion aware modeling and discovery for hierarchical software event log analysis , 2017, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[15]  Tom DeMarco,et al.  Peopleware: Productive Projects and Teams , 1987 .

[16]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[17]  Fabio Martinelli,et al.  A fuzzy-based process mining approach for dynamic malware detection , 2017, 2017 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE).

[18]  W.M.P. van der Aalst,et al.  Software architectural model discovery from execution data , 2018 .

[19]  Fabio Martinelli,et al.  Dynamic malware detection and phylogeny analysis using process mining , 2018, International Journal of Information Security.

[20]  Wil M. P. van der Aalst,et al.  Process mining in software systems: Discovering real-life business transactions and process models from distributed systems , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[21]  Wil M.P. van der Aalst,et al.  Fuzzy Mining - Adaptive Process Simplification Based on Multi-perspective Metrics , 2007, BPM.

[22]  Abreu Fernando Brito e,et al.  Software Development Process Mining: Discovery, Conformance Checking and Enhancement , 2016 .

[23]  Brad A. Myers,et al.  Capturing and analyzing low-level events from the code editor , 2011, PLATEAU '11.