2009 · 183 citations · 30 references
ComputingComputer ScienceChange MeasurementProgramming LanguagesSoftware EngineeringSoftware DesignSoftware EvolutionSoftware MaintenanceDiff AlgorithmsFocus Group DiscussionsSoftware Evolution AnalysisSource Code Change AnalysisSource Code Modification
Software engineers often inspect program differences when reviewing others' code changes, when writing check-in comments, or when determining why a program behaves differently from expected behavior after modification. Program differencing tools that support these tasks are limited in their ability to group related code changes or to detect potential inconsistencies in those changes. To overcome these limitations and to complement existing approaches, we built Logical Structural Diff (LSdiff), a tool that infers systematic structural differences as logic rules. LSdiff notes anomalies from systematic changes as exceptions to the logic rules. We conducted a focus group study with professional software engineers in a large E-commerce company; we also compared LSdiff's results with textual differences and with structural differences without rules. Our evaluation suggests that LSdiff complements existing differencing tools by grouping code changes that form systematic change patterns regardless of their distribution throughout the code, and its ability to discover anomalies shows promise in detecting inconsistent changes.
30
<i>N</i> degrees of separation
Peri Tarr, Harold Ossher, William Harrison et al. · 1999 · 1.2K citations · Full text
Predicting source code changes by mining change history
Annie T. T. Ying, Gail C. Murphy, Raymond T. Ng et al. · IEEE Transactions on Software Engineering · 2004 · 571 citations
An empirical study of code clone genealogies
Miryung Kim, Vibha Sazawal, David Notkin et al. · 2005 · 527 citations
Mining Version Histories to Guide Software Changes
2004 · 495 citations
Information Needs in Collocated Software Development Teams
Amy J. Ko, Robert DeLine, Gina Venolia · 2007 · 483 citations