Safe and Constructive Design with UML Components

Component Based Software Development (CBSD) is an established paradigm to build systems from reusable and loosely coupled units. However, it is still a challenge to ensure, in a scalable way, that desired properties hold for component integration. We present a component based model for UML, including a metamodel, well-formedness conditions and a formal semantics via translation into BRIC. We use (our previous work on) BRIC as an underlying (and totally hidden) component development framework so that our approach benefits from all the formal infrastructure developed for BRIC using CSP (Communicating Sequential Processes). Component composition, specified via UML structural diagrams, ensures, by construction, adherence to classical concurrent properties: our focus is on the preservation of deadlock freedom. Partial automated support is developed as a plug-in to the Astah modelling tool. We illustrate our overall approach with two case studies.

[1]  Jim Woodcock,et al.  Features of CML: A formal modelling language for Systems of Systems , 2012, 2012 7th International Conference on System of Systems Engineering (SoSE).

[2]  Michael Grüninger,et al.  The Process Specification Language (PSL) Theory and Applications , 2003, AI Mag..

[3]  Olivier Casse,et al.  SysML: Object Management Group (OMG) Systems Modeling Language , 2018 .

[4]  Joseph Sifakis,et al.  A framework for automated distributed implementation of component-based models , 2012, Distributed Computing.

[5]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[6]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

[7]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[8]  Zhenbang Chen,et al.  Specification and Validation of Behavioural Protocols in the rCOS Modeler , 2009, FSEN.

[9]  Augusto Sampaio,et al.  Systematic Development of Trustworthy Component Systems , 2009, FM.

[10]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[11]  Augusto Sampaio,et al.  Rigorous development of component-based systems using component metadata and patterns , 2016, Formal Aspects of Computing.

[12]  Wei Li,et al.  Modelling and Verification for Swarm Robotics , 2018, IFM.

[13]  A. W. Roscoe,et al.  FDR3 - A Modern Refinement Checker for CSP , 2014, TACAS.

[14]  Frederick T. Sheldon,et al.  Assessment of High Integrity Software Components for Completeness, Consistency, Fault-Tolerance, and Reliability , 2003, Component-Based Software Quality.

[15]  Augusto Sampaio,et al.  An integrated semantics for reasoning about SysML design models using refinement , 2017, Software & Systems Modeling.

[16]  Bart Jacobs,et al.  An introduction to (co)algebra and (co)induction , 2011, Advanced Topics in Bisimulation and Coinduction.

[17]  Zhenbang Chen,et al.  Refinement and verification in component-based model-driven design , 2009, Sci. Comput. Program..