Abstract
We have been engaged over the past few years in studying and formalizing software architecture concepts such as hierarchical design, dynamic reconfiguration and the application of the concept of aspects to software architecture descriptions. Our attention has focused on the language CommUnity, developed by Fiadeiro and Maibaum, and an extension that we call DynaComm that incorporates support for dynamic reconfiguration, hierarchical design, a general notion of connector and other supporting mechanisms. In applying DynaComm, we have found that the relationships normally used in CommUnity, i.e., regulative superposition (used to regulate the behaviour of a component) and refinement (used to instantiate a role in a higher order connector) are not sufficient for dealing with some required changes to a software architecture or a component that we would like to be able to affect. To this end, we have defined the concept of extension morphism between two components. Such morphisms do not preserve encapsulation of components, as do regulative superpositions and refinements, but they do give us substitutability, in the sense of object-oriented systems, and, hence, a basis of predictability about its application to designs. In this paper, we describe the nature of extension morphisms and illustrate their use by means of a non trivial example.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aguirre, N., Maibaum, T.: A Temporal Logic Approach to the Specification of Reconfigurable Component-Based Systems. In: ASE 2002, pp. 271–274 (2002)
Aguirre, N., Maibaum, T.: A Logical Basis for the Specification of Reconfigurable Component-Based Systems. In: Pezzé, M. (ed.) ETAPS 2003 and FASE 2003. LNCS, vol. 2621, pp. 37–51. Springer, Heidelberg (2003)
Aguirre, N., Maibaum, T.: Some Institutional Requirements for Temporal Reasoning on Dynamic Reconfiguration of Component Based Systems, Verification: Theory and Practice 2003, 407–435 (2003)
Aguirre, N.: A Logical Basis For the Specification of Reconfigurable Component Based Systems, Ph.D. Thesis, King’s College London, Department of Computer Science (2004)
Aguirre, N., Alencar, P., Maibaum, T.: Aspect Modularity in a High-level Program Design Language. In: CASCON Workshop on Aspect Oriented Software Development, IBM (2005)
Aguirre, N., Regis, G., Maibaum, T.: Verifying Temporal Properties of CommUnity Designs. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, Springer, Heidelberg (2007)
Aguirre, N., Maibaum, T., Alencar, P.: Abstract Design with Aspects (submitted, 2007)
Aguirre, N., Maibaum, T., Alencar, P.: Extension Morphisms for CommUnity, Essays Dedicated to Joseph A. In: Futatsugi, K., Jouannaud, J.-P., Meseguer, J. (eds.) Algebra, Meaning, and Computation. LNCS, vol. 4060, pp. 173–193. Springer, Heidelberg (2006)
Allen, R., Garlan, D.: Formalizing Architectural Connections. In: ICSE 1994, IEEE CS Press, Los Alamitos (1994)
Allen, R.J.: A Formal Approach to Software Architecture, Ph.D. Thesis, Carnegie Mellon University, School of Computer Science, available as TR# CMU-CS-97-144 (May 1997)
Allen, R., Douence, R., Garlan, D.: Specifying and Analyzing Dynamic Software Architectures. In: Astesiano, E. (ed.) ETAPS 1998 and FASE 1998. LNCS, vol. 1382, pp. 21–37. Springer, Heidelberg (1998)
Bicarregui, J.C., Lano, K.C., Maibaum, T.: Towards a Compositional Interpretation of Object Diagrams, Algorithmic Languages and Calculi, pp. 187–207. Chapman & Hall, Sydney, Australia (1997)
Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A survey of self-management in dynamic software architecture specifications, Workshop on Self-Healing Systems, ACM Digital Library (2004)
Corradini, A., Hirsch, D.: An Operational Semantics of COMMUITY Based on Graph Transformation Systems. Electr. Notes Theor. Comput. Sci. 109, 111–124 (2004)
Fiadeiro, J.L., Maibaum, T.: Categorical Semantics of Parallel Program Design, Technical Report, FCUL and Imperial College (1995)
Fiadeiro, J.L., Maibaum, T.: Design Structures for Object Based System, Formal Methods and Object Technology, pp. 183–204. Springer, Heidelberg (1996)
Fiadeiro, J.L., Maibaum, T.: Interconnecting Formalisms: Supporting Modularity, Reuse and Incrementality. In: FSE, pp. 72–80 (1995)
Fiadeiro, J.L.: Categories for Software Engineering. Springer, Heidelberg (2005)
Garlan, D., Monroe, R., Wile, D.: ACME: An Architecture Description Interchange Language. In: CASCON 1997 (1997)
Garlan, D.: Software Architecture: A Roadmap, The Future of Software Engineering. In: Filkenstein, A. (ed.) ACM Press, New York (2000)
Georgiadis, I.: Self-Organising Distributed Component Software Architectures, Ph.D. Thesis, Imperial College of Science, Technology and Medicine, Department of Computing (2002)
Goguen, J.: Mathematical Representation of Hierarchically Organised Systems. In: Attimger, E. (ed.) Global Systems Dynamics, Krager, pp. 112–128 (1971)
Goguen, J., Ginali, S.: A Categorical Approach to General Systems Theory. In: Klir, G. (ed.) Applied General Systems Research, pp. 257–270. Plenum, New York (1978)
Goguen, J.: Categorical Foundations for General Systems Theory. In: Pichler, F., Trappl, R. (eds.) Advances in Cybernetics and Systems Research, Transcripta Books, pp. 121–130 (1973)
Kiczales, G.: An overview of Aspect J. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)
Larsen, K.G., Skou, A.: Bisimulation through probabilistic testing. Information and Computation 94, 1–28 (1991)
Ling, X.: DynaComm: The Extension of CommUnity to Support Dynamic Reconfiguration, MSc Thesis, McMaster University, available as SQRL Technical Report 40 (2007), http://www.cas.mcmaster.ca/sqrl/sqrl_reports.html
Liskov, B., Wing, J.: A Behavioral Notion of Subtyping, ACM Transactions on Programming Languages and Systems, vol. 16(6). ACM Press, New York (1994)
Lopes, A., Wermelinger, M., Fiadeiro, J.: Higher-Order Architectural Connectors. ACM Transactions on Software Engineering and Methodology 12(1) (2003)
Lopes, A., Fiadeiro, J.: Superposition: Composition vs. Refinement of Non-Deterministic, Action-Based Systems, Formal Aspects of Computing, vol. 16(1). Springer, Heidelberg (2004)
Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Gollmann, D. (ed.) Fast Software Encryption. LNCS, vol. 1039, pp. 24–32. Springer, Heidelberg (1996)
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, Heidelberg (1991)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. on Software Engineering 26(1), 70–93 (2000)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architectures. SIGSOFT Software Eng. Notes 17(4), 40–52 (1992)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Englewood Cliffs (1996)
Szyperski, C., Pfister, C.: Component–Oriented Programming: WCOP 1996 Workshop Report, Special Issues in Object-Oriented Programming: Workshop Reader of the 10th European Conference on Object-Oriented Programming ECOOP 1996, pp. 127–130 (1996)
Wermelinger, M., Oliveira, C.: The CommUnity Workbench, ICSE. ACM Press, New York (2002)
Wile, D.S.: Using Dynamic Acme, Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Australia (2001)
Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design: http://www.early-aspects.net/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ling, X., Maibaum, T., Aguirre, N. (2007). Design in CommUnity with Extension Morphisms. In: Jones, C.B., Liu, Z., Woodcock, J. (eds) Formal Methods and Hybrid Real-Time Systems. Lecture Notes in Computer Science, vol 4700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75221-9_20
Download citation
DOI: https://doi.org/10.1007/978-3-540-75221-9_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75220-2
Online ISBN: 978-3-540-75221-9
eBook Packages: Computer ScienceComputer Science (R0)