Database of Research Tools Developed Using CADP

CTTool for Analyzing Fractal/GCM Components with UML 2

Organisation: Universities of Valparaiso and Santiago (CHILE)
INRIA Sophia Antipolis - Méditerranée (FRANCE)

Functionality: Editing and model checking for UML 2.

Tools used: CADP (Construction and Analysis of Distributed Processes)

Period: 2007-2008

Description: Component-Based Software Development (CBSD) has emerged as a response for decoupling designs into partially independent and reusable modules. CBSD is present in the UML 2 Component Diagrams, which allow to specify explicitly all possible interactions with the environment through well-defined entry points, while hiding all internal details. However, UML leaves many semantics decisions opened, and various emerging component frameworks also have features that cannot be directly expressed using UML 2 concepts. For instance, Fractal is a hierarchical component model including features for non-functional management and (re)configuration, and allows the behavioural specification of the protocols between components. The Grid Component Model (GCM) is an extension of Fractal dedicated to distributed applications, with specificities like deployment description, multicast/gathercast communications, and autonomic components. Although there exists an editor for Fractal architecture descriptions, there is no modelling tool including both architectural and behavioural aspects or analyzing the behaviour of component systems automatically. The present work attempts to fulfill this goal, by means of a translation from Fractal/GCM component frameworks into UML 2 diagrams.

As regards the architectural aspects, the translation between Fractal and UML 2 is done by mapping the diagrams of Fractal ADL into UML 2 Component Diagrams. This mapping takes into account components and subcomponents, provided and required interfaces, and connection bindings. The behavioural aspects are handled by associating to each component a behaviour expressed as a UML 2 state machine diagram. The incoming events managed by the components are the reception of incoming method calls and of remote method call results. The outgoing events are the emission of remote method calls and of incoming method call results. The language extensions specific to GCM (service policies, component synchronization, distributed/concurrent services, multicast/gathercast interfaces between multiple components) are also taken into account.

The translation has been implemented in the CTTool, which allows the graphical editing of Fractal/GCM diagrams and generates LOTOS code for either the global system, a single component, or an arbitrary assembly. The resulting LOTOS specification can be subsequently verified using the CADP toolbox. The CTTool was used to model and verify a subset of the Common Component Modelling Example (CoCoME) consisting in 16 components, 5 of them being composites. The LTS generated from the LOTOS specification produced by CTTool has 1.25 million states and 3 million transitions. This LTS model was analyzed by checking 6 requirements using CADP, which allowed to find several errors, ranging from underspecification of requirements to non-trivial race conditions within the system.

Conclusions: The graphical specification language defined for Fractal/GCM components, based on widely-used UML 2 diagrams, fits well with most software engineer's expertise and is formal enough to be analyzed automatically. The CTTool translates these diagrams into LOTOS specifications capturing both the architectural and behavioural aspects of Fractal/GCM component models, and provides formal verification functionalities by reusing state-of-the-art verification tools such as CADP.

Publications: [Ahumada-Apvrille-Barros-Cansado-Madelaine-Salageanu-07] Solange Ahumada, Ludovic Apvrille, Tomas Barros, Antonio Cansado, Eric Madelaine, and Emil Salageanu. "Specifying Fractal and GCM Components with UML". In Hernén Astudillo and Eric Tanter, editors, Proceedings of the XXVI International Conference of the Chilean Computer Science Society SCCC'2007 (Iquique, Chile), IEEE Computer Society Press, pp. 53-62, November 2007.
Full version available from our FTP site in PDF or PostScript

[Cansado-Caromel-Henrio-Madelaine-Rivera-Salageanu-08] Antonio Cansado, Denis Caromel, Ludovic Henrio, Eric Madelaine, Marcela Rivera, and Emil Salageanu. "A Specification Language for Distributed Components Implemented in GCM/ProActive". In Andreas Rausch, Ralf Reussner, Raffaela Mirandola, and Frantisek Plasil, editors, The Common Component Modeling Example: Comparing Software Component Models CoCoME'2007 (Dagstuhl, Germany), Lecture Notes in Computer Science, vol. 5153, pp. 418-448, August 2008.
Full version available from our FTP site in PDF or PostScript

[Barros-Ameur-Cansado-et-al-08] Tomás Barros, Rabéa Ameur-Boulifa, Antonio Cansado, Ludovic Henrio, and Eric Madelaine. "Behavioural Models for Distributed Fractal Components". Annals of Telecommunications 64(1-2):25-43, February 2009.
Available on-line from
or from our FTP site in PDF or PostScript
Eric Madelaine
INRIA, Centre Sophia Antipolis
2004 route des Lucioles
B.P. 93
F-06902 Sophia Antipolis
Tel: +33 92 38 78 07
Fax: +33 92 38 76 44

Further remarks: This tool, amongst others, is described on the CADP Web site:

Last modified: Fri Feb 19 09:13:01 2016.

Back to the CADP research tools page