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

A history-based matching approach to identification of framework evolution

Published: 02 June 2012 Publication History

Abstract

In practice, it is common that a framework and its client programs evolve simultaneously. Thus, developers of client programs may need to migrate their programs to the new release of the framework when the framework evolves. As framework developers can hardly always guarantee backward compatibility during the evolution of a framework, migration of its client program is often time-consuming and error-prone. To facilitate this migration, researchers have proposed two categories of approaches to identification of framework evolution: operation-based approaches and matching-based approaches. To overcome the main limitations of the two categories of approaches, we propose a novel approach named HiMa, which is based on matching each pair of consecutive revisions recorded in the evolution history of the framework and aggregating revision-level rules to obtain framework-evolution rules. We implemented our HiMa approach as an Eclipse plug-in targeting at frameworks written in Java using SVN as the versioncontrol system. We further performed an experimental study on HiMa together with a state-of-art approach named AURA using six tasks based on three subject Java frameworks. Our experimental results demonstrate that HiMa achieves higher precision and higher recall than AURA in most circumstances and is never inferior to AURA in terms of precision and recall in any circumstances, although HiMa is computationally more costly than AURA.

References

[1]
K. Chow and D. Notkin, "Semi-automatic update of applications in response to library changes," in Proc. ICSM, 1996, pp. 359-368.
[2]
P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt, "Reuse contracts: Managing the evolution of reusable assets," in Proc. OOPSLA, 1996, pp. 268-285.
[3]
I. Balaban, F. Tip, and R. Fuhrer, "Refactoring support for class library migration," in Proc. OOPSLA, 2005, pp. 265- 279.
[4]
D. Dig and R. Johnson, "How do APIs evolve? A story of refactoring," JSME, vol. 18, no. 2, pp. 83-107, March 2006.
[5]
W. Wu, Y. Guéhéneuc, G. Antoniol, and M. Kim, "AURA: A hybrid approach to identify framework evolution," in Proc. ICSE, 2010, pp. 325-334.
[6]
J. Henkel and A. Diwan, "Catchup!: Capturing and replaying refactorings to support API evolution," in Proc. ICSE, 2005, pp. 274-283.
[7]
T. Schäfer, J. Jonas, and M. Mezini, "Mining framework usage changes from instantiation code," in Proc. ICSE, 2008, pp. 471-480.
[8]
D. Dig, K. Manzoor, R. Johnson, and T. N. Nguyen, "Refactoring-aware configuration management for object-oriented programs," in Proc. ICSE, 2007, pp. 427-436.
[9]
C. Kemper and C. Overbeck, "What's new with JBuilder," in Proc. JavaOne, 2005.
[10]
G. Malpohl, J. J. Hunt, and W. F. Tichy, "Renaming detection," ASEJ, vol. 10, no. 2, pp. 183-202, April 2003.
[11]
M. W. Godfrey and L. Zou, "Using origin analysis to detect merging and splitting of source code entities," IEEE TSE, vol. 31, no. 2, pp. 166-181, February 2005.
[12]
S. Kim, K. Pan, and E. J. Whitehead, Jr., "When functions change their names: Automatic detection of origin relationships," in Proc. WCRE, 2005, pp. 143-152.
[13]
D. Dig, C. Comertoglu, D. Marinov, and R. Johnson, "Automated detection of refactorings in evolving components," in Proc. ECOOP, 2006, pp. 404-428.
[14]
H. A. Nguyen, T. T. Nguyen, G. Wilson, Jr., A. T. Nguyen, M. Kim, and T. N. Nguyen, "A graph-based approach to API usage adaptation," in Proc. OOPSLA, 2010, pp. 302-321.
[15]
G. Antoniol, M. D. Penta, and E. Merlo, "An automatic approach to identify class evolution discontinuities," in Proc. IWPSE, 2004, pp. 31-40.
[16]
Z. Xing and E. Stroulia, "API-evolution support with Diff-CatchUp," IEEE TSE, vol. 33, no. 12, pp. 818-836, December 2007.
[17]
M. Kim, D. Notkin, and D. Grossman, "Automatic inference of structural changes for matching across program versions," in Proc. ICSE, 2007, pp. 333-343.
[18]
K. Taneja, D. Dig, and T. Xie, "Automated detection of API refactorings in libraries," in Proc. ASE, 2007, pp. 377-380.
[19]
S. Demeyer, S. Ducasse, and O. Nierstrasz, "Finding refactorings via change metrics," in Proc. OOPSLA, 2000, pp. 166- 177.
[20]
P. Weißgerber and S. Diehl, "Identifying refactorings from source-code changes," in Proc. ASE, 2006, pp. 231-240.
[21]
B. Dagenais and M. P. Robillard, "Recommending adaptive changes for framework evolution," in Proc. ICSE, 2008, pp. 481-490.
[22]
S. Thummalapenta and T. Xie, "SpotWeb: Detecting framework hotspots and coldspots via mining open source code on the web," in Proc. ASE, 2008, pp. 327-336.
[23]
P. Sawyer, P. Rayson, and R. Garside, "REVERE: Support for requirements synthesis from documents," Information Systems Frontiers, vol. 4, no. 3, pp. 343-353, March 2002.
[24]
M. Asahara and Y. Matsumoto, "Extended models and tools for high-performance part-of-speech," in Proc. COLING, 2000, pp. 21-27.
[25]
A. Fantechi, S. Gnesi, G. Lami, and A. Maccari, "Applications of linguistic techniques for use case analysis," Requirement Engineering, vol. 8, no. 3, pp. 161-170, March 2003.
[26]
M. J. Collins and T. Koo, "Discriminative reranking for natural language parsing," Computational Linguistics, vol. 31, no. 1, pp. 25-70, March 2005.
[27]
L. Kof, "Scenarios: Identifying missing objects and actions by means of computational linguistics," in Proc. RE, 2007, pp. 121-130.
[28]
D. Shepherd, Z. Fry, E. Hill, L. Pollock, and K. Vijay-Shanker, "Using natural language program analysis to locate and understand action-oriented concerns," in Proc. AOSD, 2007, pp. 212-224.
[29]
L. Tan, D. Yuan, G. Krishna, and Y. Zhou, "/* iComment: Bugs or bad comments? */," in Proc. SOSP, 2007, pp. 145- 158.
[30]
L. Tan, Y. Zhou, and Y. Padioleau, "aComment: Mining annotations from comments and code to detect interrupt related concurrency bugs," in Proc. ICSE, 2011, pp. 11-20.
[31]
H. Zhong, L. Zhang, T. Xie, and H. Mei, "Inferring resource specifications from natural language API documentation," in Proc. ASE, 2009, pp. 307-318.
[32]
Z. Kozareva, Ó. Ferrández, A. Montoyo, R. Muñoz, A. Suárez, and J. Gómez, "Combining data-driven systems for improving named entity recognition," DKE, vol. 61, no. 3, pp. 449-466, June 2007.
[33]
S. L. Abebe and P. Tonella, "Natural language parsing of program element names for concept extraction," in Proc. ICPC, 2010, pp. 156-159.
[34]
H. Zhong, S. Thummalapenta, T. Xie, L. Zhang, and Q. Wang, "Mining API mapping for language migration," in Proc. ICSE, 2010, pp. 195-204.

