Temporal Superimposition of Aspects for Dynamic Software Architecture

  • Carlos E. Cuesta
  • María del Pilar Romay
  • Pablo de la Fuente
  • Manuel Barrio-Solórzano
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4037)


The well-known Separation of Concerns Principle has been revisited by recent research, suggesting to go beyond the limits of traditional modularization. This has led to the definition of an orthogonal, invasive composition relationship, which can be used all along the software development process, taking several different forms. The object-like entity known as aspect is the best known among them, but in the most general case it can be defined as a new kind of structure. Software Architecture must be able to describe such a structure. Moreover, as most Adls have a formal foundation, this can be used to provide an adequate formalization for the aspectual composition relationship, which is still under discussion. In this paper, we propose to base this architecture-level definition in the concept of superimposition, integrating the resulting framework into the process-algebraic, dynamic Adl named \({\mathcal{P}i\mathcal{L}ar}\). This language has a reflective design, which allows us to define that extension without redefining the semantics; in addition, the extended syntax can be used to avoid the use of reflective notions. Nevertheless, the language must provide the means to define general patterns to guide the weaving. Such patterns must not only identify locations in the architecture, but also the adequate states of the corresponding process structure. Therefore, we suggest to use temporal logic, specifically the μ-calculus, as the quantification mechanism. To illustrate this approach, we expose a case study in which all these ideas are used, and conclude by discussing how the combination of temporal logic and aspect superimposition, in this context, provides also an alternative way to describe architectural dynamism.


Temporal Logic Software Architecture Process Algebra Architectural Style Architectural Level 
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.


  1. 1.
    Andrews, J.H.: Process-Algebraic Foundations of Aspect-Oriented Programming. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  2. 2.
    Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)CrossRefzbMATHGoogle Scholar
  3. 3.
    Bougé, L., Francez, N.: A Compositional Approach to Superimposition. In: 15th Annual ACM Symposium on Principles of Programming Languages, POPL 1988, San Diego, pp. 240–249. ACM Press, New York (1988)Google Scholar
  4. 4.
    Bradfield, J.C., Stirling, C.P.: Modal Logics and mu-Calculi: An Introduction. In: Bergstra, J.A., Ponse, A., Smolka, S.A. (eds.) Handbook of Process Algebra, ch. 4, pp. 293–330. Elsevier Science B.V, Amsterdam (2001)CrossRefGoogle Scholar
  5. 5.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons, Chichester (1996)Google Scholar
  6. 6.
    Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)zbMATHGoogle Scholar
  7. 7.
    Cuesta, C.E.: Reflection-based Dynamic Software Architecture. ProQuest Information & Learning, Madrid (May 2003)Google Scholar
  8. 8.
    Carlos, E., de la Fuente, P., Barrio-Solórzano, M., Beato, E.: An “Abstract Process” Approach to Algebraic Dynamic Architecture Description. Journal of Logic and Algebraic Programming 63(2), 177–214 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Cuesta, C.E., de la Fuente, P., Solórzano, M.B., Beato, M.E.: Introducing Reflection in Architecture Description Languages. In: Bosch, J., Gentleman, M., Hofmeister, C., Kuusela, J. (eds.) Software Architecture: System Design, Development and Maintenance, ch. 9, pp. 143–156. Kluwer, Dordrecht (2002)CrossRefGoogle Scholar
  10. 10.
    Cuesta, C.E., Romay, M.P., de la Fuente, P., Barrio-Solórzano, M.: Reflection-based, Aspect-oriented Software Architecture. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 43–56. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  11. 11.
    Fiadeiro, J.L., Maibaum, T.S.E.: Categorical Semantics of Parallel Program Design. Science of Computer Programming 28(2–3), 111–138 (1997)CrossRefzbMATHGoogle Scholar
  12. 12.
    Filman, R.E., Elrad, T., Clarke, S., Aksit, M. (eds.): Aspect-Oriented Software Development. The Object Technology Series. Addison-Wesley, Reading (2004)Google Scholar
  13. 13.
    Filman, R.E., Friedman, D.P.: Aspect-Oriented Programming is Quantification and Obliviousness. In: OOPSLA 2000 Workshop on Advanced Separation of Concerns (ASoC 2000) (October 2000)Google Scholar
  14. 14.
    Katara, M.: Superposing UML class diagrams. In: AOSD 2002 First Workshop on Aspect-Oriented Modeling with UML (AOM1), Enschede, The Netherlands (April 2002)Google Scholar
  15. 15.
    Katara, M., Katz, S.: Architectural Views of Aspects. In: Proceedings of the Second International Conference on Aspect-Oriented Software Development (AOSD 2003), pp. 1–10. ACM Press, New York (2003)Google Scholar
  16. 16.
    Katz, S.: A Superimposition Control Construct for Distributed Systems. ACM Transactions on Programming Languages and Systems 15(2), 337–356 (1993)CrossRefGoogle Scholar
  17. 17.
    Kellomäki, P.: A Formal Basis for Aspect-Oriented Specification with Superposition. In: Leavens, G.T., Cytron, R. (eds.) FOAL 2002 Proceedings: Foundations of Aspect-Oriented Languages, April 2002, pp. 27–32 (2002) ISU-TR02-06Google Scholar
  18. 18.
    Kojarski, S., Lieberherr, K., Lorenz, D.H., Hirschfeld, R.: Aspectual Reflection. In: Proceedings of SPLAT 2003 (March 2003)Google Scholar
  19. 19.
    Lieberherr, K., Lorenz, D.H., Ovlinger, J.: Aspectual Collaborations: Combining Modules and Aspects. The Computer Journal 46(5), 542–565 (2003)CrossRefzbMATHGoogle Scholar
  20. 20.
    Parnas, D.L.: On the Criteria to Be Used in Decomposing Systems into Modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  21. 21.
    Sihman, M., Katz, S.: A Calculus of Superimpositions for Distributed Systems. In: Proceedings of the First International Conference on Aspect-Oriented Software Development (AOSD 2002), April 2002, pp. 28–40. ACM Press, New York (2002)CrossRefGoogle Scholar
  22. 22.
    Sihman, M., Katz, S.: Superimpositions and Aspect-Oriented Programming. The Computer Journal 46(5), 529–541 (2003)CrossRefzbMATHGoogle Scholar
  23. 23.
    Stirling, C.: Modal and Temporal Logics. In: Abramsky, S., Gabbay, D., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 477–563. Oxford University Press, Oxford (1991)Google Scholar
  24. 24.
    Woods, E.: Experiences Using Viewpoints for Information Systems Architecture: an Industrial Experience Report. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 182–193. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • Carlos E. Cuesta
    • 1
  • María del Pilar Romay
    • 2
  • Pablo de la Fuente
    • 3
  • Manuel Barrio-Solórzano
    • 3
  1. 1.Kybele, Departamento de Lenguajes y Sistemas Informáticos ESCETUniversidad Rey Juan CarlosMadridSpain
  2. 2.Departamento de Sistemas Informáticos Escuela Politécnica SuperiorUniversidad Europea de MadridSpain
  3. 3.Depto. de Informática (Arquitectura, C. Computación y Lenguajes) E.T.S. Ingeniería InformáticaUniversidad de ValladolidSpain

Personalised recommendations