Design in CommUnity with extension morphisms

  • Authors:
  • Xiang Ling;Tom Maibaum;Nazareno Aguirre

  • Affiliations:
  • Department of Computing and Software, McMaster University, Hamilton, ON, Canada;Department of Computing and Software, McMaster University, Hamilton, ON, Canada;Departamento de Computación, FCEFQyN, Universidad Nacional de Río Cuarto, Río Cuarto, Córdoba, Argentina

  • Venue:
  • Formal methods and hybrid real-time systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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 objectoriented 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.