Actions and Events in Concurrent Systems Design
This work addresses foundational issues in concurrent systems design for software engineers, but it appears incremental as it extends prior categorical frameworks without demonstrating practical applications or empirical results.
The paper tackles the problem of distinguishing actions from events in concurrent systems design by proposing a new architecture description language that formalizes components as elements of an indexed category. It builds on existing categorical approaches to software construction and explores how morphisms can capture component structure and interaction mechanisms.
In this work, having in mind the construction of concurrent systems from components, we discuss the difference between actions and events. For this discussion, we propose an(other) architecture description language in which actions and events are made explicit in the description of a component and a system. Our work builds from the ideas set forth by the categorical approach to the construction of software based systems from components advocated by Goguen and Burstall, in the context of institutions, and by Fiadeiro and Maibaum, in the context of temporal logic. In this context, we formalize a notion of a component as an element of an indexed category and we elicit a notion of a morphism between components as morphisms of this category. Moreover, we elaborate on how this formalization captures, in a convenient manner, the underlying structure of a component and the basic interaction mechanisms for putting components together. Further, we advance some ideas on how certain matters related to the openness and the compositionality of a component/system may be described in terms of classes of morphisms, thus potentially supporting a compositional rely/guarantee reasoning.