Comparing Repositories Visually with RepoGrams

The availability of open source software projects has created an enormous opportunity for software engineering research. However, this availability requires that researchers judiciously select an appropriate set of evaluation targets and properly document this rationale. After all, the choice of targets may have a significant effect on evaluation.We developed a tool called RepoGrams to support researchers in qualitatively comparing and contrasting software projects over time using a set of software metrics. RepoGrams uses an extensible, metrics-based, visualization model that can be adapted to a variety of analyses. Through a user study of 14 software engineering researchers we found that RepoGrams can assist researchers in filtering candidate software projects and make more reasoned choices of targets for their evaluations. The tool is open source and is available online: http://repograms.net/

[1]  Malcolm Munro,et al.  Revision Towers , 2002, Proceedings First International Workshop on Visualizing Software for Understanding and Analysis.

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  Christian S. Collberg,et al.  A system for graph-based visualization of the evolution of software , 2003, SoftVis '03.

[4]  Premkumar T. Devanbu,et al.  A large scale study of programming languages and code quality in github , 2014, SIGSOFT FSE.

[5]  Michele Lanza,et al.  The small project observatory: a tool for reverse engineering software ecosystems , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[6]  Christoph Treude,et al.  Work Item Tagging: Communicating Concerns in Collaborative Software Development , 2012, IEEE Transactions on Software Engineering.

[7]  Tamara Munzner,et al.  Visualization Analysis and Design , 2014, A.K. Peters visualization series.

[8]  James A. Jones,et al.  History slicing: assisting code-evolution tasks , 2012, SIGSOFT FSE.

[9]  Michele Lanza,et al.  The evolution matrix: recovering software evolution using software visualization techniques , 2001, IWPSE '01.

[10]  Harald C. Gall,et al.  Fractal Figures: Visualizing Development Effort for CVS Entities , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[11]  Lucian Voinea,et al.  An open framework for CVS repository querying, analysis and visualization , 2006, MSR '06.

[12]  Christian Bird,et al.  Diversity in software engineering research , 2013, ESEC/FSE 2013.

[13]  Sarah Rastkar Summarizing software artifacts , 2013 .

[14]  Romain Robbes,et al.  The Small Project Observatory: Visualizing software ecosystems , 2010, Sci. Comput. Program..

[15]  Georgios Gousios,et al.  The GHTorent dataset and tool suite , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[16]  Hridesh Rajan,et al.  Boa: A language and infrastructure for analyzing ultra-large-scale software repositories , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[17]  Harald C. Gall,et al.  Analysing Software Repositories to Understand Software Evolution , 2008, Software Evolution.

[18]  Georgios Gousios,et al.  Lean GHTorrent: GitHub data on demand , 2014, MSR 2014.

[19]  Jing Li,et al.  The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies , 2010, 2010 Asia Pacific Software Engineering Conference.

[20]  Stephan Diehl,et al.  Software Visualization - Visualizing the Structure, Behaviour, and Evolution of Software , 2007 .

[21]  Peng Liu,et al.  Achieving accuracy and scalability simultaneously in detecting application clones on Android markets , 2014, ICSE.

[22]  Gail C. Murphy,et al.  Impact of developer turnover on quality in open-source software , 2015, ESEC/SIGSOFT FSE.

[23]  Daniela E. Damian,et al.  The promises and perils of mining GitHub , 2009, MSR 2014.

[24]  Gail C. Murphy,et al.  Summarizing software artifacts: a case study of bug reports , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[25]  Lucian Voinea,et al.  CVSgrab: Mining the History of Large Software Projects , 2006, EuroVis.

[26]  Premkumar T. Devanbu,et al.  Ownership, experience and defects: a fine-grained study of authorship , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[27]  Stéphane Ducasse,et al.  How developers drive software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[28]  Harald C. Gall,et al.  Don't touch my code!: examining the effects of ownership on software quality , 2011, ESEC/FSE '11.

[29]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[30]  Xavier Blanc,et al.  Computing contextual metric thresholds , 2014, SAC.

[31]  Richard C. Holt,et al.  Exploring software evolution using spectrographs , 2004, 11th Working Conference on Reverse Engineering.

[32]  Harald C. Gall,et al.  Visualizing multiple evolution metrics , 2005, SoftVis '05.

[33]  Andreas Zeller,et al.  The impact of tangled code changes , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[34]  Mauricio Finavaro Aniche,et al.  MetricMiner: Supporting researchers in mining software repositories , 2013, 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM).

[35]  Michael D. Ernst,et al.  Defects4J: a database of existing faults to enable controlled testing studies for Java programs , 2014, ISSTA 2014.

[36]  Michele Lanza,et al.  The evolution radar: visualizing integrated logical coupling information , 2006, MSR '06.