Architectural Reflection Realising Software Architectures via Reflective Activities

  • Francesco Tisato
  • Andrea Savigni
  • Walter Cazzola
  • Andrea Sosio
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1999)


Architectural reflection is the computation performed by a software system about its own software architecture. Building on prev- ious research and on practical experience in industrial projects, in this pa- per we expand the approach and show a practical (albeit very simple) example ofa pplication of architectural reflection. The example shows how one can express, thanks to reflection, both functional and non-functional requirements in terms of object-oriented concepts, and how a clean sep- aration of concerns between application domain level and architectural level activities can be enforced.


Software Architecture State Diagram Industrial Project Architectural Concept Asynchronous Message 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting Object Interactions Using Composition Filters. In Proceedings of Object-Based Distributed Programming (ECOOP94 Workshop), number 791 in LNCS, pages 152–184. Springer-Verlag, Jul 1994. 112Google Scholar
  2. 2.
    F. Arbab, I. Herman, and P. Spilling. An Overview ofMan ifold and Its Implementation. Concurrency: Practice and Experience, 50(1):23–70, Feb 1993. 112CrossRefGoogle Scholar
  3. 3.
    G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1999. 103Google Scholar
  4. 4.
    W. Cazzola, A. Savigni, A. Sosio, and F. Tisato. A Fresh Look at Programming-in-the-Large. In Proceedings of The Twenty-Second Annual International Computer Software and Application Conference (COMPSAC’ 98), Vienna, Austria, Aug 13-15, 1998. 105, 106Google Scholar
  5. 5.
    W. Cazzola, A. Savigni, A. Sosio, and F. Tisato. Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification. In Proceedings of the 2nd Euromicro Conference on Software Maintenance and Reengineering and 6th Reengineering Forum, Florence, Italy, March 8-11 1998. 105, 106Google Scholar
  6. 6.
    W. Cazzola, A. Savigni, A. Sosio, and F. Tisato. Architectural reflection: Concepts, design, and evaluation. Technical Report RI-DI-234-99, Dipartimento di Scienze dell’Informazione, Universitá degli Studi di Milano, 1999. 109Google Scholar
  7. 7.
    W. Cazzola, A. Savigni, A. Sosio, and F. Tisato. Rule-Based Strategic Reflection: Observing and Modifying Behaviour at the Architectural Level. In Proceedings of Automated Software Engineering-ASE’99 14th IEEE International Conference, pages 263–266, Cocoa Beach, Florida, USA, Oct 12-15 1999. 109Google Scholar
  8. 8.
    F. DeRemer and H. H. Kron. Programming-in-the-large versus Programming-in-the-small. Transactions on Software Engineering, SE-2:80–86, June 1976. 105, 112Google Scholar
  9. 9.
    S. Ducasse and T. Richner. Executable Connectors: Towards Reusable Design Elements. In Proceedings of ESEC’97, LNCS 1301, pages 483–500. Springer-Verlag, 1997. 113Google Scholar
  10. 10.
    D. Garlan, R. Allen, and J. Ockerbloom. Architectural Mismatch, or, Why It’s Hard to Build Systems out of Existing Parts. In Proceedings of XVII ICSE. IEEE, April 1995. 105, 110Google Scholar
  11. 11.
    R. Guerraoui and M. E. Fayad. OO Distributed Programming Is Not Distributed OO Programming. Communications of the ACM, 4(42):101–104, 1999. 108CrossRefGoogle Scholar
  12. 12.
    J. Kramer and J. Magee. The Evolving Philosophers Problem: Dynamic Change Management. IEEE Transaction on Software Engineering, SE 16(11), Nov 1990. 112Google Scholar
  13. 13.
    O. Loques, A. Sztajnberg, J. Leite, and M. Lobosco. On the Integration of Configuration and Meta-Level Programming Approaches. In W. Cazzola, R. J. Stroud, and F. Tisato, editors, Reflection and Software Engineering, Lecture Notes in Computer Science 1826, pages 191–210. Springer-Verlag, Heidelberg, Germany, June 2000. 112CrossRefGoogle Scholar
  14. 14.
    P. Maes. Concepts and Experiments in Computational Reflection. In Proceedings of OOPSLA87, Sigplan Notices. ACM, October 1987. 106, 112Google Scholar
  15. 15.
    G. C. Murphy. Architecture for Evolution. In Proceedings of 2nd International Software Architecture Workshop. ACM, 1996. 105Google Scholar
  16. 16.
    P. Oreizy, N. Medvidovic, and R. N. Taylor. Architecture-based runtime software evolution. In Proceedings ICSE 98, pages 177–186, Kyoto, Japan, Apr. 1998. 112Google Scholar
  17. 17.
    G. A. Papadopoulos and F. Arbab. Coordination Models and Languages. Advances in Computers, 46, 1998. 112Google Scholar
  18. 18.
    X. Pintado. Gluons: A Support for Software Component Cooperation. In Proceedings of ISOTAS’93, LNCS 742, pages 43–60. Springer-Verlag, 1993. 112Google Scholar
  19. 19.
    A. Savigni. RoleJ. A Role-Based Java Extension. In Proceedings of ECOOP 2000 (The 14 th European Conference for Object-Oriented Programming), Cannes, France, June 12-16 2000. Poster. To appear. 108, 113Google Scholar
  20. 20.
    A. Savigni, F. Cunsolo, D. Micucci, and F. Tisato. ESCORT: Towards Integration in Intersection Control. In Proceedings of Rome Jubilee 2000 Conference (Workshop on the International Foundation for Production Research (IFPR) on Management of Industrial Logistic Systems-8th Meeting of the Euro Working Group Transportation-EWGT), Roma, Italy, September 11-14 2000. 113Google Scholar
  21. 21.
    A. Savigni and F. Tisato. Kaleidoscope. A Reference Architecture for Monitoring and Control Systems. In Proceedings of the First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, USA, February 22-24 1999. 113Google Scholar
  22. 22.
    A. Savigni and F. Tisato. Designing Traffic Control Systems. A Software Engineering Perspective. In Proceedings of Rome Jubilee 2000 Conference (Workshop on the International Foundation for Production Research (IFPR) on Management of Industrial Logistic Systems-8th Meeting of the Euro Working Group Transportation-EWGT), Roma, Italy, September 11-14 2000. 113Google Scholar
  23. 23.
    A. Savigni and F. Tisato. Real-Time Programming-in-the-Large. In Proceedings of ISORC 2000 The 3rd IEEE International Symposium on Object-oriented Real-time distributed Computing, pages 352–359, Newport Beach, California, USA, March 15-17 2000. 113Google Scholar
  24. 24.
    M. Shaw and D. Garlan. Software Achitecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. 104Google Scholar
  25. 25.
    K. J. Sullivan, I. J. Kalet, and D. Notkin. Evaluating the Mediator Method: Prism as a Case Study. IEEE Transactor on Software Engineering, 22(8):563–579, August 1996. 112CrossRefGoogle Scholar
  26. 26. S. E. I. C. M. University. How Do You Define Software Architecture? 102
  27. 27.
    J. B. Warmer and A. G. Kleppe. The Object Constraint Language: Precise Modeling With UML. Addison-Wesley, 1999. 113Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Francesco Tisato
    • 1
  • Andrea Savigni
    • 1
  • Walter Cazzola
    • 1
  • Andrea Sosio
    • 1
  1. 1.D.I.S.CoUniversitá di Milano-BicoccaMilanItaly

Personalised recommendations