A.J.H. Simons, M.P. Stannett, K.E. Bogdanov, and W.M.L. Holcombe (UK)
Components, behavioural compatibility, statecharts,subtyping, refinement.
The state of the art in component-based software development depends on the notion of interfaces and interface matching. This only partly solves the problem of safe component usage and substitution, dealing with syntactic compatibility. We present a specification method that describes under what conditions a component is behaviourally compatible with the expectations of an interface. The method is based on the UML class and statechart diagrams, expressed as a set of rules for statechart refinement. Both refinement (UML realisation) and subtyping (UML specialisation) can be captured, allowing a designer to determine when a component matches the requirements of an interface, or when one component may safely be substituted for another. The rules are behaviourally safe under polymorphism with dynamic binding, up to the abstraction captured by the statecharts, and improve on previously published rules for behavioural compatibility.
Important Links:
Go Back