Cited By

View all
  • (2024)Revisiting Knowledge-Based Inference of Python Runtime Environments: A Realistic and Adaptive ApproachIEEE Transactions on Software Engineering10.1109/TSE.2023.334647450:2(258-279)Online publication date: 1-Feb-2024
  • (2023)Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent ProgramsProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00069(716-728)Online publication date: 14-May-2023
  • (2022)AUGraft: Graft New API Usage into Old CodeProceedings of the 13th Asia-Pacific Symposium on Internetware10.1145/3545258.3545279(55-64)Online publication date: 11-Jun-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '12: Proceedings of the 34th International Conference on Software Engineering
June 2012
1657 pages
ISBN:9781467310673

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Qualifiers

  • Article

Conference

ICSE '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)Revisiting Knowledge-Based Inference of Python Runtime Environments: A Realistic and Adaptive ApproachIEEE Transactions on Software Engineering10.1109/TSE.2023.334647450:2(258-279)Online publication date: 1-Feb-2024
  • (2023)Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent ProgramsProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00069(716-728)Online publication date: 14-May-2023
  • (2022)AUGraft: Graft New API Usage into Old CodeProceedings of the 13th Asia-Pacific Symposium on Internetware10.1145/3545258.3545279(55-64)Online publication date: 11-Jun-2022
  • (2021)A Systematic Review of API Evolution LiteratureACM Computing Surveys10.1145/347013354:8(1-36)Online publication date: 4-Oct-2021
  • (2021)DepOwlProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00021(86-98)Online publication date: 22-May-2021
  • (2019)TransDroidProceedings of the 11th Asia-Pacific Symposium on Internetware10.1145/3361242.3361255(1-8)Online publication date: 28-Oct-2019
  • (2019)TestMig: migrating GUI test cases from iOS to AndroidProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3293882.3330575(284-295)Online publication date: 10-Jul-2019
  • (2019)MeditorProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00052(335-346)Online publication date: 25-May-2019
  • (2018)Complementing global and local contexts in representing API descriptions to improve API retrieval tasksProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236036(551-562)Online publication date: 26-Oct-2018
  • (2018)Characterising deprecated Android APIsProceedings of the 15th International Conference on Mining Software Repositories10.1145/3196398.3196419(254-264)Online publication date: 28-May-2018
  • 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