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)
UML 2 GCM/ProActive |
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 the CADP Web 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 the CADP Web 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 http://hal.inria.fr/inria-00268965 or from the CADP Web site in PDF or PostScript |
Contact: | Eric Madelaine INRIA, Centre Sophia Antipolis 2004 route des Lucioles B.P. 93 F-06902 Sophia Antipolis FRANCE Tel: +33 92 38 78 07 Fax: +33 92 38 76 44 Email: Eric.Madelaine@sophia.inria.fr |
Further remarks: | This tool, amongst others, is described on the CADP Web site: http://cadp.inria.fr/software |