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 2007Publication 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.Google ScholarGoogle Scholar
  2. ComeBack! homepage. http://comeback.sf.net.Google ScholarGoogle Scholar
  3. CORBA homepage. http://www.corba.org.Google ScholarGoogle Scholar
  4. Eclipse homepage. http://www.eclipse.org.Google ScholarGoogle Scholar
  5. Fujaba homepage. http://www.fujaba.de.Google ScholarGoogle Scholar
  6. Microsoft COM homepage. http://www.microsoft.com/Com/default.mspx.Google ScholarGoogle Scholar
  7. Microsoft.NET homepage. http://www.microsoft.com/net.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Deransart, L. Cervoni, and A. Ed-Dbali. Prolog: The Standard Reference Manual. Springer, London, UK, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. des Rivières. Evolving Java-based APIs. http://wiki.eclipse.org/Evolving_Java-based_APIs, 2001.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. W. Dijkstra. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18(8):453--457, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. Gamma, R. Helm, R. Johnson, and J. Vlisside. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, Massachusetts, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. G. Griswold and D. Notkin. Automated assistance for program restructuring. ACM Transactions on Software Engineering and Methodology, 2(3):228-269, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Keller and U. Hoelzle. Binary component adaptation. Lecture Notes in Computer Science, 1445:307--329, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. G. Kniesel and H. Koch. Static composition of refactorings. Science of Computer Programming, 52(1-3):9--51, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. M. Lehman. Laws of software evolution revisited. In European Workshop on Software Process Technology, pages 108--124, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. K. J. Lieberherr, W. L. Hursch, and C. Xiao. Object-extending class transformations. Formal Aspects of Computing, 6(4):391--416, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. W. F. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, Urbana-Champaign, IL, USA, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Riehle. Framework Design: A Role Modeling Approach. PhD thesis, Swiss Federal Institute of Technology Zurich, Universitaet Hamburg, 2000.Google ScholarGoogle Scholar
  35. D. B. Roberts. Practical analysis for refactoring. PhD thesis, University of Illinois at Urbana-Champaign, Urbana, Illinois, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. R. M. Smullyan. First-Order Logic. Dover Publications, New York, USA, 1968.Google ScholarGoogle Scholar

Index Terms

  1. Refactoring-based support for binary compatibility in evolving frameworks

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • 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

        Copyright © 2007 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate56of180submissions,31%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader