skip to main content
10.1145/1370750.1370765acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Improving change descriptions with change contexts

Published: 10 May 2008 Publication History

Abstract

Software archives are one of the best sources available to researchers for understanding the software development process. However, much detective work is still necessary in order to unravel the software development story. During this process, researchers must isolate changes and follow their trails over time. In support of this analysis, several research tools have provided different representations for connecting the many changes extracted from software archives. Most of these tools are based on textual analysis of source code and use line-based differencing between software versions. This approach limits the ability to process changes structurally resulting in less concise and comparable items. Adoption of structure-based approaches have been hampered by complex implementations and overly verbose change descriptions. We present a technique for expressing changes that is fine-grained but preserves some structural aspects. The structural information itself may not have changed, but instead provides a context for interpreting the change. This in turn, enables more relevant and concise descriptions in terms of software types and programming activities. We apply our technique to common challenges that researchers face, and then we discuss and compare our results with other techniques.

References

[1]
T. Apiwattanapong, A. Orso, and M. J. Harrold. A Differencing Algorithm for Object-Oriented Programs. In ASE '04: Proceedings of the 19th IEEE international conference on Automated software engineering, pages 2--13, Washington, DC, USA, 2004. IEEE Computer Society.
[2]
G. Canfora, L. Cerulo, and M. D. Penta. Identifying Changed Source Code Lines from Version Repositories. In MSR '07: Proceedings of the Fourth International Workshop on Mining Software Repositories, page 14, Washington, DC, USA, 2007. IEEE Computer Society.
[3]
Cecil Mono, 2008. Bytecode inspector. http://www.mono-project.com/Cecil.
[4]
B. Fluri, M. Wuersch, M. Pinzger, and H. Gall. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE Trans. Softw. Eng., 33(11):725--743, 2007.
[5]
C. Gorg and P. Weißgerber. Error Detection by Refactoring Reconstruction. In MSR '05: Proceedings of the 2005 international workshop on Mining software repositories, pages 1--5, New York, NY, USA, 2005. ACM.
[6]
S. Horwitz. Identifying the Semantic and Textual Differences Between Two Versions of a Program. In PLDI '90: Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, pages 234--245, New York, NY, USA, 1990. ACM.
[7]
J. J. Hunt and W. F. Tichy. Extensible Language-Aware Merging. In ICSM '02: Proceedings of the International Conference on Software Maintenance (ICSM'02), pages 511--520, Washington, DC, USA, 2002. IEEE Computer Society.
[8]
J. W. Hunt and M. D. McIlroy. An Algorithm for Differential File Comparison. Technical Report CSTR 41, Bell Laboratories, Murray Hill, NJ, 1976.
[9]
ARISTOTLE RESEARCH GROUP, 2003. JABA: Java Architecture for Bytecode Analysis. http://www.cc.gatech.edu/aristotle/Tools/jaba.html.
[10]
D. Jackson and D. A. Ladd. Semantic Diff: A Tool for Summarizing the Effects of Modifications. In ICSM '94: Proceedings of the International Conference on Software Maintenance, pages 243--252, Washington, DC, USA, 1994. IEEE Computer Society.
[11]
D. Jackson and A. Waingold. Lightweight Extraction of Object Models from Bytecode. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 194--202, Los Alamitos, CA, USA, 1999. IEEE Computer Society Press.
[12]
M. Kim, D. Notkin, and D. Grossman. Automatic Inference of Structural Changes for Matching across Program Versions. In ICSE '07: Proceedings of the 29th International Conference on Software Engineering, pages 333--343, Washington, DC, USA, 2007. IEEE Computer Society.
[13]
S. Kim, K. Pan, and J. E. James Whitehead. When Functions Change Their Names: Automatic Detection of Origin Relationships. In WCRE '05: Proceedings of the 12th Working Conference on Reverse Engineering, pages 143--152, Washington, DC, USA, 2005. IEEE Computer Society.
[14]
W. Laski, J.; Szermer. Identification of Program Modifications and its Applications in Software Maintenance. Software Maintenance, 1992. Proceerdings., Conference on, pages 282--290, 9-12 Nov 1992.
[15]
G. C. Murphy and D. Notkin. Lightweight Lexical Source Model Extraction. ACM Trans. Softw. Eng. Methodol., 5(3):262--292, 1996.
[16]
E. W. Myers. An O(ND) Difference Algorithm and Its Variations. Algorithmica, 1(2):251--266, 1986.
[17]
R. Robbes. Mining a Change-Based Software Repository. In MSR '07: Proceedings of the Fourth International Workshop on Mining Software Repositories, page 15, Washington, DC, USA, 2007. IEEE Computer Society.
[18]
Z. Wang, K. Pierce, and S. McFarling. BMAT - A Binary Matching Tool for Stale Profile Propagation. Instruction-Level Parallelism, 2:1--20, 2000.
[19]
Z. Xing and E. Stroulia. UMLDiff: An Algorithm for Object-Oriented. Design Differencing. In ASE '05: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pages 54--65, New York, NY, USA, 2005. ACM.
[20]
Z. Xing and E. Stroulia. Refactoring Detection based on UMLDiff Change-Facts Queries. In WCRE '06: Proceedings of the 13th Working Conference on Reverse Engineering (WCRE 2006), pages 263--274, Washington, DC, USA, 2006. IEEE Computer Society.
[21]
ZedGraph, 2008. ZedGraph Wiki. http://zedgraph.org/.
[22]
T. Zimmermann. Fine-grained processing of CVS archives with APFEL. In eclipse '06: Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange, pages 16--20, New York, NY, USA, 2006. ACM.
[23]
L. Zou and M. W. Godfrey. Detecting Merging and Splitting using Origin Analysis. In WCRE '03: Proceedings of the 10th Working Conference on Reverse Engineering, page 146, Washington, DC, USA, 2003. IEEE Computer Society.

