Bisimulation through probabilistic testing
Information and Computation
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interconnecting formalisms: supporting modularity, reuse and incrementality
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Formalizing architectural connection
ICSE '94 Proceedings of the 16th international conference on Software engineering
Towards a compositional interpretation of object diagrams
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Software architecture: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Proceedings of the 24th International Conference on Software Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Component-Oriented Programming
Proceedings of the Workshop on Object-Oriented Technology
Acme: an architecture description interchange language
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
A Temporal Logic Approach to the Specification of Reconfigurable Component-Based Systems
Proceedings of the 17th IEEE international conference on Automated software engineering
Higher-order architectural connectors
ACM Transactions on Software Engineering and Methodology (TOSEM)
A formal approach to software architecture
A formal approach to software architecture
Categories for Software Engineering
Categories for Software Engineering
Superposition: composition vs refinement of non-deterministic, action-based systems
Formal Aspects of Computing
A survey of self-management in dynamic software architecture specifications
WOSS '04 Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems
An Operational Semantics of CommUnity Based on Graph Transformation Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
A logical basis for the specification of reconfigurable component-based systems
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Verifying temporal properties of community designs
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
Hi-index | 0.00 |
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.