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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Mehmet Aksit. Composition and Separation of Concerns in the Object-Oriented Model. ACM Computing Surveys, 28A(4), December 1996.
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.
Jan Bosch. Superimposition: A Component Adaptation Technique. Information and Software Technology, 1999.
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern Oriented Software Architecture: A System of Patterns. John Wiley & Sons, 1996.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Eric Gamma, Richard Helm, Ralph Johnson, and Richard Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Reading, MA, 1994.
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.
Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.
Walter L. Hürsh and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, 1995.
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.
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.
Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison Wesley, Reading, MA, 1997.
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.
Christina Videira Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997.
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.
Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall International Ltd, 1988.
Richard Rashid. Threads of a New System. Unix Review, 4(8):37–49, 1986.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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