Advertisement

Extension Morphisms for CommUnity

  • Nazareno Aguirre
  • Tom Maibaum
  • Paulo Alencar
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4060)

Abstract

Superpositions are useful relationships between programs or components in component based approaches to software development. We study the application of invasive superposition morphisms between components in the architecture design language CommUnity. This kind of morphism allows us to characterise component extension relationships, and in particular, serves an important purpose for enhancing components to implement certain aspects, in the sense of aspect oriented software development. We show how this kind of morphism combines with regulative superposition and refinement morphisms, on which CommUnity relies, and illustrate the need and usefulness of extension morphisms for the implementation of aspects, in particular, certain fault tolerance related aspects, by means of a case study.

Keywords

Abstract Design Output Channel Input Channel Proof Obligation CommUnity Design 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abrial, J.-R.: The B-Book, Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)MATHCrossRefGoogle Scholar
  2. 2.
    Aguirre, N., Maibaum, T., Alencar, P.: Abstract Design with Aspects (2005) (submitted)Google Scholar
  3. 3.
    Chandy, K., Misra, J.: Parallel Program Design - A Foundation. Addison-Wesley, Reading (1988)MATHGoogle Scholar
  4. 4.
    Dimitrakos, T., Bicarregui, J., Matthews, B., Maibaum, T.: Compositional Structuring in the B-Method: A Logical Viewpoint of the Static Context. In: P. Bowen, J., Dunne, S., Galloway, A., King, S. (eds.) B 2000, ZUM 2000, and ZB 2000. LNCS, vol. 1878, p. 107. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Fiadeiro, J.: Categories for Software Engineering. Springer, Heidelberg (2004)Google Scholar
  6. 6.
    Fiadeiro, J., Maibaum, T.: Categorical Semantics of Parallel Program Design. In: Science of Computer Programming, vol. 28(2-3), Elsevier, Amsterdam (1997)Google Scholar
  7. 7.
    Filman, R., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)Google Scholar
  8. 8.
    Francez, N., Forman, I.: Interacting Processes. Addison-Wesley, Reading (1996)MATHGoogle Scholar
  9. 9.
    Garlan, D., Monroe, R., Wile, D.: ACME: An Architecture Description Interchange Language. In: Proceedings of CASCON 1997, Toronto, Ontario (1997)Google Scholar
  10. 10.
    Goguen, J.: Categorical Foundations for General System Theory. In: Pichler, F., Trappl, R. (eds.) Adavaces in Cybernetics anda Systems Research, Transcripta Books, pp. 121–130 (1973)Google Scholar
  11. 11.
    Katara, M., Katz, S.: Architectural Views of Aspects. In: Proceedings of International Conference on Aspect-Oriented Software Design AOSD (2003)Google Scholar
  12. 12.
    Katz, S.: A Superimposition Control Construct for Distributed Systems. ACM Transactions on Programming Languages and Systems 15, 337–356 (1993)CrossRefGoogle Scholar
  13. 13.
    Katz, S., Gil, J.: Aspects and Superimpositions. In: ECOOP Workshop on Aspect Oriented Programming (1999)Google Scholar
  14. 14.
    Kiczales, G.: An overview of AspectJ. In: ECOOP 2001. LNCS, Springer, Heidelberg (2001)Google Scholar
  15. 15.
    Liskov, B., Wing, J.: A Behavioral Notion of Subtyping. In: ACM Transactions on Programming Languages and Systems, November 1994, vol. 16(6), ACM Press, New York (1994)Google Scholar
  16. 16.
    Lopes, A., Wermelinger, M., Fiadeiro, J.: Higher-Order Architectural Connectors. ACM Transactions on Software Engineering and Methodology 12(1) (2003)Google Scholar
  17. 17.
    Lopes, A., Fiadeiro, J.: Superposition: Composition vs. Refinement of Non- Deterministic, Action-Based Systems. In: Formal Aspects of Computing, vol. 16(1), Springer, Heidelberg (2004)Google Scholar
  18. 18.
    Luckham, D., Kenney, J., Augustin, L., Vera, J., Bryan, D., Mann, W.: Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4) (1995)Google Scholar
  19. 19.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying Distributed Software Architectures. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, Springer, Heidelberg (1995)Google Scholar
  20. 20.
    Medvidovic, N., Oreizy, P., Robbins, J., Taylor, R.: Using Object-Oriented Typing to Support Architectural Design in the C2 Style. In: Proceedings of the ACM SIGSOFT 1996 Fourth Symposium on the Foundations of Software Engineering, ACM, San Francisco (1996)Google Scholar
  21. 21.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (2000)Google Scholar
  22. 22.
    Sihman, M., Katz, S.: Superimpositions and Aspect-Oriented Programming. BCS Computer Journal 46 (2003)Google Scholar
  23. 23.
    Wermelinger, M., Lopes, A., Fiadeiro, J.: A Graph Based Architectural (Re)configuration Language. In: Gruhn, V. (ed.) ESEC/FSE 2001, ACM Press, New York (2001)Google Scholar
  24. 24.
    Wermelinger, M., Oliveira, C.: The CommUnity Workbench. In: Proc. of the 24th Intl. Conf. on Software Engineering, p. 713. ACM Press, New York (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Nazareno Aguirre
    • 1
  • Tom Maibaum
    • 2
  • Paulo Alencar
    • 3
  1. 1.Departamento de Computación, FCEFQyNUniversidad Nacional de Río CuartoCórdobaArgentina
  2. 2.Department of Computing & SoftwareMcMaster UniversityHamiltonCanada
  3. 3.School of Computer ScienceUniversity of WaterlooWaterlooCanada

Personalised recommendations