Skip to main content

Managing Evolution Using Cooperative Designs and a Reflective Architecture

  • Conference paper
  • First Online:
Reflection and Software Engineering (OORaSE 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1826))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mehmet Aksit. Composition and Separation of Concerns in the Object-Oriented Model. ACM Computing Surveys, 28A(4), December 1996.

    Google Scholar 

  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. Jan Bosch. Superimposition: A Component Adaptation Technique. Information and Software Technology, 1999.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.

    MATH  Google Scholar 

  17. Walter L. Hürsh and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, 1995.

    Google Scholar 

  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. 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. Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison Wesley, Reading, MA, 1997.

    MATH  Google Scholar 

  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. Christina Videira Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997.

    Google Scholar 

  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.

    Article  Google Scholar 

  24. Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall International Ltd, 1988.

    Google Scholar 

  25. Richard Rashid. Threads of a New System. Unix Review, 4(8):37–49, 1986.

    Google Scholar 

  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.

    Chapter  Google Scholar 

  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. 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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tramontana, E. (2000). Managing Evolution Using Cooperative Designs and a Reflective Architecture. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds) Reflection and Software Engineering. OORaSE 1999. Lecture Notes in Computer Science, vol 1826. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45046-7_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-45046-7_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67761-1

  • Online ISBN: 978-3-540-45046-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics