Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1137983.1137995acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Micro pattern evolution

Published: 22 May 2006 Publication History

Abstract

When analyzing the evolution history of a software project, we wish to develop results that generalize across projects. One approach is to analyze design patterns, permitting characteristics of the evolution to be associated with patterns, instead of source code. Traditional design patterns are generally not amenable to reliable automatic extraction from source code, yet automation is crucial for scalable evolution analysis. Instead, we analyze "micro pattern" evolution; patterns whose abstraction level is closer to source code, and designed to be automatically extractable from Java source code or bytecode. We perform micro-pattern evolution analysis on three open source projects, ArgoUML, Columba, and jEdit to identify micro pattern frequencies, common kinds of pattern evolution, and bug-prone patterns. In all analyzed projects, we found that the micro patterns of Java classes do not change often. Common bug-prone pattern evolution kinds are 'Pool → Pool', 'Implementor → NONE', and 'Sampler → Sampler'. Among all pattern evolution kinds, 'Box', 'CompoundBox', 'Pool', 'CommonState', and 'Outline' micro patterns have high bug rates, but they have low frequencies and a small number of changes. The pattern evolution kinds that are bug-prone are somewhat similar across projects. The bug-prone pattern evolution kinds of two different periods of the same project are almost identical.

References

[1]
B. Behlendorf, C. M. Pilato, G. Stein, K. Fogel, K. Hancock, and B. Collins-Sussman, "Subversion Project Homepage," 2005, http://subversion.tigris.org/.
[2]
B. Berliner, "CVS II: Parallelizing Software Development," Proc. Winter 1990 USENIX Conf., Washington, DC, pp. 341--351, 1990.
[3]
J. Bevan, E. J. Whitehead, Jr., S. Kim, and M. Godfrey, "Facilitating Software Evolution with Kenyon," Proc. 2005 European Software Engineering Conference and 2005 Foundations of Software Engineering (ESEC/FSE 2005), Lisbon, Portugal, pp. 177--186, 2005.
[4]
J. W. Cooper, The Design Patterns: Java Companion: Addison-Wesley, 1998.
[5]
R. E. Courtney and D. A. Gustafson, "Shotgun Correlations in Software Measures," Software Engineering J., v. 8, pp. 5--13, 1992.
[6]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Boston, MA, USA: Addison-Wesley, 1995.
[7]
J. Y. Gil and I. Maman, "Micro Patterns in Java Code," proceedings of the 20th Object Oriented Programming Systems Languages and Applications, San Diego, CA, USA, pp. 97--116, 2005.
[8]
D. Heuzeroth, T. Holl, G. Högström, and W. Löwe, "Automatic Design Pattern Detection," Proc. 11th IEEE Int'l Workshop on Program Comprehension, pp. 94, 2003.
[9]
S. Kim, E. J. Whitehead, Jr., and J. Bevan, "Analysis of Signature Change Patterns," Proc. Int'l Workshop on Mining Software Repositories (MSR 2005), Saint Louis, MO, USA, pp. 64--68, 2005.
[10]
B. Livshits and T. Zimmermann, "DynaMine: Finding Common Error Patterns by Mining Software Revision Histories," Proc. 2005 European Software Engineering Conf. and Foundations of Software Eng. (ESEC/FSE 2005), Lisbon, Portugal, pp. 296--305, 2005.
[11]
A. Michail, "Data Mining Library Reuse Patterns in User-Selected Applications," Proc. 14th International Conference on Automated Software Engineering, Cocoa Beach, Florida, USA, pp. 24--33, 1999.
[12]
L. Prechelt and C. Krämer, "Functionality versus Practicality: Employing Existing Tools for Recovering Structural Design Patterns," J. Universal Computer Science, vol. 4, pp. 866--882, 1998.
[13]
J. Sliwerski, T. Zimmermann, and A. Zeller, "When Do Changes Induce Fixes?" Proc. Int'l Workshop on Mining Software Repositories (MSR 2005), Saint Louis, MO, USA, pp. 24--28, 2005.

Cited By

View all
  • (2024)Design Pattern Representation and Detection Based on Heterogeneous Information NetworkReuse and Software Quality10.1007/978-3-031-66459-5_5(72-91)Online publication date: 13-Jul-2024
  • (2020)Code Nano-Pattern Detection using Deep LearningProceedings of the 13th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)10.1145/3385032.3385050(1-6)Online publication date: 27-Feb-2020
  • (2020)An Empirical Investigation of Relevant Changes and Automation Needs in Modern Code ReviewEmpirical Software Engineering10.1007/s10664-020-09870-3Online publication date: 13-Sep-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '06: Proceedings of the 2006 international workshop on Mining software repositories
May 2006
191 pages
ISBN:1595933972
DOI:10.1145/1137983
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: 22 May 2006

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICSE06
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)2
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Design Pattern Representation and Detection Based on Heterogeneous Information NetworkReuse and Software Quality10.1007/978-3-031-66459-5_5(72-91)Online publication date: 13-Jul-2024
  • (2020)Code Nano-Pattern Detection using Deep LearningProceedings of the 13th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)10.1145/3385032.3385050(1-6)Online publication date: 27-Feb-2020
  • (2020)An Empirical Investigation of Relevant Changes and Automation Needs in Modern Code ReviewEmpirical Software Engineering10.1007/s10664-020-09870-3Online publication date: 13-Sep-2020
  • (2019)Analyzing and supporting adaptation of online code examplesProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00046(316-327)Online publication date: 25-May-2019
  • (2019)A study examining relationships between micro patterns and security vulnerabilitiesSoftware Quality Journal10.1007/s11219-017-9397-z27:1(5-41)Online publication date: 1-Mar-2019
  • (2018)A Comparison of Nano-Patterns vs. Software Metrics in Vulnerability Prediction2018 25th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC.2018.00050(355-364)Online publication date: Dec-2018
  • (2018)ChangeLocatorEmpirical Software Engineering10.1007/s10664-017-9567-423:5(2866-2900)Online publication date: 1-Oct-2018
  • (2017)Towards a software vulnerability prediction model using traceable code patterns and software metricsProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155700(1022-1025)Online publication date: 30-Oct-2017
  • (2017)Evaluating micro patterns and software metrics in vulnerability prediction2017 6th International Workshop on Software Mining (SoftwareMining)10.1109/SOFTWAREMINING.2017.8100852(40-47)Online publication date: Nov-2017
  • (2017)Towards a software vulnerability prediction model using traceable code patterns and software metrics2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115724(1022-1025)Online publication date: Oct-2017
  • 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media