Constructive extensibility of trust worthy component-based systems - OLIVEIRA, José Dihego da Silva (2016)
As computer systems become ubiquitous, the demand for rigorous and compositional development methods increase dramatically. In the component-based model driven development (CB-MDD) approach, complex systems (sometimes intractable by humans) are build from simple elements, called components. To achieve the CB-MDD goals towards becoming a rigorously development discipline, components and composition rules must be formalised. Moreover, as requirements continuously evolve, there must be mechanisms to refine and safely extend component-based systems. The BRIC component model formalises the CB-MDD core concepts and supports a constructive design based on composition rules that preserves behavioural properties, but do not provide support for component model evolution. In this work we propose inheritance and refinement relations for BRIC. We define a congruent semantics for this model that considers component structure and behaviour. We define refinement as a preorder relation, which is monotonic with respect to the BRIC composition rules. We enhance this component model with support for extensibility via inheritance. The proposed relations allow extension of functionality, whilst preserving service conformance, which we define by means of a convergence notion. We also establish an algebraic connection between component extensibility and refinement. As far as we are aware this is the first time componente inheritance relations are developed for a formal and sound CB-MDD approach. We also integrate the aspect-oriented paradigm into BRIC. We contribute with an approach to capture, specify and use aspects to safely evolve component-based systems. We establish that components extended by aspects preserve the proposed convergence relation that guarantees service conformance. Furthermore, we establish a connection between componente inheritance and aspects, presenting inheritance as a mechanism to define families of componentes and aspects to capture orthogonal concerns over them. The practical relevance of the proposed relations is illustrated by three case studies. One is an autonomous healthcare system, which evolve by the addition of new functionalities via inheritance and by the modularisation of its crosscutting concerns in a reusable and maintainable manner with aspects. Another case study is a bank system, whose functionalities are progressively realised and extended by refinement and inheritance, respectively. Finally, we model a P2P system extended by inheritance to reduce the network traffic.