We describe an approach to the design of concurrent software systems based on the constrained expression formalism. This formalism provides a rigorous conceptual model for the semantics of concurrent computations, thereby supporting analysis of important system properties as part of the design process. At the same time, our approach allows designers to use standard specification and design languages, rather than forcing them to deal with the formal model explicitly or directly. As a result, our approach attains the benefits of formal rigor without the associated pain of unnatural concepts or notations for its users.The conceptual model of concurrency underlying the constrained expression formalism treats the collection of possible behaviors of a concurrent system as a set of sequences of events. The constrained expression formalism provides a useful closed-form description of thesesequences. We have developed algorithms for translating designs expressed in a wide variety of notations into these constrained expression descriptions. We have also developed a number of powerful analysis techniques that can be applied to these descriptions.In this paper, we describe the constrained expression formalism and these analysis techniques. We then describe the way this approach would be used in design, giving an example illustrating its use in conjunction with an Ada-like design language, and discuss present and future prospects for its automation and use.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.