skip to main content
10.1145/1960275.1960289acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Aspect-based dynamic software updating: a model and its empirical evaluation

Published:21 March 2011Publication History

ABSTRACT

This paper presents an approach to update object-oriented applications at run time. We introduce an update model that leverages aspect technology to express a software update as a modular unit. Although many updates remain encapsulated within a single method body, the nature of software updates is clearly crosscutting: Classes depend on each other, and if the interface of one class changes, all clients of the class are affected. We have designed and implemented an update analyzer that automatically compares two versions of a Java program and extracts the necessary updates expressed as aspects. As execution platform, we rely on an aspect-enabled virtual machine to weave the generated updating aspects at run time. The update analyzer uses only a small subset of the user-level services provided by the VM: around advice for method redefinitions as well as field and method pointcuts for single join-point selection. To validate our approach, we have conducted an empirical study on eight real-world Java applications whose versions encompass several years of development. The study shows that most updates (i.e., 98%) can be handled by the dynamic updating system and that most updates (i.e., 92%) can be extracted fully automatically or with only modest programmer intervention.

References

  1. S. Apel, T. Thomas, and G. Saake. Aspectual Mixin Layers: Aspects and Features in Concert. In ICSE, pages 122--131, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Bergel, S. Ducasse, and O. Nierstrasz. Classbox/J: Controlling the Scope of Change in Java. In OOPSLA, pages 177--189, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Bierman, M. Parkinson, and J. Noble. UpgradeJ: Incremental Typechecking for Class Upgrades. In ECOOP, pages 235--259, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD, pages 83--92, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Cech Previtali. Dynamic Updating of Object-Oriented Software Systems Based on Aspects. PhD thesis, ETH Zurich, 2009. Dissertation ETH No. 18361.Google ScholarGoogle Scholar
  6. S. Cech Previtali and T. R. Gross. Dynamic Updating of Software Systems Based on Aspects. In ICSM, pages 83--92, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Cech Previtali and T. R. Gross. Annotations for Seamless Aspect-based Software Evolution. In RAM-SE, pages 27--32, July 2008.Google ScholarGoogle Scholar
  8. S. Cech Previtali, M. Schäuble, and T. R. Gross. Revision Classes for Explicit Versioning. In RAM-SE, pages 1--6, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Chambers, D. Ungar, and E. Lee. An Efficient Implementation of SELF a Dynamically-Typed Object-Oriented Language Based on Prototypes. SIGPLAN Notices, 24(10):49--70, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Clifton, T. Millstein, G. T. Leavens, and C. Chambers. MultiJava: Design Rationale, Compiler Implementation, and Applications. TOPLAS, 28(3):517--575, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Collin, D. Colnet, and O. Zendra. Type Inference for Late Binding: The SmallEiffel Compiler. In JMLC, pages 67--81, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Denker, T. G#238;rba, A. Lienhard, O. Nierstrasz, L. Renggli, and P. Zumkehr. Encapsulating and Exploiting Change with Changeboxes. In ICDL, pages 25--49, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Dmitriev. Profiling Java Applications using Code Hotswapping and Dynamic Call Graph Revelation. In WOSP, pages 139--150, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Dyer and H. Rajan. Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation. In AOSD, pages 191--202, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Ernst. Family Polymorphism. In ECOOP, pages 303--326, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Haupt. Virtual Machine Support for Aspect-Oriented Programming Languages. PhD thesis, Software Technology Group, Darmstadt University of Technology, 2006.Google ScholarGoogle Scholar
  17. G. Hjálmtýsson and R. S. Gray. Dynamic CGoogle ScholarGoogle Scholar
  18. Classes: A Lightweight Mechanism to Update Code in a Running Program. In USENIX Tech. Conf., 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. U. Hölzle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. In ECOOP, pages 21--38, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In ECOOP, pages 327--353, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Mezini and K. Ostermann. Integrating Independent Components with On-demand Remodularization. In OOPSLA, pages 52--67, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical Dynamic Software Updating for C. In PLDI, pages 72--83, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Nicoarua, G. Alonso, and T. Roscoe. Controlled, Systematic, and Efficient Code Replacement for Running Java Programs. In EuroSys, pages 233--246, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Orso, A. Rao, and M. J. Harrold. A Technique for Dynamic Updating of Java Software. In ICSM, pages 649--658, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Paleczny, C. A. Vick, and C. Click. The Java HotSpot Server Compiler. In USENIX JVM Research and Techn. Symposium, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Popovici, G. Alonso, and T. R. Gross. Just-in-time Aspects: Efficient Dynamic Weaving for Java. In AOSD, pages 100--109, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Popovici, T. R. Gross, and G. Alonso. Dynamic Weaving for Aspect-Oriented Programming. In AOSD, pages 141--147, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. X. Qi and A. C. Myers. Sharing Classes Between Families. In PLDI, pages 281--292, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic Software Updates: A VM-centric Approach. In PLDI, pages 1--12, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. D. Suvée, W. Vanderperren, and V. Jonckers. JAsCo: An Aspect-Oriented Approach Tailored for Component based Software Development. In AOSD, pages 21--29, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. E. Tempero, G. Bierman, J. Noble, and M. Parkinson. From Java to UpgradeJ: An Empirical Study. In HotSWUp, pages 1--5, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. E. Tempero, J. Noble, and H. Melton. How Do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software. In ECOOP, pages 667--691, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Thomas, N. Geoffray, C. Clément, and B. Folliot. Designing Highly Flexible Virtual Machines: The JnJVM Experience. Softw. Pract. Exper., 38(15):1643--1675, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. E. Truyen and W. Joosen. Run-Time and Atomic Weaving of Distributed Aspects. TAOSD II, 4242:147--181, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. K. Waldén and J.-M. Nerson. Seamless Object-Oriented Software Architecture. Prentice Hall, 1994.Google ScholarGoogle Scholar
  37. A. Warth, M. Stanojević, and T. Millstein. Statically Scoped Object Adaptation with Expanders. In OOPSLA, pages 37--56, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. O. Zendra, D. Colnet, and S. Collin. Efficient Dynamic Dispatch without Virtual Function Tables: The SmallEiffel Compiler. In OOPSLA, pages 125--141, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. O. Zendra and K. Driesen. Stress-testing Control Structures for Dynamic Dispatch in Java. In USENIX JVM Research and Techn. Symposium, pages 105--118, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Aspect-based dynamic software updating: a model and its empirical evaluation

          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
            AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development
            March 2011
            326 pages
            ISBN:9781450306058
            DOI:10.1145/1960275
            • General Chair:
            • Paulo Borba,
            • Program Chair:
            • Shigeru Chiba

            Copyright © 2011 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: 21 March 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate41of139submissions,29%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader