Process mining software repositories from student projects in an undergraduate software engineering course

An undergraduate level Software Engineering courses generally consists of a team-based semester long project and emphasizes on both technical and managerial skills. Software Engineering is a practice-oriented and applied discipline and hence there is an emphasis on hands-on development, process, usage of tools in addition to theory and basic concepts. We present an approach for mining the process data (process mining) from software repositories archiving data generated as a result of constructing software by student teams in an educational setting. We present an application of mining three software repositories: team wiki (used during requirement engineering), version control system (development and maintenance) and issue tracking system (corrective and adaptive maintenance) in the context of an undergraduate Software Engineering course. We propose visualizations, metrics and algorithms to provide an insight into practices and procedures followed during various phases of a software development life-cycle. The proposed visualizations and metrics (learning analytics) provide a multi-faceted view to the instructor serving as a feedback tool on development process and quality by students. We mine the event logs produced by software repositories and derive insights such as degree of individual contributions in a team, quality of commit messages, intensity and consistency of commit activities, bug fixing process trend and quality, component and developer entropy, process compliance and verification. We present our empirical analysis on a software repository dataset consisting of 19 teams of 5 members each and discuss challenges, limitations and recommendations.

[1]  Michael J. Rees,et al.  A feasible user story tool for agile software development? , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[2]  Jesús M. González-Barahona,et al.  Mining student repositories to gain learning analytics. An experience report , 2013, 2013 IEEE Global Engineering Education Conference (EDUCON).

[3]  Chiara Francalanci,et al.  Empirical Analysis of the Bug Fixing Process in Open Source Projects , 2008, OSS.

[4]  T. Reichlmayr Enhancing the student project team experience with blended learning techniques , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[5]  Foutse Khomh,et al.  An Entropy Evaluation Approach for Triaging Field Crashes: A Case Study of Mozilla Firefox , 2011, 2011 18th Working Conference on Reverse Engineering.

[6]  Louis Glassy,et al.  Using version control to observe student software development processes , 2006 .

[7]  Alexander Serebrenik,et al.  Mining student capstone projects with FRASR and ProM , 2011, OOPSLA Companion.

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

[9]  Ashish Sureka,et al.  Nirikshan: mining bug report history for discovering process maps, inefficiencies and inconsistencies , 2014, ISEC '14.

[10]  Greg Wilson,et al.  Mining student CVS repositories for performance indicators , 2005, MSR.

[11]  Johan Peeters Agile Security Requirements Engineering , 2005 .

[12]  Martin Rinard,et al.  Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion , 2010 .

[13]  Eleni Stroulia,et al.  Using CVS Historical Information to Understand How Students Develop Software , 2004, MSR.

[14]  Ashish Sureka,et al.  Comparison of Seven Bug Report Types: A Case-Study of Google Chrome Browser Project , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[15]  Judy Kay,et al.  Mining patterns of events in students’ teamwork data , 2006 .

[16]  James M. Hogan,et al.  Developing the Software Engineering Team , 2005, ACE.

[17]  Curt Jones Using subversion as an aid in evaluating individuals working on a group coding project , 2010 .