Static checking of system behaviors using derived component assumptions
- 1 July 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 9 (3) , 239-272
- https://doi.org/10.1145/352591.352593
Abstract
A critical challenge faced by the developer of a software system is to understand whether the system's components correctly integrate. While type theory has provided substantial help in detecting and preventing errors in mismatched static properties, much work remains in the area of dynamics. In particular, components make assumptions about their behavioral interaction with other components, but currently we have only limited ways in which to state those assumptions and to analyze those assumptions for correctness. We have formulated a method that begins to address this problem. The method operates at the architectural level so that behavioral integration errors, such as deadlock, can be revealed early and at a high level. For each component, a specification is given of its interaction behavior. Form this specification, assumptions that the component makes about the corresponding interaction behavior of the external context are automatically derived. We have defined an algorithm that performs compatibility checks between finite representations of a component's context assumptions and the actual interaction behaviors of the components with which it is intended to interact. A configuration of a system is possible if and only if a successful way of matching actual behaviors with assumptions can be found. The state-space complexity of this algorithm is significantly less than that of comparable approaches, and in the worst case, the time complexity is comparable to the worst case of standard rachability analysis.Keywords
This publication has 19 references indexed in Scilit:
- Uncovering architectural mismatch in component behaviorScience of Computer Programming, 1999
- A partially deadlock-free typed process calculusACM Transactions on Programming Languages and Systems, 1998
- WISR8ACM SIGSOFT Software Engineering Notes, 1997
- Architectural mismatch: why reuse is so hardIEEE Software, 1995
- Specification and analysis of system architecture using RapideIEEE Transactions on Software Engineering, 1995
- Formal specification and analysis of software architectures using the chemical abstract machine modelIEEE Transactions on Software Engineering, 1995
- A behavioral notion of subtypingACM Transactions on Programming Languages and Systems, 1994
- Programming by multiset transformationCommunications of the ACM, 1993
- The gamma model and its discipline of programmingScience of Computer Programming, 1990
- The AdaPIC tool set: supporting interface control and analysis throughout the software development processIEEE Transactions on Software Engineering, 1989