Introducing Reflection in Architecture Description Languages

  1. Cuesta, Carlos E. 1
  2. de la Fuente, Pablo 1
  3. Barrio-Solórzano, Manuel 1
  4. Beato, M. Encarnación 1
  1. 1 Universidad de Valladolid
    info

    Universidad de Valladolid

    Valladolid, España

    ROR https://ror.org/01fvbaw18

Libro:
Software Architecture

ISSN: 1868-4238 1868-422X

ISBN: 9781475765380 9780387356075

Año de publicación: 2002

Páginas: 143-156

Tipo: Capítulo de Libro

DOI: 10.1007/978-0-387-35607-5_9 GOOGLE SCHOLAR lock_openAcceso abierto editor

Resumen

This document describes the structure of PiLar, an Architectural Description Language based on concepts from the field of Reflection, following a proposal suggested in previous work. First, motivations and ideas behind its design are outlined. Next, the language is divided in two parts: a declarative Structural Language, which makes possible to define an architecture’s static skeleton; and an imperative Dynamic Language, which appears as a set of constraining rules written in a concurrent language. Both languages are intertwined with the reification concept, which has a reflective origin. Its meaning and consequences are commented in detail. After this, the language’s formal semantics are informally described; it is conceived as a system of concurrent processes, communicating by means of channels. It is argued that this semantics fits perfectly with architectural concepts. Finally, a solution for the classical problem of the Dining Philosophers is included as an example, to show how this ADL describes the dynamic evolution in a system. The paper concludes emphasizing the generality and usefulness of the language.

Información de financiación

This work has been partially sponsored by the Spanish Commission for Science and Technology, through the CICYT Research Fund TEL99-0335-C04-04.

Financiadores

Referencias bibliográficas

  • Allen, R. (1997). A Formal Approach to Software Architecture. PhD thesis, School of Computer Science, Carnegie Mellon University. Technical report CMU-CS-97–144.
  • Allen, R., Douence, R., and Garlan, D. (1998). Specifying and Analyzing Dynamic Software Architectures. In Proceedings of 1998 Conference on Fundamental Approaches to Software Engineering,Lisbon, Portugal.
  • Arbab, F. (1996). The IWIM Model for Coordination of Concurrent Activities. In Ciancarini, P. and Hankin, C., editors, Coordination Languages and Models, volume 1061 of Lecture Notes in Computer Science, pages 24–56, Cesena, Italia. Springer Verlag.
  • Bernardo, M., Ciancarini, P., and Donatiello, L. (2001). Detecting Architectural Mismatches in Process Algebraic Descriptions of Software Systems. In Kazman, R., Kruchten, P., Verhoef, C., and van Vliet, H., editors, Proceedings of the Second Working IEEE/IFIP Conference on Software Architecture (WICSA’01), Amsterdam. IEEE Computer Society Press.
  • Canal, C., Pimentel, E., and Troya, J. M. (1999). Specification and Refinement of Dynamic Software Architectures. In Software Architecture, pages 107–126. Kluwer Academic Publishing.
  • Cazzola, W., Savigni, A., Sosio, A., and Tisato, F. (1999). Architectural Reflection: Concepts, Design, and Evaluation. Technical Report RI-DSI 234–99, Univ. degli studi di Milano.
  • Cuesta, C. E., de la Fuente, P., Barrio-Solórzano, M., and Beato, E. (2001). Dynamic Coordination Architecture through the use of Reflection. In Proceedings of 16th ACM Symposium on Applied Computing (SAC2001), pages 134–140, Las Vegas, NV. ACM Press.
  • Cuesta, C. E., de la Fuente, P., Barrio-Solórzano, M., and Beato, E. (2002). Coordination in a Reflective Architecture Description Language. In Arbab, F. and Talcott, C., editors, Coordination Models and Languages, volume 2315 of Lecture Notes in Computer Science, pages 141–148, York, UK. Springer Verlag.
  • Katz, S. (1993). A Superimposition Control Construct for Distributed Systems. ACM Transactions on Programming Languages and Systems, 15 (2): 337–356.
  • Kramer, J. and Magee, J. (1990). The Evolving Philosophers Problem: Dynamic Change Management. IEEE Transactions on Software Engineering, 16.
  • Le Métayer, D. (1998). Describing Software Architecture Styles Using Graph Grammars. IEEE Transactions on Software Engineering, 24 (7): 521–553.
  • Luckham, D. C. and Vera, J. (1995). An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, 21 (9): 717–734.
  • Lynch, N. A. (1996). Distributed Algorithms. Morgan Kaufmann.
  • Maes, P. (1987). Concepts and Experiments in Computational Reflection. In Meyrowitz, N., editor, OOPSLA’87 Conference Proceedings,volume 22(12) of SIGPLAN Notices,pages 147–155. ACM Press.
  • Magee, J. and Kramer, J. (1996). Dynamic Structure in Software Architectures. ACM Software Engineering Notes, 21 (6): 3–14.
  • Medvidovic, N. and Taylor, R.N. (2000). A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, 26 (1): 70–93.
  • Milner, R. (1989). Communication and Concurrency. Prentice-Hall.
  • Milner, R. (1999). Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press.
  • Shaw, M. (1994). Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status. In Workshop on Studies of Software Design.
  • Shaw, M. and Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, New Jersey.
  • Victor, B. and Moller, F. (1994). The Mobility Workbench — A Tool for the ir-Calculus. In Dill, D., editor, CAV’94: Computer Aided Verification,volume 818 of Lecture Notes in Computer Science,pages 428–440. Springer-Verlag.
  • Wermelinger, M. and Fiadeiro, J. L. (1999). Algebraic Software Architecture Reconfiguration. In Software Engineering–Proceedings of ESEC/FSE’99,volume 1687 of Lecture Notes in Computer Science,pages 393–409. Springer Verlag.