Reconciling Behavioral Mismatch Through Component RestrictionReport
In component-based software development there are often mismatches between system-level requirements and component behaviors. In general, bridging such mismatches requires mutual adaptation of system requirements and components. One kind of mismatch occurs when components permit behaviors that are not permitted by the system-level requirements. We identify restriction, the disabling of component behaviors, as an important way to bridge such mismatches. Unlike extension, which is well studied, restriction has received little attention. We present a model for reasoning about requirements for restriction, and a corresponding technique for implementing restriction, based on matching of partial models of component behaviors against state-machine-based partial system specifications. Our approach respects several difficulties in component-based development: (a) behaviorally complex components, (b) poorly documented component specifications, (c) inability to change core component implementations, and (d) a general lack of built-in restriction mechanisms in practice. To address these difficulties we use lightweight incremental specification of component operations, obtained by reverse-engineering, and external adaptors that adjust the behaviors of components by manipulating their input streams. We describe our experience using this approach to restrict shrink-wrapped package components in the Galileo fault-tree analysis tool.
All rights reserved (no additional license for public reuse)
Marchukov, Mark, and Kevin Sullivan. "Reconciling Behavioral Mismatch Through Component Restriction." University of Virginia Dept. of Computer Science Tech Report (1999).
University of Virginia, Department of Computer Science