Current research topics

computer science subdomains: software engineering, formal methods, components, services
issues: composition, coordination, verification, adaptation, repair
models: transition systems (LTS, STS), process algebras, Petri nets, planning graphs

service composition and repair

to appear
selected publications: [ISOLA'10, ICSOC'10]
tools: pycompose, pga (unreleased for now)

software adaptation

Components (here taken a a generic term for units to be composed, ie software components, components in architectural description languages or web services) are often developed by different third-parties. Therefore, when they are combined, they present mismatch. Once detected (thanks to formal methods), mismatch has to be solved if possible. This is the role of software adaptation [CMP06b] which tries to build automatically software pieces called adaptors to ensure the correct composition of components. Even small changes on a service may have a big impact on its clients. The building of adaptors can be therefore also seen as an interesting alternative to the redevelopment of all clients in such cases.


adaptive composition and corrective adaptation (click on the picture to zoom in)

Components may have four different interface levels: signature (operations), behaviours (protocols), non functional (eg QoS) and semantics. Mismatch may appear at each of these and may have to be solved by adaptation.
selected publications: [IEEE TSE xx(xx), 2011, IEEE TSE 34(4), 2008, FASE'08, FORTE'2007, L'objet 12(1), 2006]
tools: Adaptor (v0.2 is packaged, please ask for v0.3 that fully supports the IEEE TSE 34(4) approach), WSA (Web service version of Adaptor 0.2), compositor/scrutator/BPEL2STS/STS2BPEL. Adaptor (and WSA) are superseded by compositor+scrutator. BPEL2STS, compositor, and STS2BPEL are integrated in the ITACA platform (Univ. Malaga). scrutator is to be released possibly in a further version of the CADP toolbox (INRIA/VASY).

model-based testing of composite web services

to appear
selected publications: [TESTCOM'09]
tools: under development

Old research topics

formal architectures and components

The use of component and software architecture based techniques was successfull in component based software engineering (CBSE) and is promising to deal with the software systems complexity issue (as far as verification is concerned for example). It consists in abstracting systems as a set of components, connected by connectors into an architectural configuration. The definition of formal models and languages for components and architectures supports the specification and the analysis (eg deadlock freedom) of component based software systems. In this area, I am particularly interested in coordination mechanisms for components equipped with behavioural interfaces (using Behavioural Interface Description Languages, BIDL). An advantage of coordination is to abstract from detail on the system entities and focus (separately) on communication and interaction issues. More concretely, its means studying the connectors independently from components in software architectures. Coordination may also be seen as the study, at the conceptual level, of middleware mechanisms.
selected publications: [JUCS 12(12), 2006, FMOODS'06a, DOA'04, FOCLASA'03]
tools: Korrigan. This tool is no longer supported, see e.g., STSlib (EMN).

specification integration and mixed specification

Software systems can be decomposed in several aspects (data, protocols, time constraints, ...) to limit the complexity of their design process and foster reusability of existing design models or software pieces. Mixed specifications have for objective to support the description of more than one aspect. Heterogeneous specifications rely on several distinct languages for this, which is important as no universal language would be a solution. The main issue is then to address the definition of a global semantics for the gluing of all the heterogenous aspects and to check for their compatibility.
selected publications: [IEEE TSE 33(3), 2007, JUCS 7(1), 2001, AMAST'00, FM'99]
tools: Korrigan (including CLAP), xCLAP, ETS. These tools are no longer supported.