The Behavior-Interaction-Priority (BIP) framework allows constructing systems by superposing three layers of modelling: Behaviour, Interaction, and Priority. The lower layer consists of a set of atomic components represented by transition systems. The second layer models Interaction between components. Interactions are sets of ports specified by connectors. Priority, given by a strict partial order on interactions, is used to enforce scheduling policies applied to interactions of the second layer. Atomic components are communicating automata with transitions labelled by sets of communication ports. Compound components are obtained from subcomponents by application of glue operators (connectors and priorities). BIP has a formal operational semantics given in terms of Labelled Transition Systems and Structural Operational Semantics derivation rules. It has been successfully used for modelling and analysis of a variety of case studies and applications, such as performance evaluation, modelling and analysis of TinyOS-based wireless sensor network applications, construction and verification of a robotic system.
The execution of a BIP system is driven by a dedicated engine, which has access to the set of connectors and the priority model of the system. In a given global state, each atomic component waits for an interaction through a set of active ports (i.e. ports labelling active transitions) communicated to the engine. The engine computes from the connectors of the BIP program and the set of all active ports, the set of maximal interactions (involving active ports). It chooses one of these interactions, computes the associated data transfer functions and notifies the involved components.
Several engines are available for execution of BIP models on various architectures. Two engines can be used for centralised execution on single processor architectures: the enumerative engine maintains explicitly the set of enabled interactions as a list, whereas the symbolic engine represents this set as a Binary Decision Diagram (BDD). For execution on distributed platforms, BIP models are transformed into Send-Receive BIP, where components communicate by sending messages and the choice of the interaction to be executed is distributed across the platform. In Send-Receive BIP models, this choice is realised by additional automatically generated components, which are replaced by appropriate communication protocols in the generated code.
We have developed DesignBIP, which is a design studio for the BIP framework. DesignBIP can be accessed via a web interface and allows specifying BIP models in a purely graphical way and generating the equivalent code. To facilitate scaling and reusability of BIP models, we have extended architecture diagrams, a graphical language for modeling architecture styles, to define parameterized BIP models. DesignBIP provides dedicated behavior and architecture model editors, architecture style and component type libraries, Java and XML code generation plugins, consistency checking mechanisms, integration with the JavaBIP-engine and visualization of its execution output.
More technical information about BIP
Related publications
- Mavridou, Anastasia, Joseph Sifakis, and Janos Sztipanovits. "DesignBIP: A Design Studio for Modeling and Generating Systems with BIP." Proceedings of the 1st International Workshop on Methods and Tools for Rigorous System Design (2018). http://amavridou.com/papers/mavridou2018designBIP.pdf
- Basu, Ananda, Saddek Bensalem, Marius Bozga, Jacques Combaz, Mohamad Jaber, Thanh-Hung Nguyen, and Joseph Sifakis. "Rigorous component-based system design using the BIP framework." IEEE software 28, no. 3 (2011): 41-48. http://arpont.imag.fr/PEOPLE/Joseph.Sifakis/RecentPublications/2011/ieee-software.pdf
- Bliudze, Simon, Anastasia Mavridou, Radoslaw Szymanek, and Alina Zolotukhina. "Exogenous coordination of concurrent software components with JavaBIP." Software: Practice and Experience (2017). http://amavridou.com/papers/bliudze2017JavaBIP.pdf
- Mavridou, Anastasia, Eduard Baranov, Simon Bliudze, and Joseph Sifakis. "Architecture diagrams: A graphical language for architecture style specification." in Proceedings of 9th Interaction and Concurrency (2016). http://amavridou.com/papers/mavridou2016diagrams.pdf
- Mavridou, Anastasia, Emmanouela Stachtiari, Simon Bliudze, Anton Ivanov, Panagiotis Katsaros, and Joseph Sifakis. "Architecture-based design: a satellite on-board software case study." In 13th International Conference on Formal Aspects of Component Software, pp. 260-279. Springer (2016). http://amavridou.com/papers/mavridou2016satellite.pdf
Related presentations
- General BIP: http://amavridou.com/presentations/mavridouGeneralBIP.pdf
- Architecture-based design with BIP: http://amavridou.com/presentations/mavridouArchitectureCompositionBIP.pdf