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

Mining framework usage changes from instantiation code

Published: 10 May 2008 Publication History

Abstract

Framework evolution may break existing users, which need to be migrated to the new framework version. This is a tedious and error-prone process that benefits from automation. Existing approaches compare two versions of the framework code in order to find changes caused by refactorings. However, other kinds of changes exist, which are relevant for the migration. In this paper, we propose to mine framework usage change rules from already ported instantiations, the latter being applications build on top of the framework, or test cases maintained by the framework developers. Our evaluation shows that our approach finds usage changes not only caused by refactorings, but also by conceptual changes within the framework. Further, it copes well with some issues that plague tools focusing on finding refactorings such as deprecated program elements or multiple changes applied to a single program element.

References

[1]
R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. In Proceedings of the SIGMOD International Conference on Management of Data, pages 207--216. ACM Press, 1993.
[2]
G. Antoniol, M. D. Penta, and E. Merlo. An automatic approach to identify class evolution discontinuities. In Proceedings of the International Workshop on Principles of Software Evolution, pages 31--40. IEEE Computer Society, 2004.
[3]
I. Balaban, F. Tip, and R. M. Fuhrer. Refactoring support for class library migration. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 265--279. ACM Press, 2005.
[4]
C. Borgelt. Software for frequent pattern mining. http://www.borgelt.net/apriori.html, 2007.
[5]
M. Bruch, T. Schäfer, and M. Mezini. FrUiT: IDE support for framework understanding. In Proceedings of the OOPSLA Workshop on Eclipse Technology Exchange, pages 55--59. ACM Press, 2006.
[6]
K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In Proceedings of the International Conference on Software Maintenance, pages 359--368. IEEE Computer Society, 1996.
[7]
B. Dagenais and M. P. Robillard. Recommending adaptive changes for framework evolution. In Proceedings of the International Conference on Software Engineering. ACM Press, 2008.
[8]
S. Demeyer, S. Ducasse, and O. Nierstrasz. Finding refactorings via change metrics. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 166--177. ACM Press, 2000.
[9]
D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In Proceedings of the European Conference on Object-Oriented Programming, pages 404--428. Springer, 2006.
[10]
Eclipse. http://www.eclipse.org, 2007.
[11]
J. Henkel and A. Diwan. Catchup!: Capturing and replaying refactorings to support api evolution. In Proceedings of the International Conference on Software Engineering, pages 274--283. ACM Press, 2005.
[12]
JHotDraw. http://www.jhotdraw.org/, 2007.
[13]
G. Kiczales and J. Lamping. Issues in the design and specification of class libraries. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 435--451. ACM Press, 1992.
[14]
M. Kim and D. Notkin. Program element matching for multi-version program analyses. In Proceedings of the International Workshop on Mining Software Repositories, pages 58--64. ACM Press, 2006.
[15]
M. Kim, D. Notkin, and D. Grossman. Automatic inference of structural changes for matching across program versions. In Proceedings of the International Conference on Software Engineering, pages 333--343. IEEE Computer Society, 2007.
[16]
S. Kim, K. Pan, and J. E. James Whitehead. When functions change their names: Automatic detection of origin relationships. In Proceedings of the Working Conference on Reverse Engineering, pages 143--152. IEEE Computer Society, 2005.
[17]
J. Lamping. Typing the specialization interface. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 201--214. ACM Press, 1993.
[18]
Z. Li and Y. Zhou. PR-Miner: Automatically extracting implicit programming rules and detecting violations in large software code. In Proceedings of the European Software Engineering Conference held jointly with ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 306--315. ACM Press, 2005.
[19]
G. Malpohl, J. J. Hunt, and W. F. Tichy. Renaming detection. Automated Software Engineering, 10(2):183--202, 2003.
[20]
M. Mezini. Maintaining the consistency of class libraries during their evolution. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 1--21. ACM Press, 1997.
[21]
A. Michail. Data mining library reuse patterns using generalized association rules. In Proceedings of the International Conference on Software Engineering, pages 167--176. ACM Press, 2000.
[22]
F. V. Rysselberghe and S. Demeyer. Reconstruction of successful software evolution using clone detection. In Proceedings of the International Workshop on Principles of Software Evolution, pages 126--130. IEEE Computer Society, 2003.
[23]
P. Steyaert, C. Lucas, K. Mens, and T. D?Hondt. Reuse contracts: managing the evolution of reusable assets. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 268--285. ACM Press, 1996.
[24]
Struts. http://struts.apache.org/, 2007.
[25]
P. Weiβgerber and S. Diehl. Identifying refactorings from source-code changes. In Proceedings of the International Conference on Automated Software Engineering, pages 231--240. IEEE Computer Society, 2006.
[26]
Z. Xing and E. Stroulia. UMLDiff: An algorithm for object-oriented design differencing. In Proceedings of the International Conference on Automated Software Engineering, pages 54--65. ACM Press, 2005.
[27]
Z. Xing and E. Stroulia. Refactoring detection based on UMLDiff change-facts queries. In Proceedings of the Working Conference on Reverse Engineering, pages 263--274. IEEE Computer Society, 2006.
[28]
L. Zou and M. W. Godfrey. Using origin analysis to detect merging and splitting of source code entities. IEEE Transactions on Software Engineering, 31(2):166--181, 2005.

Cited By

View all
  • (2023)Compilation Semantics for a Programming Language with VersionsProgramming Languages and Systems10.1007/978-981-99-8311-7_1(3-23)Online publication date: 26-Nov-2023
  • (2022)Automating third-party library migrationsПрограммные системы и вычислительные методы10.7256/2454-0714.2022.1.34337(71-87)Online publication date: Jan-2022
  • (2022)A Step toward Programming with Versions in Real-World Functional LanguagesProceedings of the 14th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3570353.3570359(44-51)Online publication date: 7-Jun-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '08: Proceedings of the 30th international conference on Software engineering
May 2008
558 pages
ISBN:9781605580791
DOI:10.1145/1368088
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. evolution
  2. framework comprehension
  3. migration

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Acceptance Rates

ICSE '08 Paper Acceptance Rate 56 of 370 submissions, 15%;
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)10
  • Downloads (Last 6 weeks)2
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Compilation Semantics for a Programming Language with VersionsProgramming Languages and Systems10.1007/978-981-99-8311-7_1(3-23)Online publication date: 26-Nov-2023
  • (2022)Automating third-party library migrationsПрограммные системы и вычислительные методы10.7256/2454-0714.2022.1.34337(71-87)Online publication date: Jan-2022
  • (2022)A Step toward Programming with Versions in Real-World Functional LanguagesProceedings of the 14th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3570353.3570359(44-51)Online publication date: 7-Jun-2022
  • (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
  • (2022)Characterizing Python Method Evolution with PyMevol: An Essential Step Towards Enabling Reliable Software Systems2022 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW55968.2022.00044(81-86)Online publication date: Oct-2022
  • (2022)How Libraries Evolve: A Survey of Two Industrial Companies and an Open-Source Community2022 29th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC57359.2022.00043(309-317)Online publication date: Dec-2022
  • (2022)Characterizing usages, updates and risks of third-party libraries in Java projectsEmpirical Software Engineering10.1007/s10664-022-10131-827:4Online publication date: 1-Jul-2022
  • (2022)DepMiner: Automatic Recommendation of Transformation Rules for Method DeprecationReuse and Software Quality10.1007/978-3-031-08129-3_2(22-37)Online publication date: 10-Jun-2022
  • (2021)A Systematic Review of API Evolution LiteratureACM Computing Surveys10.1145/347013354:8(1-36)Online publication date: 4-Oct-2021
  • (2021)Understanding Software-2.0ACM Transactions on Software Engineering and Methodology10.1145/345347830:4(1-42)Online publication date: 23-Jul-2021
  • 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