Keywords : component software architecture.
Following our previous work on component-based architecture design, we have proposed CALICO.
CALICO aims to support the design and validation of component-based assemblies. It enables software architects to specify their architectures as models, and to analyse them with respect to application constraints and platform constraints. Analysis may be static or dynamic depending on whether runtime information are needed to check the compatibility of the specified constraints. CALICO can automatically instantiate the running system from the architecture specification, as well as the system code instrumentation that is required to perform constraint check at execution time.
CALICO is generic, it supports different target component platforms, such as Fractal , OpenCCM and OpenCom, and different kinds of constraints, such as structural constraints expressed with Object Constraint Language (OCL) or behavioral constraints.
We have implemented CALICO in Java. The Eclipse Modeling Framework (EMF) is used for generating an editor, which enables architects to visualize or edit the architecture description models. Consequently, architects can graphically manipulate their architecture and do not need to directly use the CALICO metamodels. EMF enables also the generation of model repository code, which offers programmatic support to manipulate the architecture description models. The EMF model repository code forms the core of all CALICO tools that require manipulating the models. Furthermore, the instrumentation of the system code has implemented with Spoon  .
Calico has been developped in the context of Guillaume Waignier's PhD thesis and the postdoctoral internship of Prawee Sriplakich. CALICO is an open source software available at http://calico.gforge.inria.fr .