Cited By

View all
  • (2020)Learning Human-Written Commit Messages to Document Code ChangesJournal of Computer Science and Technology10.1007/s11390-020-0496-035:6(1258-1277)Online publication date: 30-Nov-2020
  • (2018)Information Needs in Contemporary Code ReviewProceedings of the ACM on Human-Computer Interaction10.1145/32744042:CSCW(1-27)Online publication date: 1-Nov-2018
  • (2018)Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolutionJournal of Software: Evolution and Process10.1002/smr.195130:10Online publication date: 17-Oct-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '08: Proceedings of the 2008 international working conference on Mining software repositories
May 2008
162 pages
ISBN:9781605580241
DOI:10.1145/1370750
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bytecode analysis
  2. change pairs
  3. semantic diff

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Learning Human-Written Commit Messages to Document Code ChangesJournal of Computer Science and Technology10.1007/s11390-020-0496-035:6(1258-1277)Online publication date: 30-Nov-2020
  • (2018)Information Needs in Contemporary Code ReviewProceedings of the ACM on Human-Computer Interaction10.1145/32744042:CSCW(1-27)Online publication date: 1-Nov-2018
  • (2018)Clone refactoring inspection by summarizing clone refactorings and detecting inconsistent changes during software evolutionJournal of Software: Evolution and Process10.1002/smr.195130:10Online publication date: 17-Oct-2018
  • (2017)Mining version control system for automatically generating commit commentProceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1109/ESEM.2017.56(414-423)Online publication date: 9-Nov-2017
  • (2017)How Do Code Refactoring Activities Impact Software Developers' Sentiments? - An Empirical Investigation Into GitHub Commits2017 24th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC.2017.79(648-653)Online publication date: Dec-2017
  • (2016)Assessment of Approaches for the Analysis of Refactoring Activity on Software Repositories An Empirical StudyProceedings of the Scientific Workshop Proceedings of XP201610.1145/2962695.2962717(1-9)Online publication date: 24-May-2016
  • (2016)Documenting database usages and schema constraints in database-centric applicationsProceedings of the 25th International Symposium on Software Testing and Analysis10.1145/2931037.2931072(270-281)Online publication date: 18-Jul-2016
  • (2016)On Automatic Summarization of What and Why Information in Source Code Changes2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC)10.1109/COMPSAC.2016.162(103-112)Online publication date: Jun-2016
  • (2015)ChangeScribeProceedings of the 37th International Conference on Software Engineering - Volume 210.5555/2819009.2819144(709-712)Online publication date: 16-May-2015
  • (2015)ChangeScribe: A Tool for Automatically Generating Commit Messages2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.229(709-712)Online publication date: May-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media