User:Nicolas/Collections/ADVANCE D3.4 Model Composition and Decomposition

From Event-B
Jump to navigationJump to search

Overview

Composition is the process by which it is possible to combine different sub-systems into a larger system. Known and studied in several areas, this has the advantage of re-usability and combination of systems especially when it comes to distributed systems. One of the most important feature of the Event-B approach is the possibility to introduce new events during refinement steps, but a consequence is an increasing complexity of the refinement process when having to deal with many events and many state variables. Model decomposition is a powerful technique to scale the design of large and complex systems. It enables first developers to separate components development from the concerns of their integration and orchestration. Moreover, it tackles the complexity problem mentioned above, since decomposition allows the partitioning the complexity of the original model into separated components. This allows a decomposed part of the model to be treated as an independent artifact so that the modeller can concentrate on this part and does not have to worry about the other parts. Composition and decomposition can be seen as inverse operations: while composition starts with different components that can be assembled together, decomposition starts with a single components that can be partitioned into different components.

Motivations / Decisions

Recent updates to the composition and decomposition features are:

1) Support for flattening: this is needed in order to compose refinement chains, rather than just machines at a single abstraction level. It was requested by the Critical Software partner, in order to apply composition to the smart grid case study.

2) Porting to Rodin 3 as part of the tool maintenance activity.

Available Documentation

Details about decomposition can be found here

Details about composition can be found here

Conclusion

Composition/decomposition have been applied in the interlocking case study of WP1 and the smart grid case study of WP2. WP2 required the addition of a feature to flat refinement chains in order to compose them. Composition/decomposition has been ported to Rodin 3.

References