Advertisement

Managing Evolution Using Cooperative Designs and a Reflective Architecture

  • Emiliano Tramontana
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1826)

Abstract

The separation of concerns is important to attain object oriented systems which can be easily evolved. This paper presents a reflective architecture which enforces the separation of concerns by allocating functional, interaction and synchronization code to different levels. A variant of collaborations (CO actions) is used to capture interactions between objects and avoids spreading the description of interactions among the participating objects. Functional and interaction code are also separated from synchronization code by means of metalevel components. Introducing changes into the reflective architecture to consider evolution needs is facilitated by the loose coupling of different concerns. Hence, changing a concern often consists of modifying only one component of the reflective architecture. The paper describes the reflective architecture in terms of a case study. The evolution of the reflective implementation of the case study is compared with the evolution of an alternative implementation and the benefits of the proposed architecture are shown by using an evolution metric.

Keywords

Evolution Scenario Object Manager Collaborative Activity Mutual Exclusion Concurrency Control 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Mehmet Aksit. Composition and Separation of Concerns in the Object-Oriented Model. ACM Computing Surveys, 28A(4), December 1996.Google Scholar
  2. 2.
    Mehmet Aksit, Ken Wakita, Jan Bosch, Lodewijk Bergmans, and Akinori Yonezawa. Abstracting Object-Interactions Using Composition-Filters. In Rachid Guerraoui, Oscar Nierstrasz, and Michel Riveil, editors, Proceedings of the Workshop on Object-Based Distributed Programming at the European Conference on Object-Oriented Programming (ECOOP’93), volume 791 of Lecture Notes in Computer Science, pages 152–184, Berlin, Germany, 1993. Springer-Verlag.Google Scholar
  3. 3.
    Jan Bosch. Superimposition: A Component Adaptation Technique. Information and Software Technology, 1999.Google Scholar
  4. 4.
    Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern Oriented Software Architecture: A System of Patterns. John Wiley & Sons, 1996.Google Scholar
  5. 5.
    Walter Cazzola. Evaluation of Object-Oriented Reflective Models. In Proceedings of the ECOOP’98 Workshop on Reflective Object-Oriented Programming and Systems, Brussels, Belgium, 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.Google Scholar
  6. 6.
    Shigeru Chiba. A Metaobject 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.Google Scholar
  7. 7.
    Shigeru Chiba and Michiaki Tatsubori. Yet Another java.lang.Class. In Proceedings of the ECOOP’98 Workshop on Reflective Object-Oriented Programming and Systems, Brussels, Belgium, 1998.Google Scholar
  8. 8.
    Rogerio de Lemos and Alexander Romanovsky. Coordinated Atomic Actions in Modelling Object Cooperation. In Proceedings of the 1st International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC’98), pages 152–161, Kyoto, Japan, 1998.Google Scholar
  9. 9.
    Rogerio de Lemos and Alexander Romanovsky. Exception Handling in a Cooperative Object-Oriented Approach. In Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, pages 1–8, Saint Malo, France, 1999.Google Scholar
  10. 10.
    Rogerio de Lemos and Emiliano Tramontana. A Reflective Architecture for Supporting Evolvable Software. In Proceedings of the Workshop on Software and Organisation Co-Evolution (SOCE’99), Oxford, UK, August 1999.Google Scholar
  11. 11.
    Rogerio de Lemos and Emiliano Tramontana. A Reflective Implementation of Software Architectures for Adaptive Systems. In Proceedings of the Second Nordic Workshop on Software Architectures (NOSA’99), Ronneby, Sweden, 1999.Google Scholar
  12. 12.
    Stéphane Ducasse, Mireille Blay-Fornarino, and Anne-Marie Pinna-Dery. A Reflective Model for First Class Dependencies. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’95), pages 265–280, Austin, Texas, October 1995.Google Scholar
  13. 13.
    Jacques Ferber. Computational Reflection in Class Based Object Oriented Languages. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’89), volume 24 of Sigplan Notices, pages 317–326, New York, NY, 1989.Google Scholar
  14. 14.
    Eric Gamma, Richard Helm, Ralph Johnson, and Richard Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Reading, MA, 1994.Google Scholar
  15. 15.
    Michael Gölm and Jürgen Kleinöder. Implementing Real-Time Actors with Meta-Java. In Proceedings of the ECOOP’97 Workshop on Reflective Real-time Object-Oriented Programming and Systems, volume 1357 of Lecture Notes in Computer Science, Berlin, Germany, 1997. Springer-Verlag.Google Scholar
  16. 16.
    Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.zbMATHGoogle Scholar
  17. 17.
    Walter L. Hürsh and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, 1995.Google Scholar
  18. 18.
    Gregor Kiczales. Towards a New Model of Abstraction in Software Engineering. In Akinori Yonezawa and Brian C. Smith, editors, Proceedings of the International Workshop on New Models for Software Architecture’92, pages 1–11, Tokyo, Japan, 1992.Google Scholar
  19. 19.
    Bent B. Kristensen and Daniel C. M. May. Activities: Abstractions for Collective Behaviour. In Pierre Cointe, editor, Proceedings of the 10th European Conference on Object-Oriented Programming (ECOOP’96), volume 1098 of Lecture Notes in Computer Science, pages 472–501, Berlin, Germany, 1996. Springer-Verlag.Google Scholar
  20. 20.
    Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison Wesley, Reading, MA, 1997.zbMATHGoogle Scholar
  21. 21.
    Rodger Lea, Yasuhiko Yokote, and Jun-Ichiro Itoh. Adaptive Operating System Design Using Reflection. In Proceedings of the 5th Workshop on Hot Topics on Operating Systems, 1995.Google Scholar
  22. 22.
    Christina Videira Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997.Google Scholar
  23. 23.
    Patty Maes. Concepts and Experiments in Computational Reflection. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’87), volume 22(12) of Sigplan Notices, pages 147–155, Orlando, FA, 1987.CrossRefGoogle Scholar
  24. 24.
    Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall International Ltd, 1988.Google Scholar
  25. 25.
    Richard Rashid. Threads of a New System. Unix Review, 4(8):37–49, 1986.Google Scholar
  26. 26.
    Thomas Stauner, Olaf Müller, and Max Fuchs. Using HYTECH to Verify an Automative Control System. In O. Maler, editor, Hybrid and Real-Time Systems, volume 1201 of Lecture Notes in Computer Science, pages 139–153. Springer-Verlag, Berlin, Germany, 1997.CrossRefGoogle Scholar
  27. 27.
    Emiliano Tramontana and Rogerio de Lemos. Design and Implementation of Evolvable Software Using Reflection. In Proceedings of the Workshop on Software Change and Evolution (SCE’99), Los Angeles, CA, May 1999.Google Scholar
  28. 28.
    Emiliano Tramontana and Rogerio de Lemos. Reflective Architecture Supporting Evolution: a Case Study. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Proceedings of the OOPSLA Workshop on Object Oriented Reflection and Software Engineering (OORaSE’99), pages 33–42, Denver, CO, November 1999.Google Scholar
  29. 29.
    Mike VanHilst and David Notkin. Using Role Components to Implement Collaboration-Based Designs. In Proceedings of the 11th Annual ACM Conference on Object-Oriented, Programming Systems, Languages and Applications (OOP-SLA’96), pages 359–369, San Jose, CA, October 1996.Google Scholar
  30. 30.
    Ian Welch and Robert Stroud. Dalang-A Reflective Java Extension. In Proceedings of the OOPSLA’98 Workshop on Reflective Programming in C++ and Java, Vancouver, Canada, 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Emiliano Tramontana
    • 1
  1. 1.Department of Computing ScienceUniversity of Newcastle upon TyneNewcastle upon TyneUK

Personalised recommendations