Abstract.
The traditional notion of superposition has been used for supporting two distinct aspects of parallel program design: composition and refinement. This is because, when trace-based semantics of concurrency are considered, which is typical of most formal methods, these two relationships are modelled as inclusion between sets of behaviours. However, when forms of non-deterministic behaviour have to be considered, which is the case for component and service-based development, these two aspects do not coincide. In this paper, we show how the two roles of superposition can be separated and supported at the language and semantic levels. For this purpose, we use a categorical formalisation of program design in the language CommUnity that we are also using for addressing architectural concerns, another area in which the distinction between composition and refinement is particularly important.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
Author information
Authors and Affiliations
Additional information
Correspondence and offprint request to: Antónia Lopes, orgdivisionDepartment of Informatics, Faculty of Sciences, University of Lisbon, Campo Grande, 1749-016 Lisbon, Portugal.
Received November 2002 Accepted in revised form June 2003 by B.T. Denvir and E. Boiten
Rights and permissions
About this article
Cite this article
Lopes, A., Fiadeiro, J. Superposition: composition vs refinement of non-deterministic, action-based systems. Formal Aspects of Computing 16, 5–18 (2004). https://doi.org/10.1007/s00165-003-0021-6
Issue Date:
DOI: https://doi.org/10.1007/s00165-003-0021-6