Reflective Analysis and Design for Adapting Object Run-Time Behavior

  • Walter Cazzola
  • Ahmed Ghoneim
  • Gunter Saake
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2425)


Today, complex information systems need a simple way for changing the object behavior according with changes that occur in its running environment. We present a reflective architecture which provides the abilityt to change object behavior at run-time by using designtime information. By integrating reflection with design patterns we get a flexible and easilyad aptable architecture. A reflective approach that describes object model, scenarios and statecharts helps to dynamically adapt the software system to environmental changes. The object model, system scenario and manyot her design information are reified by special meta-objects, named evolutionary meta-objects. Evolutionary metaobjects deal with two types of run-time evolution. Structural evolution is carried out by causal connection between evolutionary meta-objects and its referents through changing the structure of these referents by adding or removing objects or relations. Behavioral evolution allows the system to dynamically adapt its behavior to environment changes by itself. Evolutionary meta-objects react to environment changes for adapting the information they have reified and steering the system evolution. They provide a natural liaison between design information and the system based on such information. This paper describes how this liaison can be built and how it can be used for adapting a running system to environment changes.


Reflection Meta-Objects Design Pattern UML Software Evolution 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide. Object Technology Series. Addison-Wesley, third edition, February 1999. 243Google Scholar
  2. 2.
    Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley and Sons Ltd, 1996. 242, 244Google Scholar
  3. 3.
    Walter Cazzola. Evaluation of Object-Oriented Reflective Models. In Proceedings of ECOOP Workshop on Reflective Object-Oriented Programming and Systems (EWROOPS’98), in 12th European Conference on Object-Oriented Programming (ECOOP’98), Brussels, Belgium, on 20th–24th July 1998. Extended Abstract also published on ECOOP’98 Workshop Readers, S. Demeyer and J. Bosch editors, LNCS 1543, ISBN 3-540-65460-7 pages 386–387. 242Google Scholar
  4. 4.
    Walter Cazzola, Andrea Sosio, and Francesco Tisato. Shifting Up Reflection from the Implementation to the Analysis Level. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Reflection and Software Engineering, Lecture Notes in Computer Science 1826, pages 1–20. Springer-Verlag, Heidelberg, Germany, June 2000. 243, 245, 253CrossRefGoogle Scholar
  5. 5.
    Shigeru Chiba. A Meta-Object Protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95), volume 30 of Sigplan Notices, pages 285–299, Austin, Texas, USA, October 1995. ACM. 253Google Scholar
  6. 6.
    Shigeru Chiba, Michiaki Tatsubori, Marc-Olivier Killijian, and Kozo Itano. Open-Java: A Class-based Macro System for Java. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Reflection and Software Engineering, Lecture Notes in Computer Science 1826, pages 119–135. Springer-Verlag, Heidelberg, Germany, June 2000. 253Google Scholar
  7. 7.
    Roger de Lemos and Alexander Romanovsky. Coordinated Atomic Actions in Modelling Object Cooperation. In Proceedings of the 1st IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, volume 30 of Sigplan Notices, pages 152–161, Kyoto, Japan, April 1995. 249Google Scholar
  8. 8.
    Jim Dowling and Vinny Cahill. The K-Component Architecture Meta-Model for Self-Adaptive Software. In Akinori Yonezawa and Satoshi Matsuoka, editors, Proceedings of 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection’2001), LNCS 2192, pages 81–88, Kyoto, Japan, September 2001. Springer-Verlag. 248Google Scholar
  9. 9.
    Luciance Lamour Ferreira and Cecilia M. F. Rubira. The Reflective State Pattern. In Steve Berczuk and Joe Yoder, editors, Proceedings of the Pattern Languages of Program Design, TR-WUCS-98-25, Monticello, Illinois-USA, August 1998. 243Google Scholar
  10. 10.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, 1995. 242, 243, 244Google Scholar
  11. 11.
    David Harel and Eran Gery. Executable Object Modeling with Statecharts. In Proceedings of 18th International Conference on Software Engineering, pages 246–257. IEEE Press, March 1996. 243Google Scholar
  12. 12.
    David Harel and Michael Politi. Modeling Reactive Systems with Statecharts: The STATEMATE Approach. McGraw-Hill, 1998. 243Google Scholar
  13. 13.
    Ivar Jacobson, Magnus Christerson, Patrick Jonsson, and Gunnar Overgaard. Object-Oriented Software Engineering: A use Case Driven Approach. Addison Wesley, 1992. 243Google Scholar
  14. 14.
    Cliff B. Jones. Systematic Software Development Using VDM. Englewood Cliffs, NJ: Prentice-Hall, second edition, 1990. 248, 250zbMATHGoogle Scholar
  15. 15.
    Gregor Kiczales, Jim des Riviéres, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts, 1991. 246Google Scholar
  16. 16.
    Pattie Maes. Concepts and Experiments in Computational Reflection. In Norman K. Meyrowitz, editor, Proceedings of the 2nd Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’87), volume 22 of Sigplan Notices, pages 147–156, Orlando, Florida, USA, October 1987. ACM. 242, 244, 245, 248Google Scholar
  17. 17.
    Gunter Saake, Can Türker, and Stefan Conrad. Evolving Objects: Conceptual Description of Adaptive Information Systems. In H. Balsters, B. de Brock, and S. Conrad, editors, FoMLaDO/DEMM2000, LNCS 2065, pages 163–181. Springer-Verlag Berlin Heidelberg, 2001. 244, 245Google Scholar
  18. 18.
    Linda M. Seiter, Jens Palsberg, and Karl J. Lieberherr. Evolution of Object Behavior Using Context Relations. IEEE Transactions on Software Engineering, 24(1):79–92, 1998. 249CrossRefGoogle Scholar
  19. 19.
    Emiliano Tramontana. Reflective Architecture for Changing Objects. In Walter Cazzola, Shigeru Chiba, and Thomas Ledoux, editors, On-Line Proceedings of ECOOP’2000 Workshop on Reflection and Metalevel Architectures, June 2000. Available at 248

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Walter Cazzola
    • 1
  • Ahmed Ghoneim
    • 2
  • Gunter Saake
    • 2
  1. 1.Department of Informatics and Computer ScienceUniversitá degli Studi di GenovaGenovaItaly
  2. 2.Institute für Technische und Betriebliche InformationssystemeOtto-von-Guericke-Universität MagdeburgMagdeburgGermany

Personalised recommendations