skip to main content
10.1145/1289971.1290000acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
Article

Refactoring-based support for binary compatibility in evolving frameworks

Published: 01 October 2007 Publication History

Abstract

The evolution of a software framework may invalidate existing plugins - modules that used one of its previous versions. To preserve binary compatibility (i.e., plugins will link and run with a new framework release without recompilation), we automatically create an adaptation layer that translates between plugins and the framework. The creation of these adapters is guided by information about syntactic framework changes (refactorings). For each supported refactoring we formally define a comeback - a refactoring used to construct adapters. For an ordered set of refactorings that occured between two framework versions, the backward execution of the corresponding comebacks yields the adaptation layer.

References

[1]
Comarch homepage. http://www.comarch.com.
[2]
ComeBack! homepage. http://comeback.sf.net.
[3]
CORBA homepage. http://www.corba.org.
[4]
Eclipse homepage. http://www.eclipse.org.
[5]
Fujaba homepage. http://www.fujaba.de.
[6]
Microsoft COM homepage. http://www.microsoft.com/Com/default.mspx.
[7]
Microsoft.NET homepage. http://www.microsoft.com/net.
[8]
I. Balaban, F. Tip, and R. Fuhrer. Refactoring support for class library migration. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 265--279, New York, NY, USA, 2005. ACM Press.
[9]
S. Becker, A. Brogi, I. Gorton, S. Overhage, A. Romanovsky, and M. Tivoli. Towards an engineering approach to component adaptation. Technical Report 939, University of Newcastle upon Tyne, School of Computing Science, Jan 2006.
[10]
P. L. Bergstein. Object-Preserving Class Transformations. In Proceedings of the OOPSLA '91 Conference on Object-oriented Programming Systems, Languages and Applications, pages 299--313, 1991.
[11]
J. Camara, C. Canal, J. Cubo, and J. Murillo. An aspect-oriented adaptation framework for dynamic component evolution. In 3rd ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, pages 59--71, 2006.
[12]
K. Chow and D. Notkin. Semi-automatic update of applications in response to library changes. In ICSM '96: Proceedings of the 1996 International Conference on Software Maintenance, page 359, Washington, DC, USA, 1996. IEEE Computer Society.
[13]
P. Deransart, L. Cervoni, and A. Ed-Dbali. Prolog: The Standard Reference Manual. Springer, London, UK, 1996.
[14]
J. des Rivières. Evolving Java-based APIs. http://wiki.eclipse.org/Evolving_Java-based_APIs, 2001.
[15]
D. Dig and R. Johnson. The role of refactorings in API evolution. In ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pages 389--398, Washington, DC, USA, 2005. IEEE Computer Society.
[16]
E. W. Dijkstra. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18(8):453--457, 1975.
[17]
I. R. Forman, M. H. Conner, S. H. Danforth, and L. K. Raper. Release-to-release binary compatibility in SOM. In OOPSLA '95: Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, pages 426--438, New York, NY, USA, 1995. ACM Press.
[18]
I. R. Forman and S. H. Danforth. Putting metaclasses to work: a new dimension in object-oriented programming. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 1999.
[19]
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
[20]
E. Gamma, R. Helm, R. Johnson, and J. Vlisside. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, Massachusetts, 1995.
[21]
W. G. Griswold and D. Notkin. Automated assistance for program restructuring. ACM Transactions on Software Engineering and Methodology, 2(3):228-269, 1993.
[22]
J. Henkel and A. Diwan. Catchup!: capturing and replaying refactorings to support API evolution. In ICSE '05: Proceedings of the 27th international conference on Software engineering, pages 274--283, New York, NY, USA, 2005. ACM Press.
[23]
B. Hoffmann, D. Janssens, and N. V. Eetvelde. Cloning and expanding graph transformation rules for refactoring. In Electronic Notes in Theoretical Computer Science, pages 53--67, 2006.
[24]
J. E. Hopcroft, R. Motwani, and J. D. Ullman. Introduction to automata theory, languages, and computation, 2nd edition. SIGACT News, 32(1):60--65, 2001.
[25]
R. E. Johnson and W. F. Opdyke. Refactoring and aggregation. In Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software, pages 264--278, London, UK, 1993. Springer.
[26]
R. Keller and U. Hoelzle. Binary component adaptation. Lecture Notes in Computer Science, 1445:307--329, 1998.
[27]
G. Kniesel and H. Koch. Static composition of refactorings. Science of Computer Programming, 52(1-3):9--51, 2004.
[28]
M. M. Lehman. Laws of software evolution revisited. In European Workshop on Software Process Technology, pages 108--124, 1996.
[29]
K. J. Lieberherr, W. L. Hursch, and C. Xiao. Object-extending class transformations. Formal Aspects of Computing, 6(4):391--416, 1994.
[30]
S. Malabarba, R. Pandey, J. Gragg, E. Barr, and J. F. Barnes. Runtime support for type-safe dynamic java classes. In ECOOP '00: Proceedings of the 14th European Conference on Object-Oriented Programming, pages 337--361, London, UK, 2000. Springer-Verlag.
[31]
F. McGurren and D. Conroy. X-adapt: An architecture for dynamic systems. In Workshop on Component-Oriented Programming, ECOOP, Malaga, Spain, pages 56--70, 2002.
[32]
T. Mens, N. V. Eetvelde, S. Demeyer, and D. Janssens. Formalizing refactorings with graph transformations: Research articles. Journal of Software Maintenance and Evolution: Research and Practice, 17(4):247--276, 2005.
[33]
W. F. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, Urbana-Champaign, IL, USA, 1992.
[34]
D. Riehle. Framework Design: A Role Modeling Approach. PhD thesis, Swiss Federal Institute of Technology Zurich, Universitaet Hamburg, 2000.
[35]
D. B. Roberts. Practical analysis for refactoring. PhD thesis, University of Illinois at Urbana-Champaign, Urbana, Illinois, 1999.
[36]
S. Roock and A. Havenstein. Refactoring tags for automatic refactoring of framework dependent applications. In XP'02: Proceedings of Extreme Programming Conference, pages 182--185, 2002.
[37]
K. C. Sekharaiah and D. J. Ram. Object schizophrenia problem in object role system design. In OOIS '02: Proceedings of the 8th International Conference on Object-Oriented. Information Systems, pages 494--506, London, UK, 2002. Springer.
[38]
R. M. Smullyan. First-Order Logic. Dover Publications, New York, USA, 1968.

Cited By

View all
  • (2019)To react, or not to react: Patterns of reaction to API deprecationEmpirical Software Engineering10.1007/s10664-019-09713-w24:6(3824-3870)Online publication date: 28-May-2019
  • (2018)Why are Features Deprecated? An Investigation Into the Motivation Behind Deprecation2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2018.00011(13-24)Online publication date: Sep-2018
  • (2016)What Java developers know about compatibility, and why this mattersEmpirical Software Engineering10.1007/s10664-015-9389-121:3(1371-1396)Online publication date: 1-Jun-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '07: Proceedings of the 6th international conference on Generative programming and component engineering
October 2007
206 pages
ISBN:9781595938558
DOI:10.1145/1289971
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: 01 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. component-based systems
  2. frameworks
  3. refactoring
  4. software adaptation
  5. software evolution

Qualifiers

  • Article

Conference

GPCE '07

Acceptance Rates

Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)To react, or not to react: Patterns of reaction to API deprecationEmpirical Software Engineering10.1007/s10664-019-09713-w24:6(3824-3870)Online publication date: 28-May-2019
  • (2018)Why are Features Deprecated? An Investigation Into the Motivation Behind Deprecation2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2018.00011(13-24)Online publication date: Sep-2018
  • (2016)What Java developers know about compatibility, and why this mattersEmpirical Software Engineering10.1007/s10664-015-9389-121:3(1371-1396)Online publication date: 1-Jun-2016
  • (2015)How Java APIs break - An empirical studyInformation and Software Technology10.1016/j.infsof.2015.02.01465:C(129-146)Online publication date: 1-Sep-2015
  • (2014)Broken promises: An empirical study into evolution problems in Java programs caused by library upgrades2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)10.1109/CSMR-WCRE.2014.6747226(64-73)Online publication date: Feb-2014
  • (2012)Backward compatibility of software interfacesProgramming and Computing Software10.1134/S036176881205005238:5(257-267)Online publication date: 1-Sep-2012
  • (2011)Automatic backward compatibility analysis of software component binary interfaces2011 IEEE International Conference on Computer Science and Automation Engineering10.1109/CSAE.2011.5952657(167-173)Online publication date: Jun-2011
  • (2011)A combined technique for automatic detection of backward binary compatibility problemsProceedings of the 8th international conference on Perspectives of System Informatics10.1007/978-3-642-29709-0_27(313-321)Online publication date: 27-Jun-2011
  • (2010)Refactoring references for library migrationACM SIGPLAN Notices10.1145/1932682.186951845:10(726-738)Online publication date: 17-Oct-2010
  • (2010)Refactoring references for library migrationProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869518(726-738)Online publication date: 17-Oct-2010
  • 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