A Formal Approach to Constructing Well-Behaved Systems Using Components
Present-day software systems are in increasing need of modification and evolution due to changing requirements. Component-based development constitutes a key methodology for creating large-scale, evolvable systems in a timely fashion as it advocates the (re)use of prefabricated replaceable software components. However, it is often the case that undesirable or unpredictable behaviour emerges when components are combined. This is partly due to lack of behavioural information about the individual components. In this paper, we describe a formal model for component specification which can be used to support the analysis and predictability of component composition and to identify undesirable behaviour. In our approach, component behaviour is modelled by so-called behavioural presentations, a powerful model of true-concurrency. Moreover, the framework is compositional and supports the assembly of the final system from arbitrary components.