Abstraction de comportements de composants logiciels à partir de code



Documents pareils
Curriculum Vitae 1 er février 2008

CURRICULUM VITAE. Informations Personnelles

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Analyse,, Conception des Systèmes Informatiques

Formula Negator, Outil de négation de formule.

Liste de conférences et revues Thème Com A

Introduction du test dans la modélisation par aspects

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Une méthode d apprentissage pour la composition de services web

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Synergies entre Artisan Studio et outils PLM

Programmer des applications réparties

Introduction au génie logiciel

Génie logiciel (Un aperçu)

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

RTDS G3. Emmanuel Gaudin

Développement d un interpréteur OCL pour une machine virtuelle UML.

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Un environnement de déploiement automatique pour les applications à base de composants

Description de la formation

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Le génie logiciel. maintenance de logiciels.

Prise en compte des ressources dans les composants logiciels parallèles

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Sujet de thèse CIFRE RESULIS / LGI2P

Évaluation et implémentation des langages

Forthcoming Database

Nathalie REY DIPLOMES UNIVERSITAIRES

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Projet de développement

ISO/CEI Technologies de l information Gestion des actifs logiciels. Partie 1: Procédés et évaluation progressive de la conformité

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Offre de thèse. Co-encadrant de thèse : HENRY Sébastien Coordonnées électroniques : Sébastien.Henry@univ-lyon1.fr Laboratoire : DISP (

Conception des systèmes répartis

Chapitre I : le langage UML et le processus unifié

Ingénierie des Modèles. Méta-modélisation

Curriculum Vitae. Informations générales

Infrastructure PLM pour la capitalisation et la réutilisation de données en conception mécanique

Patrons de Conception (Design Patterns)

NFP111 Systèmes et Applications Réparties

Architectures Ouvertes pour l Adaptation des Logiciels

Laboratoire 4 Développement d un système intelligent

Environnements de développement (intégrés)

Sécurité logicielle. École de technologie supérieure (ÉTS) MGR850 Automne 2012 Automne Yosr Jarraya. Chamseddine Talhi.

Plan de cours ADM 992C Page 1. École des sciences de la gestion Département de management et technologie Université du Québec à Montréal

Une architecture conceptuelle pour le déploiement d applications à grande échelle

Dafoe Présentation de la plate-forme UIMA

Introduction aux systèmes temps réel. Iulian Ober IRIT

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre VI- La validation de la composition.

Mise en œuvre des serveurs d application

Cours Bases de données

Vérifier la qualité de vos applications logicielle de manière continue

Ingénierie et gestion des connaissances

Elasticité logicielle pour optimiser l empreinte énergétique

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

AGROBASE : un système de gestion de données expérimentales

IFT2255 : Génie logiciel

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Évaluation des logiciels et autres réalisations

Workflow et Service Oriented Architecture (SOA)

Stage Ingénieur en développement logiciel/modélisation 3D

Prof. PhD Mathias J. Rossi

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

GL Processus de développement Cycles de vie

ED STIC - Proposition de Sujets de Thèse. pour la campagne d'allocation de thèses 2013

Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Une Perspective Intentionnelle de d Information

Industrial Phd Progam

DotNet. Plan. Les outils de développement

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Jean-Marc Langé. Gestion de processus métier : la place du BPM dans une architecture d entreprise

Projet Active Object

Mines Nantes 20/05/2014. Institut Mines-Telecom : a national network 12 Engineering Graduate schools & 1 Business school. 2 Institut Mines-Télécom

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Master Informatique Aix-Marseille Université

Conception, architecture et urbanisation des systèmes d information

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Vers une adaptabilité dynamique des architectures orientées services

Bourses d excellence pour les masters orientés vers la recherche

En vue de l obtention du. Discipline : Informatique. Présentée et soutenue par Mohamed HADJ KACEM. Le Jeudi 13 Novembre 2008

Université Abou-Bekr Belkaid Tlemcen Faculté des Sciences Economiques et de Gestion. BENBOUZIANE Mohamed

MATHEMATIQUES ET SCIENCES POUR L INGENIEUR

Utilisation de l ingénierie des modèles pour la conception collaborative de produits mécaniques

Pascal Forget 2310, Avenue Notre-Dame Québec, (Québec) Canada, G2E 3G5 Tél. (418) Fax (418)

Grenoble Institute of Technology Esisar department. Speaker : Laurent.Lefevre@grenoble-inp.fr

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

UNIVERSITE SIDI MOHAMED BEN ABDELLAH ECOLE SUPERIEURE DE TECHNOLOGIE

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Transcription:

Abstraction de comportements de composants logiciels à partir de code Réduire la distance spécification-code Pascal ANDRE Dan CHIOREAN Frantisek PLASIL Jean-Claude ROYER 16 octobre 2006 1 Résumé et objectifs L ingénierie logicielle du composant (Component-Based Software Ingénierie - CBSE) a pris une importance croissante parmi les approches de construction du logiciel car elle met l accent sur la (ré)utilisation de composants, appelés aussi composants sur étagère (Components Off The Shelf - COTS). Ces composants provenant de développeurs tiers sont assemblés pour construire des systèmes logiciels complexes. Les composants sont des modules logiciels de taille variable (de grain plus gros que celui des objets dans la programmation à objets) qui peuvent être utilisés à la fois dès les premiers stades du développement à des niveaux d abstraction élevés (architectures logicielles, conception) et dans les niveaux plus concrets (programmes, frameworks). Les principales caractéristiques de l approche par composants sont la modularité, la généralité et la composabilité. Pour être réutilisables, les composants doivent avoir une description externe claire (interfaces riches, contrats, qualité de service des composants...). Un composant représente une unité de calcul et de stockage qui fournit principalement des services. Un service peut être décrit par une simple signature de procédure (ou de fonction) ou être un concept plus riche et structuré incluant des sous-services et des conditions complexes d utilisation. Un service offert propose une fonctionnalité alors qu un service requis est l expression d un besoin de fonctionnalité. Habituellement, un composant implante une ou plusieurs interfaces qui spécifient les interactions du composant avec son environnement (les services qu il fournit, les services qu il requiert, d éventuels contrats et protocoles d utilisation). Lorsque le concept de service devient un concept majeur pour les architectes du logiciel, l ingénierie composant devient très liée à celle des services (service oriented computing - SOC) et des services Web. La construction de logiciels à base de composants reste un domaine émergent pour la recherche tant industrielle qu académique. La plupart des propositions académiques se concentrent sur des modèles abstraits, plutôt orientés vers la conception des architectures logicielles et la vérification des propriétés comme la sûreté ou l équité. Mais il existe également quelques propositions proches LINA - FRE CNRS 2729-2, rue de la Houssinière, B.P.92208, F-44322 Nantes Cedex 3, France Computer Science Research Laboratory, Universitatea BABES-BOLYAI Mihail Kogalniceanu nr. 1 RO- 400084 Cluj-Napoca, Romania Distributed Systems Research Group, Charles University, Malostranske nam.25, 11800 Prague 1, Czech Republic OBASCO - EMN/INRIA LINA FRE CNRS 2729, 4, rue Alfred Kastler F - 44307 Nantes cedex 3 France 1

des langages de programmation. Finalement quelques tentatives plus marginales tentent de faire le lien entre les deux niveaux soit par génération de code à partir des modèles soit par extraction d informations du code exécutable. D un autre côté, les propositions industrielles comme CCM, EJB, OSGI ou.net sont des évolutions des langages à objets vers des cadres plus dédiés. Ces propositions intègrent quelques préoccupations comme la persistance ou la sécurité mais fournissent des solutions trop ad-hoc. Par exemple la composition des unités n est pas toujours prise en compte, le choix du langage de programmation est très contraint, les moyens de communication sont très dépendant du contexte. Une faiblesse générale est le manque d abstraction et de généricité permettant une meilleure réutilisation des composants fabriqués. A notre avis, l absence d un vrai langage de programmation à composants se fait sentir (un langage comme ComponentJ est par exemple une surcouche de Java). En d autres termes il existe un choix large de modèles de composant qui couvrent une grande partie du cycle du logiciel mais il y a un fossé important entre la partie spécification ou modèle pour l architecture et le niveau programmation très investi par les infrastructures industrielles ou des langages à objets un peu améliorés. Le constat ci-dessus est assez courant et résulte de la difficulté à apparier des modèles formels avec des modèles plus opérationnels. Ainsi il n est pas rare de constater l absence de vérification de cohérence entre code et spécification. Une préoccupation importante est de trouver des solutions pragmatiques à ce problème. Une approche est de s inspirer de la transformation de modèles (MDA, MDE) : une conception abstraite du système est réalisée, sur laquelle des vérifications peuvent être faites, puis une traduction en code exécutable est réalisée. Cette approche que l on peut qualifier d ingénierie directe est relativement complexe de par la variété des cibles (modèles abstraits) et parce qu en théorie il faudrait prouver que la traduction est correcte. Elle offre quand même une voie tout à fait prometteuse. Quelques travaux ont déjà été fait dans ce sens, par exemple [PNPR05, PP99]. Une autre approche consiste à partir du code de composants existants et de vérifier qu ils sont conformes à certaines interfaces ou protocoles. Il s agit dans ce cas de faire une analyse du programme et d en extraire des informations qui vont être utilisées pour en vérifier la conformité avec les modèles. Cette approche que nous qualifierons de ingénierie indirecte ou rétro-ingénierie a été très peu exploré dans ce domaine ([BCM+06, PP06a]). Le problème est encore plus complexe pour les raisons suivantes : Très souvent le code source n est pas disponible pour des raisons variées (sécurité, licence, liaison distante, etc). Une raison importante est souvent que le service peut-être payant et à ce titre ne peut pas être fourni. Dans le cas d un code à objets classique la structure sous forme de composant n existe pas et peut être difficile à extraire sans restructurer l application. La masse d informations à traiter est conséquente, il faut donc pouvoir trier et sélectionner les éléments pertinents pour les abstraire et ce choix peut-être critique pour la pertinence des résultats. Il n y a pas de standard que ce soit pour les composants comme pour leur spécification. Les clients ont besoin d interagir avec les services d un composant. Ils doivent donc connaître au moins la signature des services de celui-ci. Mais cela ne suffit pas dans beaucoup de cas. Une connaissance d éventuels sous-services et du comportement dynamique, principalement des enchaînements autorisés entre les services, est indispensable. A partir de là il est envisageable de pouvoir assurer une meilleure interaction ou d éviter des utilisations incorrectes des services. Le but de ce projet est de contribuer à une meilleure maîtrise de la problématique de l ingénierie 2

indirecte des composants. Notre solution passe par le développement de techniques pour extraire des informations du code, des informations sur la signature des services mais aussi sur le comportement dynamique. A partir de là nous proposerons des contrôles de compatibilité entre ces informations et les modèles abstraits en vue d une certification des composants. 2 Approche du problème L essence du projet est d établir un lien entre le code des composants et une spécification plus abstraite de ceux-ci afin de vérifier la cohérence entre les deux et de certifier certaines propriétés des composants. Les avantages de l abstraction, au sens des modèles abstraits et formels, sont bien connus maintenant. Ceux qui nous concernent ici sont la possibilité de vérifier statiquement des propriétés sur le comportement dynamique des composants comme la sûreté, l équité ou la disponibilité. Pour rester dans un cadre réalisable nous proposons de restreindre le travail en tenant compte des compétences et de l expérience des partenaires : 1. Le langage des modèles sources (au niveau du code) est limité à Java. Par ailleurs, compte tenu de la complexité du problème d extraire une spécification abstraite d un composant, nous pensons que celui-ci peut-être résolu de manière satisfaisante si le code contient certains commentaires ou annotations. Ces informations doivent être placées de façon pertinente et éventuellement nous travaillerons sur un sous-ensemble du langage qui reste à préciser. 2. Les modèles cibles (au niveau spécification) sont des composants abstraits et formels inspirés des divers travaux des partenaires. Plutôt que d étudier uniquement (et classiquement) les aspects structurels des composants nous envisageons d extraire des informations comportementales du code Java. Ces informations de comportement sont liées aux caractéristiques dynamiques et fonctionnelles des composants et des services [PV02, AAA06d, PNPR05]. Ils traitent principalement des aspects divers d utilisation des services : signatures, pré-conditions, flot de contrôle en particulier. Plus généralement les comportements dynamiques décrivent l évolution dynamique des composants, des services et des connecteurs d assemblage. Les mécanismes de spécification associés s inspirent de la conception par contrat (assertions, pré-conditions, post-conditions), des spécifications algébriques, des machines à états, des expressions régulières etc. Chaque formalisme a ses avantages et ses inconvénients et il est aussi difficile de les considérer tous (que ce soit séparément ou conjointement). La spécification par contrats est une approche déclarative assez souple mais qui fournit une spécification souvent incomplète. Les spécifications algébriques, dans le cas général, sont difficiles à pratiquer pour les concepteurs du domaine et certains problèmes sont très délicats. Les machines à états et transitions ou les expressions régulières ne sont généralement pas suffisantes en cas de systèmes avec des données structurées ou complexes. Notre point de départ pour ce projet sera l expérience réalisée par le partenaire tchèque. Il a démarré l étude de la vérification de bytecode de composants Java vis-à-vis de spécification de plus haut niveau. Il s agit d un travail en cours dont les premiers résultats ont montré la faisabilité de l approche. Le langage SOFA pour la description des composants intègre un aspect de description dynamique sous la forme d expressions régulières. Cette description décrit l enchaînement des services sans les communications et les données internes. Pour vérifier qu un composant primitif écrit en Java respecte son protocole, le principe est d utiliser Java Path Finder (JPF). Cet utilitaire permet de parcourir l espace d état d un programme Java et d extraire les appels de méthodes pour 3

les transmettre au contrôleur de protocole qui vérifie que leur ordonnancement est conforme au protocole. Mais JPF ne peut traverser qu un programme Java complet et la génération d un environnement Java pour exécuter le composant est rapidement trop complexe à gérer. Nous prévoyons donc de reprendre cette approche et à la fois de la contraindre (filtrage du code Java) et de la généraliser (à des modèles de spécification plus riches). Nous espérons bénéficier de l expérience de l équipe OBASCO qui a conduit des expérimentations de génération de code Java à partir de protocoles. Certains mécanismes peuvent être réutilisés pour aider à la génération de l environnement d exécution des composants. Nous pensons aussi réutiliser l approche mise en œuvre avec Kmelia par l équipe COLOSS à la fois pour enrichir le modèle de spécification et reprendre les outils d analyse de propriétés pour faire des vérifications. Nous pensons aussi nous baser sur une collaboration de ces deux équipes autour des aspects concurrents (CEAOP) et de Kmelia pour traiter du problème plus spécifique de la concurrence des protocoles de comportement Nous souhaitons aussi étendre l approche précédente pour prendre en compte des données et des assertions. Nous envisageons ainsi d avoir une approche compatible avec le langage Object Constraint Language (OCL), un des domaines de compétence du partenaire roumain. OCL est un langage fonctionnel, standard de l OMG, pour la navigation dans les modèles UML et permettant l expression d assertions pour les méthodes. Il existe également des extensions d OCL supportant la spécification des actions, par exemple l outil Xactium (http ://www.xactium.com). Une préoccupation qui nous guide est d utiliser des langages assez proches de ceux couramment pratiqués dans l industrie, OCL, expression régulière et systèmes de transitions en font partie. Un autre intérêt d OCL est son indépendance vis-à-vis du langage de programmation, contrairement aux autres approches par contrats telles que JML ou Eiffel. L introduction dans l approche précédente d un sous-ensemble d OCL n est pas une tâche triviale mais les partenaires disposent de compétences complémentaires dans ce domaine. En résumé, le partenaire tchèque a mis au point un langage de composant (SOFA) et une première approche pour vérifier la compatibilité du code avec le protocole. Les partenaires français ont conduit plusieurs expériences dans le domaine de la génération de code Java, de langages de composants formels (Kmelia) et de moyens de vérifications. Le partenaire roumain a une grande expérience d OCL et de sa sémantique opérationnelle au travers de l implémentation d un outil dédié à ce langage. 3 Travaux connexes Nous situons ici les travaux des équipes vis-à-vis des travaux existants. 3.1 Etat de l art Beaucoup de travaux ont été consacrés à la construction de vérificateurs de modèles (model checker pour vérifier automatiquement les logiciels, à la fois sous forme de code et de modèles abstraits. Par exemple SMV [SMV] et SPIN [SPIN] sont des outils répandus pour vérifier des modèles décrits dans un langage spécifique (e.g. Promela pour SPIN). Ces outils sont adaptés tant à la vérification de systèmes modélisés à hauts niveaux d abstraction lors de la conception que celle des protocoles de bas niveaux. Néanmoins vérifier le code réel nécessite des traductions dans des langages spécialisés qui ont une sémantique différente de celle des langages de programmation. 4

Bien qu il existe des travaux attestant de la faisabilité de cette approche (e.g. [Eis05]), la voie la plus prometteuse est d utiliser des vérificateurs de modèles spécifiques à la vérification de code (code source, bytecode ou code binaire), tels que Bandera [CDH+00], MAGIC [CCG+04], SLAM [BR02], SATABS [CKS+04], ou Java PathFinder [JPF]. Ces outils analysent le code pour des protiétés prédéfinies et la violation d assertions (contrats). Certains vérifient même les erreurs de débordement dans un tableau ou la sûreté de référence des pointeurs. Malgré leur puissance, ces outils manquent de base pour la vérification des composants logiciels, qui possède de nombreuses particularités. La première est qu un composant n est pas un système fermé et sa vérification nécessite de prendre en compte l environnement du composant obtenu lors de l assemblage des composants (statique ou dynamique). La seconde est que la correction d un composant n est pas définie uniquement à partir de l usage correct de constructions de base du langage de programmation (pointeurs par exemple) mais aussi de l évolution dynamique et des règles de composition à haut niveau d abstraction. On doit donc s assurer que non seulement le composant ne doit pas «planter» à cause de violation d assertions ou de déréférencement de pointeurs mais que son comportement vis-à-vis des autres composants est celui attendu. La liste des travaux similaires n est pas si longue dans le cadre des particularités de la vérification des composants. Les travaux les plus proches sont ceux du projet SLAM qui vise à vérifier les pilotes du noyau de Windows. Du fait que les pilotes du noyau sont un système ouvert, SLAM cible de nombreux problèmes similaires à ceux de la vérification de composants. MAGIC est un autre projet proche dont le but est de vérifier du code C vis-à-vis de spécifications sous forme de machines à états. L outil est basé sur une approche compositionnelle, c est-à-dire qu il décompose un système conséquent en plusieurs procédures écrites en langage C et vérifie chaque procédure indépendamment. Plus précisément, l outil est capable de vérifier qu une machine à état (LTS) est une abstraction sûre d une procédure C en se basant sur le concept «abstraire-vérifier-raffiner» [CGJ+00]. Enfin, la plateforme VERCORS [BCM+06] est un outil d analyse de propriétés de sûreté et de sécurité d applications distribuées. L outil est basé sur une méthode de génération de systèmes de transitions synchronisés à partir d une analyse statique de code source (Java/ProActive). Comme dans Kmelia, l objectif est d intégrer des outils existants plutôt que de les développer. De manière générale plusieurs projets s attaquent à des problèmes similaires, mais la vérification de modèles et l analyse de composants logiciels avec toutes ses spécificités nécessite des approches personnalisées se basant sur une définition claire de la problématique et un fondement formel. En ce sens, ce projet vise à réunir des équipes de recherche concernées pour débattre sur la thématique, identifier les problèmes clés et poser les bases d une solution implantable. [CKS+04] Edmund M. Clarke, Dalien Kroening, Natasha Sharygina, and Karen Yorav. Predicate Abstraction of ANSI C Programs using SAT. In Formal Methods in System Design (FMSD), pages 105 127, vol. 25, 2004. [BR02] Thomas Ball and Sriram K. Rajamani. The SLAM Project : Debugging System Software via Static Analysis. In POPL 2002, ACM, Jan 2002. [BCM+06] Tomas Barros, Ludovic Henrio and Eric Madelaine. Model-Checking Distributed Components : The Vercors Platform. In Proceedings of Formal Aspects of Component Software (FACS 06), Prague, Czech Republic, September 20-22, 2006, ENTCS, Sep 2006. [PP06a] Pavel Parizek and Frantisek Plasil. Modeling Environment for Component Model Checking from Hierarchical Architecture. In Proceedings of Formal Aspects of Component Software (FACS 06), Prague, Czech Republic, September 20-22, 2006, ENTCS, Sep 2006. 5

[CDH+00] James C. Corbett, Matthew B. Dwyer, John Hatcliff, Shawn Laubach, Corina S. Pasareanu, Robby, and Hongjun Zheng. Bandera : Extracting Finite-state Models from Java Source Code. In ICSE 2000, pages 439 448. [CCG+04] Sagar Chaki, Edmund M. Clarke, Alex Groce, Somesh Jha, and Helmut Veith. Modular Verification of Software Components in C. In IEEE Transactions on Software Engineering, 30(6), June 2004. [CGJ+00] Edmund M. Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. Counterexampleguided abstraction refinement. In Computer Aided Verification, pages 154 169, 2000. [Eis05] Cindy Eisner. Formal verification of software source code through semi-automatic modeling. In Software and System Modeling, 4(1) : 14 31, 2005. [JPF] Java PathFinder, http ://javapathfinder.sourceforge.net. [PNPR05] Sebastian Pavel, Jacques Noyé, Pascal Poizat, and Jean-Claude Royer. A java implementation of a component model with explicit symbolic protocols. In Proceedings of the 4th International Workshop on Software Composition (SC 05), volume 3628 of Lecture Notes in Computer Science, pages 115 125. Springer-Verlag, 2005. [PP99] Radek Pospisil and Frantisek Plasil. Describing the Functionality of EJB using the Behavior Protocols. In Week of Doctoral Students (WDS 99), 1999. [PV02] Frantisek Plasil and Stanislav Visnovsky. Behavior protocols for software components. IEEE Trans. Softw. Eng., 28(11) :1056 1076, 2002. [SPIN] Spin Model Checker, http ://spinroot.com. [SMV] Carnegie Mellon University : Symbolic Model Verifier, http ://www.cs.cmu.edu/ modelcheck/smv.html. 3.2 Nantes L équipe COLOSS à Nantes a une expérience dans le domaine des méthodes formelles, du développement à objet et de l approche composants. Les activités de recherche de l équipe COLOSS se situent entre la recherche fondamentale et leurs applications. Nous explorons les approches formelles (celles basées sur des fondements mathématiques) d aide à l analyse et au développement du logiciel : (a) Spécification multiformalisme et analyse formelle multifacette de systèmes, (b) Spécification, vérification et validation des composants et des architectures logicielles. Cette dernière problématique concerne plus spécifiquement le projet de collaboration. Le but est d assurer la correction des composants utilisés et des compositions de ceux-ci dans le cadre de construction de systèmes informatiques complexes. Nous avons proposé un modèle à composants basés sur les services, appelé Kmelia. Puis nous avons étudié la composabilité des composants dans les assemblages et mené des expérimentations avec la boîte à outils Lotos CADP et l outil de vérification de modèles MEC pour la vérification comportementale de cette propriété. Nous avons développé un prototype de boîte à outils (COSTO : COmponent Study TOolbox) pour valider nos expérimentations ; il intègre actuellement plusieurs modules : un éditeur textuel, un éditeur graphique, un compilateur Kmelia, un vérificateur de correction d architecture, des outils de traduction vers les processus Lotos et les spécifications MEC. Les perspectives concernent la formalisation des protocoles avec traitement de la récursivité, le traitement des assertions des services et les liens entre spécification et code des composants. 6

L équipe OBASCO de l Ecole des Mines de Nantes développe des concepts et des logiciels pour la programmation par aspects et par composants. Nous avons une expérience dans l utilisation des protocoles pour la description des composants logiciels. Nous nous sommes focalisés sur des descriptions plus expressives que les classiques systèmes étiquetés, en particulier nous avons utilisé des systèmes de transitions symboliques (STS), i.e. des protocoles avec des données et des gardes. Nous avons posé les principes d un langage d architecture avec des communications synchrones et asynchrones, des STS, des composants hiérarchiques et une colle complexe pour les synchronisations. Un autre volet de notre travail concerne la vérification de propriétés dans les systèmes à composants munis de STS. Nous avons des premiers résultats qui nous permettent d abstraire certains systèmes de composants avec des données. Nous avons également montré comment générer du code Java de telle sorte que les composants communiquent conformément aux protocoles. Finalement nous avons analysé les langages d aspects au travers de la modification des protocoles des composants. Une question que nous n avons pas abordée est celle de la compatibilité entre le code Java et les protocoles. Nous sommes donc intéressés à étendre l expérience réalisée avec SOFA pour introduire des données, des paramètres et des gardes. De plus nous envisageons d étudier l intégration de ces techniques avec une analyse statique des propriétés des aspects de modification des protocoles. 3.3 Prague Entre autres projets comme l évaluation de performance, le groupe DSRG travaille principalement sur le modèle à composants SOFA et la spécification comportementale. Le modèle à composants SOFA est un support de base pour d autres recherches relatives aux composants logiciels telles que la génération automatique de connecteurs et la gestion de composants dynamiques. La partie de la recherche liée aux comportements vise à améliorer les langages de description architecturale des modèles à composants (en particulier SOFA et Fractal) avec des spécifications comportementales de haut niveau (d abstraction) les protocoles comportementaux. Le formalisme des protocoles comportementaux a une syntaxe similaire à celle des algèbres de processus. Elle s en distingue par la définition de séquences valides d appels de méthodes sur toutes les interfaces de composants. Elle est orientée traces en ce sens que deux protocoles sont équivalents s ils observent la même séquence d appels de méthodes. Les protocoles comportementaux spécifient des séquences régulières (au sens des expressions régulières). L avantage principal se trouve dans la syntaxe compréhensible spécifiquement conçue pour la spécification des protocoles comportementaux de composants. Les protocoles de comportement peuvent être utilisés pour vérifier formellement la correction des communications des composants deux à deux dans une hiérarchie de composants à l aide d un outil de contrôle. Les travaux récents les plus proches de ce projet portent sur la vérification des protocoles comportementaux vis-à-vis du bytecode de composants implantés en Java. Dans ce contexte, l outil de vérification de modèles Java Path Finder (JPF) de la NASA est couplé au vérificateur de protocoles de comportement (PC). Lors du processus de vérification, JPF informe le contrôleur PC chaque fois qu une méthode est invoquée (ou qu un résultat de méthode est envoyé) ou qu un retour arrière se produit. Ainsi le contrôleur PC peut vérifier que les enchaînements sont corrects vis vis du protocole. Du fait que l outil JPF traverse le programme Java complet, la génération d un environnement pour le composant reste un point à résoudre. De nombreux autres aspects sont à approfondir, qui donnent de la matière à étudier dans le cadre de ce projet. 7

3.4 Cluj Le laboratoire de recherche en informatique (UBB-LCI) est une unité du département d informatique de la faculté de Mathématiques et Informatique fondée à Cluj en 1990. La thématique principale est relative à la technologie objet, que ce soit au niveau de la modélisation, des méthodes et des langages. Les produits principaux conçus et développées dans le laboratoire jusqu ici étaient l environnement mfoops et les outils ROCASE et OCLE. Le laboratoire a participé au projet de recherche européen IST1999-20017 NEPTUNE et son équipe a obtenu des résultats reconnus dans des domaines comme la vérification de modèles UML. Dans la continuité du projet européen et en se basant sur les résultats obtenus, le LCI a conçu et implanté OCLE, un outil des plus complets actuellement autour d OCL. Le groupe LCI poursuit activement ses travaux dans les domaines mentionnés ci-dessus, avec un intérêt particulier pour les répertoires basés sur le modèle MOF de l OMG, l utilisation d OCL à tous les niveaux de l architecture de modèles l OMG, l extension d OCL pour la sémantique des actions et des transformations, l amélioration du code et l application de la démarche MDE (Model Driven Architecture). Dans le cadre du projet, le groupe UBB-LCI souhaite apporter son expérience dans la définition d éléments contractuels et de données dans la description des interfaces de composants et dans la vérification de cohérence entre ces éléments et le code Java du programme. 4 Description de la coopération Les quatre équipes ont des connaissances et des approches a priori complémentaires sur le thème abordé par le projet (cf. section 2). L objectif est donc d affiner la confrontation des idées et de faire évoluer les techniques pour les intégrer à l embryon de proposition existant. 4.1 Perspectives Le principal impact du projet est d établir les principes de la cohérence entre code et spécification des composants et du support de la rétro-ingénierie (domaine et co-domaine). Ces principes s accompagneront de techniques d abstraction de code et de vérification comportementale à base de code. Les modèles de spécification de composants devront être étendus en utilisant notamment OCL pour prendre en compte les gardes et les mécanismes d assertions de l approche contractuelle. L expérimentation sera menée sur des programmes (code) existant. Une perspective intéressante est d abstraire le code des composants de plateformes reconnues (telles que.net, EJB, CORBA, OSGI ou Fractal) ou celui d implantation de Web services vers des modèles plus abstraits, du monde académique (tels que WRIGHT, ACME, SOFA, Kmelia...). Ce travail peut servir de support de comparaison entre modèles et de banc de test pour la rétro ingénierie. A plus long terme, une autre perspective sera de développer une plateforme implantant les principes dégagés dans le projet : le passage de la «théorie» de la rétro-ingénierie vers la pratique dans le contexte des composants logiciels. Les partenaires envisagent d intégrer leurs approches pour que l abstraction s adapte à divers modèles de spécification. L intérêt principal est de réutiliser les plateformes existantes pour la spécification et la vérification de composants logiciels. Le champ de la rétro-ingénierie peut aussi tirer parti de ce projet en ce sens que les applications orientées objet pourraient être analysées en vue d une migration dans les technologies à base de composants. 8

4.2 Participants France Nantes COLOSS Pascal André, Maître de Conférence (Assistant Professor) Gilles Ardourel, Maître de Conférence (Assistant Professor) Christian Attiogbé, Maître de Conférence (Assistant Professor) Cédric Stoquer, Doctorant (PhD-Student) New Master Student (later PhD Student) OBASCO Jean-Claude Royer, Professeur (Full Professor) Mario Südholt, Maître Assistant (Assistant Professor) Jacques Noyé, Maître Assistant (Assistant Professor) Fabricio de Alexandria Fernandes, Doctorant (PhD Student) Czech Republic Prague Frantisek Plasil, Professor Jiri Adamek, Researcher Jan Kofron, Ph.D. Student Pavel Parizek, Ph.D. Student Tomas Poch, Ph.D. Student Ondrej Sery, Ph.D. Student Romania Cluj Dan Chiorean, Senior Lecturer Vladiela Petraşcu, PhD-Student Dragoş Petraşcu, PhD-Student 4.3 Planification du projet Le projet est établi sur deux ans. Le calendrier prévisionnel est le suivant : Première année : Détermination du contexte du projet et notamment des limites imposées au code Java à abstraire (concepts et idiomes). Etablir les principes de l abstraction comportementale du code Java et la cible en terme de modèles à composants (Kmelia, SOFA et STS). Expérimentations sur du code existant. Etude et proposition d un patron d annotation de composants EJB pour faciliter la rétroingénierie. Intégration de la vérification des gardes dans les modèles de spécification en utilisant OCL (et OCLE). Documentation, rapports de recherche et préparation de l atelier de travail (workshop). Deuxième année : Affinement et classification des principes et techniques de rétro-ingénierie. Etude de la vérification des assertions dans les modèles de spécification en utilisant OCL. Rétro-ingénierie de code EJB vers des spécifications réalisées en JML ou OCL. Expérimentation sur des études de cas plus larges. Documentation, rapports de recherche et préparation des ateliers de travail. 9

4.4 Moyens demandés Les laboratoires des équipes concernées participent au financement du projet par l accueil des chercheurs étrangers (mise à disposition de bureaux équipés, de documentations et d ordinateurs munis de logiciels), le financement et l équipement des étudiants participant au projet (bourses, bureaux, matériels, documentations, etc.), le financement et l équipement des chercheurs participant au projet, une participation à l organisation des workshops (secrétariat, imprimerie, subventions, etc.). Des moyens sont demandés pour réaliser ce projet qui implique une forte coopération internationale entre la France, la République Tchèque et la Roumanie. Nous organisons un premier atelier de travail (workshop) courant 2007 pour échanger plus précisément les points de vue, les techniques et les expériences propres des différentes approches et pour mettre au point les cas d étude. Ces ateliers se répètent une fois l an et permettent des échanges en directs et donc plus réactifs. Ils permettent aussi de contrôler la progression du projet et de définir de nouvelles balises. Plusieurs visites intermédiaires sont prévues, selon les financements disponibles, pour contribuer au développement des techniques et à l expérimentation des études de cas, elles permettent aussi de se concentrer sur la diffusion et la publication par des périodes intensives qui mobilisent les efforts des acteurs. En particulier en fin de seconde année, nous prévoyons un workshop international sur la thématique du projet lors de la réunion finale de projet. Les ateliers sont planifiés ainsi : Date Lieu juin 2007 Prague Project Workshop mars 2008 Nantes Project Workshop septembre 2008 Cluj International Workshop Nous avons planifié les visites de deux personnes par équipe participante pour chaque atelier. Rappelons que les visites intermédiaires se feront selon les moyens annuels disponibles. Visites de partenaires en République Tchèque Nom But Date Durée Coûts (Euros) P. André Workshop juin 2007 1 semaine 600 + 500 G. Ardourel Workshop juin 2007 1 semaine 600 + 500 J.C. Royer Workshop juin 2007 1 semaine 600 + 500 J. Noyé Workshop juin 2007 1 semaine 600 + 500 D. Chiorean Workshop juin 2007 1 semaine 450 + 500 V. Petraşcu Workshop juin 2007 1 semaine 450 + 500 total 2007 6300 XX-Nantes courte visite juin 2008 1 semaine - XX-Cluj courte visite juin 2008 1 semaine - total 2008?? Voyage/Intendance 10

Visites de partenaires en France Nom But Date Durée Coûts (Euros) J. Kofron courte visite juillet 2007 1 semaine - XX-Cluj courte visite juillet 2007 1 semaine - total 2007?? F. Plasil Workshop mars 2008 1 semaine 600 + 500 O. Sery Workshop mars 2008 1 semaine 600 + 500 T. Poch Workshop mars 2008 1 semaine 600 + 500 V. Petraşcu Workshop mars 2008 1 semaine 600 + 500 D. Petraşcu Workshop mars 2008 1 semaine 600 + 500 total 2008 5500 Voyage/Intendance Visites de partenaires en Roumanie Nom But Date Durée Coûts (Euros) T. Poch courte visite septembre 2007 1 semaine - XX-Nantes courte visite septembre 2007 1 semaine - total 2007?? C. Attiogbé International Workshop septembre 2008 1 semaine 600 + 500 G. Ardourel International Workshop septembre 2008 1 semaine 600 + 500 M. Sudölt International Workshop septembre 2008 1 semaine 600 + 500 F. Fernandes International Workshop septembre 2008 1 semaine 600 + 500 F. Plasil International Workshop septembre 2008 1 semaine 450 + 500 O. Sery International Workshop septembre 2008 1 semaine 450 + 500 total 2008 6300 Voyage/Intendance Organisation du Workshop international Nous budgétisons environ 1900 euros pour soutenir l organisation du Workshop international. 5 Collaboration entre les groupes de recherche Le laboratoire de Nantes a eu par le passé une collaboration en 1991 avec le laboratoire (naissant) d informatique de l université BABES-BOLYAI de Cluj, qui consistait en des échanges (visites) et des publications communes. Il y a aussi eu une collaboration entre Prague et Cluj en 2004-2005, concernant l utilisation de OCL pour spécifier le comportement. Suite à cette collaboration, un étudiant de Prague - Jiri Samek - a rédigé un mémoire de master. Une collaboration informelle a débuté récemment entre l équipe COLOSS de Nantes et celle de Prague, qui porte sur un sujet connexe à ce projet. Elle pourra être étendue à d autres sujets d intérêt commun autour du développement à composants. 11

6 Formation par la recherche Ce projet sert de support à des étudiants français, tchèques et roumains, comme le montre le tableau des participants et des visites. Ce projet contribue à leur thèse. Quelques éléments sont donnés ci-après. Fabricio de Alexandria est un doctorant du groupe OBASCO. Son sujet de thèse est de définir et implanter un modèle à composants avec des protocoles et divers modes de communication. Il doit aussi étudier les moyens et techniques de vérification. Une question importante est celle de la compatibilité. Celle des composants a déjà été abordée dans des travaux existants mais la compatibilité entre le code fonctionnel et les systèmes symboliques reste un problème ouvert. Tous les participants doctorants du partenaire tchèque travaillent sur la spécification de comportements des composants et sur leur vérification. En ce sens, le projet fournit un support de recherche. Dans sa thèse intitulée The Formal-Descriptive Relation in Software Engineering, Dragoş Petraşcu de Cluj, étudie l adéquation de différents formalismes de spécification de composants conception par contrats, langages algébriques, statecharts. Les avantages attendus de la transformation d un modèle d une plateforme indépendante (PIM) vers une plateforme spécifique (PSM et ici le code) seront analysés et un format d annotation sera proposé pour permettre la rétro-ingénierie. Vladiela Petraşcu étudiera les relations entre spécifications formelles de composants et réutilisation. Notons que travailler sur un projet international contribue à la fois à la recherche elle-même mais aussi à enrichir leur vue générale sur le sujet par confrontation d idées et de points de vue. 7 Impact Industriel Le logiciel au comportement aléatoire est proscrit pour les systèmes (critiques) déployés dans les différentes branches d activité économiques ou industrielles. Il est fortement souhaitable de détecter de tels comportements lors du développement du logiciel et non en exploitation. Du fait que les systèmes constitués de composants issus de bibliothèques variées (composants «sur l étagère» ou COTS) ou plus généralement les systèmes modulaires ont pris une part prépondérante dans les activités de génie logiciel, les solutions pour les rendre plus fiables sont devenues une préoccupation majeure des acteurs de l industrie du logiciel. Par conséquent, disposer des outils d analyse permettant de vérifier la conformité des protocoles des composants dans les architectures a un impact industriel significatif. De tels outils peuvent par exemple être intégrés à des environnements de développement tels que.net (de Microsoft) or Enterprise JavaBeans (de Sun) ou Fractal (de France Telecom) pour assurer la qualité (et en particulier l absence de comportements aléatoires ou bloquants, la sûreté,...) des composants et des systèmes. Le partenaire tchèque a une expérience sur ce sujet avec l extension de Fractal à la spécification de comportements dynamiques. Dans le projet Component Reliability Extension (CRE) financé par France Telecom R&D le formalisme des protocoles comportementaux a été incorporé dans le langage de description d architecture Fractal. Cela permet de vérifier la compatibilité des composants (la correction des communications). La vérification de compatibilité peut être calculée soit statiquement lors de la conception, soit dynamiquement à l exécution. La première méthode est utilisée pour vérifier statiquement les architectures de composants avant leur déploiement ou même leur implantation. La seconde méthode est utilisée dans les cas où il est difficile ou impossible de le vérifier à la conception (e.g. changements dynamiques d architecture et évolution de composants). 12

Les buts de ce projet furent atteints avec succès et les résultats furent évalués sur une étude de cas non triviale, montrant ainsi la faisabilité de l approche. Ceci suggère un intérêt significatif de la part des industriels pour cette thématique. 8 Liste des principales publications des cinq dernières années 8.1 Nantes COLOSS [AA05] Pascal André and Gilles Ardourel. Domain Based Verification for UML Models. In Ludwik Kuzniarz, Gianna Reggio, Jean-Louis Sourrouille, and Miroslaw Staron, editors, Workshop on Consistency in Model Driven Engineering C@Mode 05, pages 47 62, November 2005. [AAA + 05a] Pascal André, Gilles Ardourel, Christian Attiogbé, Henri Habrias, and Cédric Stoquer. Vérification de conformité des interactions entre composants. In Philippe Collet and Philippe Lahire, editors, LMO Workshop (Objets, Composants et Modèles), OCM 05, Berne, Suisse, January 2005. [AAA05b] Pascal André, Gilles Ardourel, and Christian Attiogbé. Behavioural Verification of Service Composition. In ICSOC Workshop on Engineering Service Compositions, WESC 05, pages 77 84, Amsterdam, The Netherlands, 2005. IBM Research Report RC23821. [AAA06a] Pascal André, Gilles Ardourel, and Christian Attiogbé. Coordination and Adaptation for Hierarchical Components and Services. In Third International ECOOP Workshop on Coordination and Adaptation Techniquesfor Software Entities (WCAT 06), pages 15 23, 2006. [AAA06b] Pascal André, Gilles Ardourel, and Christian Attiogbé. Spécification d architectures logicielles en Kmelia : hiérarchie de connexion et composition. In 1ère Conférence Francophone sur les Architectures Logicielles, pages 101 118. Hermès Sciences Publications - Lavoisier, 2006. [AAA06c] Pascal André, Gilles Ardourel, and Christian Attiogbé. Vérification d assemblage de composants logiciels Expérimentations avec MEC. In 6e conférence francophone de MOdélisation et SIMulation, MOSIM 2006, pages 497 506, Rabat, Maroc, April 2006. Lavoisier. [AAA06d] Christian Attiogbé, Pascal André, and Gilles Ardourel. Checking Component Composability. In 5th International Symposium on Software Composition, volume 4089 of Lecture Notes in Computer Science. Springer Verlag, 2006. [AH04] Gilles Ardourel and Marianne Huchard. Class-Based Visibility from an MDA Perspective : From Access Graphs to Eiffel Code. Journal of Object Technology, November 2004. [Att04] Christian Attiogbé. A Mechanically Proved Development Combining B Abstract Systems and Spin. In 4th International Conference on Quality Software, QSIC 04, pages 42 49, Braunschweig, Germany, septembre 2004. IEEE Computer Society Press. [Att05a] Christian Attiogbé. Analyzing the Readers/Writers System Using the B Theorem Prover. GESTS International Transaction on Computer Science and Engineering, 7(1) :87 98, 2005. [Att05b] Christian Attiogbé. Practical Combination of Theorem Proving and Model Checking for the Multi-facet Analysis. In 31st Annual Conference on Current Trends in Theory and Practice of Informatics, SOFSEM 05, pages 1 10, Liptovsky Jan, Slovakia, 2005. Slovak Society for Computer Science. 13

[Att06a] Christian Attiogbé. Multi-Process Systems Analysis using Event B : Application to Group Communication Systems. In Eighth International Conference on Formal Engineering Methods (ICFEM 06), Lecture Notes in Computer Science, Macau, China, November 2006. Springer Verlag. à paraître. [Att06b] Christian Attiogbé. Tool-Assisted Multi-Facet Analysis of Formal Specifications (Using Alelier- B and ProB). In IASTED Conf. on Software Engineering, pages 85 90, Innsbruck, Austria, February 2006. IASTED/ACTA Press. [AV01a] Pascal André and Alain Vailly. Conception de systèmes d information - Panorama des méthodes et des techniques, volume 1 of Collection Technosup. Editions Ellipses, 2001. [AV01b] Pascal André and Alain Vailly. Spécification des logiciels - Deux exemples de pratiques récentes : Z et UML, volume 2 of Collection Technosup. Editions Ellipses, 2001. [SA04] Gwen Salaün and Christian Attiogbé. MIAOw : a Method to Integrate a Process Algebra with Formal Data. Informatica, 28(2) :207 219, 2004. OBASCO [BN04] Gustavo Bobeff and Jacques Noyé. Component specialization. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 04), pages 39 50, Verona, Italy, August 2004. ACM Press. [BSV + 06] Luis Daniel Benavides Navarro, Mario Südholt, Wim Vanderperren, Bruno De Fraine, and Davy Suvée. Explicitly distributed AOP using AWED. In Aspect-Oriented Software Development (AOSD), pages 51 62. ACM Press, March 2006. [BSVV06] Luis Daniel Benavides Navarro, Mario Südholt, Wim Vanderperren, and Bart Verheecke. Modularization of distributed web services using Aspects With Explicit Distribution (AWED). In Proceedings of the 8th International Symposium on Distributed Objects and Applications (DOA 06)., London, UK, November 2006. Springer-Verlag. [CMT04] Denis Caromel, Luis Mateu, and Éric Tanter. Sequential object monitors. In Martin Odersky, editor, ECOOP 2004 - Object-Oriented Programming,18th European Conference, volume 3086 of Lecture Notes in Computer Science, pages 316 340, Oslo, Norway, June 2004. Springer- Verlag. [DFS04a] Rémi Douence, Pascal Fradet, and Mario Südholt. Composition, Reuse and Interaction Analysis of Stateful Aspects. In Aspect-Oriented Software Development (AOSD), pages 141 150. ACM, ACM Press, March 2004. [DFS04b] Rémi Douence, Pascal Fradet, and Mario Südholt. Trace-based aspects. In Mehmet Aksit, Siobhán Clarke, Tzilla Elrad, and Robert E. Filman, editors, Aspect-Oriented Software Development, pages 201 218. Addison-Wesley, 2004. [DLNS06] Rémi Douence, Didier Le Botlan, Jacques Noyé, and Mario Südholt. Concurrent aspects. In Generative Programming and Component Engineering (GPCE). ACM Press, October 2006. [MPR04] Olivier Maréchal, Pascal Poizat, and Jean-Claude Royer. Checking Asynchronously Communicating Components Using Symbolic Transition Systems. In D. C. Schmidt R. Meersman, Z. Tari and al., editors, On The Move to Meaningful Internet Systems 2004 : Coopis, DOA, and ODBASE, volume 3291 of Lecture Notes in Computer Science, pages 1502 1519. Springer- Verlag, 2004. 14

[NS06] Dong Ha Nguyen and Mario Südholt. VPA-based aspects : better support for AOP over protocols. In 4th IEEE International Conference on Software Engineering and Formal Methods (SEFM 06). IEEE Computer Society Press, September 2006. [PNPR05] Sebastian Pavel, Jacques Noyé, Pascal Poizat, and Jean-Claude Royer. Java implementation of a component model with explicit symbolic protocols. In Thomas Gschwind, Uwe Assman, and Oscar Nierstrasz, editors, International Workshop on Software Composition (SC), volume 3628 of Lecture Notes in Computer Science, pages 115 124. Springer-Verlag, April 2005. Short paper. [PNR04] Sebastian Pavel, Jacques Noyé, and Jean-Claude Royer. Dynamic configuration of software product lines in archjava. In Robert L. Nord, editor, Software Product Lines : Third International Conference, volume 3154 of Lecture Notes in Computer Science, pages 90 109, Boston, MA, USA, September 2004. Springer-Verlag Heidelberg. [PRRR03] Liang Peng, Annya Romanczuk-Réquilé, and Jean-Claude Royer. A Translation of UML Components into Formal Specifications. In Theo D Hondt, editor, TOOLS East Europe 2002, pages 60 75. Kluwer Academic Publishers, 2003. [PRS04] Pascal Poizat, Jean-Claude Royer, and Gwen Salaün. Formal Methods for Component Description, Coordination and Adaptation. In Proceedings of the ECOOP Workshop on Coordination and Adaptation Techniques for Software Entities (WCAT 04), Oslo, Norway, June 2004. [PRS06] Pascal Poizat, Jean-Claude Royer, and Gwen Salaün. Bounded analysis and decomposition for behavioural description of components. In Springer-Verlag, editor, Proceedings of FMOODS, volume 4037 of Lecture Notes in Computer Science, pages 33 47, 2006. [Roy03a] Jean-Claude Royer. The GAT approach to specify mixed systems. Informatica, 27(1) :89 103, 2003. [Roy03b] Jean-Claude Royer. Temporal Logic Verifications for UML : the Vending Machine Example. RSTI - L objet, 9(4) :73 92, 2003. [Roy04a] Jean-Claude Royer. A Framework for the GAT Temporal Logic. In ISCA, editor, Proceedings of the 13th International Conference on Intelligent and Adaptive Systems and Software Engineering (IASSE 04), pages 275 280, Nice, France, July 2004. [Roy04b] Jean-Claude Royer. Checking class schema usefulness. Journal of Object Technology (JOT), 3(1) :157 176, January 2004. [RTN04] Leonardo Rodriguez, Éric Tanter, and Jacques Noyé. Supporting dynamic crosscutting with partial behavioral reflection : a case study. pages 48 58, 2004. [RX03] Jean-Claude Royer and Michael Xu. Analysing mailboxes of asynchronous communicating components. In D. C. Schmidt R. Meersman, Z. Tari and al., editors, On The Move to Meaningful Internet Systems 2003 : CoopIS, DOA, and ODBASE, volume 2888 of Lecture Notes in Computer Science, pages 1421 1438, Catania, Sicily (Italy), October 2003. Springer- Verlag. [Süd05] Mario Südholt. A model of components with non-regular protocols. In Thomas Gschwind, Uwe Assman, and Oscar Nierstrasz, editors, International Workshop on Software Composition (SC), volume 3628 of Lecture Notes in Computer Science, pages 99 114. Springer-Verlag, April 2005. [TN05] Éric Tanter and Jacques Noyé. A Versatile Kernel for Multi-Language AOP. In Robert Glück and Michael Lowry, editors, Generative Programming and Component Engineering (GPCE), 15

volume 3676 of Lecture Notes in Computer Science, pages 173 188, Tallinn, Estonia, September/October 2005. Springer-Verlag. [TNCC03] Éric Tanter, Jacques Noyé, Denis Caromel, and Pierre Cointe. Partial behavioral reflection : Spatial and temporal selection of reification. In Ron Crocker and Guy L. Steele, Jr., editors, Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA 2003), pages 27 46, Anaheim, California, USA, October 2003. ACM Press. 8.2 Prague [AP05] Jiri Adamek and Frantisek Plasil. Component Composition Errors and Update Atomicity : Static Analysis. Journal of Software Maintenance and Evolution : Research and Practice, 17(5) :363 377, DOI : 10.1002/smr.321, Online ISSN : 1532-0618, Print ISSN : 1532-060X, Sep 2005. [MPK05] Martin Mach, Frantisek Plasil, and Jan Kofron. Behavior Protocol Verification : Fighting State Explosion. International Journal of Computer and Information Science, 6(1) :22 30, ACIS, ISSN 1525-9293, Mar 2005. [PM03] Frantisek Plasil and Vladimir Mencl. Getting "Whole Picture" Behavior in a Use Case Model. Transactions of the SDPS : Journal of Integrated Design and Process Science, 7(4) :63 79, Dec 2003, ISSN-1092-0617, publisher : Society for Design and Process Science, Grandview, Texas, Dec 2003. [PV02] Frantisek Plasil and Stanislav Visnovsky. Behavior Protocols for Software Components. IEEE Transactions on Software Engineering, 28(11) :1056 1076, Nov 2002. [HP06] Petr Hnetynka and Frantisek Plasil. Dynamic Reconfiguration and Access to Services in Hierarchical Component Models. In Proceedings of CBSE 2006, Vasteras near Stockholm, Sweden, LNCS 4063, ISBN 3-540-35628-2, ISSN 0302-9743, pages 352 359, (C) Springer-Verlag, Jun 2006. [PH04] Frantisek Plasil and Viliam Holub. Exceptions in Component Interaction Protocols - a necessity. Architecting Systems with Trustworthy Components : International Seminar, LNCS Volume 3938, (C) Springer-Verlag, ISBN 3-540-35800-5, DOI 10.1007/11786160, Dec 2004. [PP06a] Pavel Parizek and Frantisek Plasil. Modeling Environment for Component Model Checking from Hierarchical Architecture. In Proceedings of Formal Aspects of Component Software (FACS 06), Prague, Czech Republic, septembre 20-22, 2006, ENTCS, Sep 2006. [Ada06] Jiri Adamek. Addressing Unbounded Parallelism in Verification of Software Components. In Proceedings of the Seventh ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing (SNPD 2006), Las Vegas, Nevada, USA, published by IEEE Computer Society, Jun 2006. [PPK06] Pavel Parizek, Frantisek Plasil, and Jan Kofron. Model Checking of Software Components : Combining Java PathFinder and Behavior Protocol Model Checker. In Proceedings of 30th IEEE/NASA Software Engineering Workshop (SEW-30), Columbia, MD, USA, April 25-27, 2006, IEEE Computer Society Press, Apr 2006. [PP06b] Pavel Parizek and Frantisek Plasil. Specification and Generation of Environment for Model Checking of Software Components. In Proceedings of Formal Foundations of Embedded Soft- 16

ware and Component-Based Software Architectures (FESCA 2006), Vienna, Austria, mars 26, 2006, ENTCS, Mar 2006. [Pla05] Frantisek Plasil. Enhancing Component Specification by Behavior Description - the SOFA Experience. In Proceedings of the 4th International Symposium on Information and Communication Technologies (WISICT 2005), January 3rd-6th, 2005, Cape Town, South Africa, A volume in the ACM international conference proceedings series, published by Computer Science Press, Trinity College Dublin, Ireland, ISBN 0-9544145-6-X, pages 185 190, Jan 2005. [AP04a] Jiri Adamek and Frantisek Plasil. Partial Bindings of Components - any Harm? In Proceedings of APSEC 2004, IEEE Computer Society, ISBN 0-7695-2245-9, ISSN 1530-1362, pages 632 639, Nov 2004. [AP04b] Jiri Adamek and Frantisek Plasil. Erroneous Architecture is a Relative Concept. In Proceedings of Software Engineering and Applications (SEA) conference, Cambridge, MA, USA, published by ACTA Press, ISBN 0-88986-425-X, ISSN 1482-7905, pages 715 720, Nov 2004. [MPA05] Vladimir Mencl, Frantisek Plasil, and Jiri Adamek. Behavior Assembly and Composition of Use Cases - UML 2.0 Perspective. In Proceedings of the Software Engineering (SE) 2005 conference, Feb. 15-17, 2005, Innsbruck, Austria, ISBN 0-88986-466-7, ISSN 1027-2666, pages 193 201, ACTA Press, Feb 2005. 8.3 Cluj [BCC + 05] Thomas Baar, Dan Chiorean, Alexandre Correa, Martin Gogolla, Heinrich Hussmann, Octavian Patrascoiu, Peter Schmitt, and Jos Warmer. Tool Support for OCL and Related Formalisms - Needs and Trends. Springer LNCS 3844, 2005, pages 1-9. [CBC04] Dan Chiorean, Maria Bortes, and Dyan Corutiu. Object Constraint Language Environment, a Tool Supporting Teaching and learning UML, OCL, Metamodeling, Abstraction and Design by Contract. in Proceedings of Eight Workshop on Pedagogies and Tools for Teaching and Learning Object Oriented Concepts - online at : http://www.cs.umu.se/~jubo/meetings/ecoop2004. [CBC05a] Dan Chiorean, Maria Bortes, and Dyan Corutiu. Proposals for a Widespread Use of OCL. in Proceedings of the MoDELS 05 Conference Workshop on Tool Support for OCL and Related Formalisms - Needs and Trends, Montego Bay, Jamaica, October 4, 2005 - Technical Report LGL-REPORT-2005-001 online at : http://lgl.epfl.ch/members/baar/oclwsatmodels05/technicalreport.pdf. [CBC05b] Dan Chiorean, Maria Bortes, and Dyan Corutiu. Semantic Validation of XML Data, a Metamodeling Approach. in Proceedings of 3rd Nordic Workshop on UML and Software Modeling pages 86-107 - ISBN 951-44-6399-4, ISSN 1459-6903, 2005. [CC01] Dan Chiorean and Dragos Cojocari. Implementation of OCL Support in UML CASE Tools the ROCASE Experience; Objectives, Proposals, Perspectives. in Proceedings of the Conference Information Systems Modelling - ISM 01, ISBN 80-859588-51-8, pages 41-49. [CC02] Dan Chiorean and A. Carcu et al. A Framework for Checking UML models - The UBB OCL evaluator. in Springer LNCS 2584 - Object-Oriented Technology - ECOOP 2002 Workshops and Posters, pages 217-218. 17

[CB03] Dan Chiorean and Cristian Botiza et al. Ensuring UML models consistency using the OCL Environment - in the The OCL 2.0 - Industry standard or scientific playground? Workshop proceedings, online at : http://i11www.ira.uka.de/~baar/oclworkshopuml03/rechteseite.htm. [Chi01] Dan Chiorean. Using OCL Beyond Specification. in Lecture Notes in Informatics 7 - Practical UML-Based Rigorous Development Methods - Countering or Integrating the extremists - 3-88579-335-0, ISSN 1617-5468, pages 57-68. [Chi04a] Dan Chiorean et al. Ensuring UML model consistency using the OCL environment. Electronic Notes in Theoretical Computer Science - ENTCS/102, 2004, pages 99-110, urlhttp ://dx.doi.org/10.1016/j.entcs.2003.09.005. [Chi04b] Dan Chiorean et al. Good practices for creating correct, clear and efficient OCL specifications. in Proceedings of 2nd Nordic Workshop on the Unified Modeling Languages pages 127-142 - ISBN 952-12-1386-8, ISSN 1239-1905, 2004. [Chi02] Dan Chiorean et al. UML Model Checking. Studia Univ. Babes-Bolyai, Informatica, Volume XLVII, Number 1, 2002 - pages 71-88. [Chi04c] Dan Chiorean et al. UML/OCL tools - Objectives, Requirements, State of the Art - The OCLE Experience. in Proceedings of 11th Nordic Workshop on Programming and Software Development Tools and Techniques pages 163-180 - ISBN 952-12-1385-X, ISSN 1239-1905, 2004. [KMDR + 06] Mira Kajko-Mattsson, Arie van Deursen, Rupert Reiger, Gerardo Canfora, Tuomas Ihme, Torsten Engel, Dan Chiorean, Meir M. Lehman, and Josef Wernke. Model of Maintainability - Suggestion for Future Research. in Proceedings of the International Conference on Software Engineering Research and Practice - SERP 2006 - Las Vegas, Nevada, USA - CSREA Press 2006 pages 24-29. 18

9 Curriculum Vitae des Participants Les CV des participants sont présentés dans l ordre alphabétique et par laboratoire. 10 DSRG, Charles University A Curriculum Vitae : Jiri Adamek Research Scientist, Distributed Systems Research Group, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University, Prague, Czech Republic. Research Assistant, Institute of Computer Science, Academy of Sciences of the Czech Republic. Education 2006 Ph.D. in Computer Science, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University, Prague 2001 Mgr. (MS equivalent) in Computer Science, Charles University, Prague Projects SOFA SOFtware Appliances, http ://sofa.objectweb.org/, supported by the Grant Agency of the Czech Republic, hosteb by ObjecWEB OSMOSE Open Source Middleware for Open Systems in Europe, supported by European Commission, hosted by ObjectWEB Component Reliability Extension (CRE) to the Fractal Component Model, a joint project of France Telecom R&D and the Institute of Computer Science of the Academy of Sciences of the Czech Republic B Curriculum Vitae : Jan Kofron Full-time Ph.D. student, Faculty of Mathematics and Physics, Charles University, Prague. Education 2005 RNDr. in Software Systems, Faculty of Mathematics and Physics, Charles University, Prague 2003 Mgr. (MS equivalent) in Computer Science, Charles University, Prague Projects SOFA SOFtware Appliances, http ://sofa.objectweb.org/, supported by the Grant Agency of the Czech Republic, hosteb by ObjecWEB OSMOSE Open Source Middleware for Open Systems in Europe C Curriculum Vitae : Pavel Parizek Full-time Ph.D. student, Faculty of Mathematics and Physics, Charles University, Prague. Education 2005 Mgr. (MS equivalent) in Computer Science, Charles University, Prague 19

Projects ITEA/OSIRIS Open source platform and infrastructure for run-time integration of services, http ://www.itea-osiris.org Component Reliability Extension (CRE) to the Fractal Component Model, a joint project of France Telecom R&D and the Institute of Computer Science of the Academy of Sciences of the Czech Republic D Curriculum Vitae : Frantisek Plasil Full Professor, Chair, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University, Prague. Education 2000 Full Professor in Computer Science, Faculty of Mathematics and Physics, Charles University, Prague 1984 Associate Professor in Computer Science, Czech University of Technology, Prague 1978 Ph.D. in Computer Science, Czech University of Technology, Prague 1965 M.Sc. in Computer Science, Czech University of Technology, Prague 1960-65 Studies of Electrical Engineering at the Czech University of Technology, Prague, Czechoslovakia Employment 2002 (two semesters) Visiting Professor, University of New Hampshire, Department of Computer Science, Durham, NH, USA 1999-2000 (two semesters) Visiting Associate Professor, Wayne State University, Department of Computer Science, Detroit, USA Since 1995 Researcher, Czech Academy of Sciences, Institute of Computer Science, Prague, Czech Republic 1996-1999 (spring semester) Associate Professor, Masaryk University, Faculty of Informatics, Department of Computer Systems and Communications, Brno, Czech Republic 1992-94 (one semester/year) Visiting Professor. Forschungsinstitut fuer Mikroprocessortechnik, University of Linz, Austria 1990-91 Visiting Associate Professor. University of Denver, Dept. of Math. and Computer Sci., USA 1989-90 Visiting Assistant Professor. University of Denver, Dept. of Math. and Computer Sci., USA Projects SOFA 2.0 New version of the SOFA component model ITEA/OSIRIS Open source platform and infrastructure for run-time integration of services, http ://www.itea-osiris.org Behavior protocols in Fractal Extending the Fractal component model and its Julia implementation with support for behavior protocols Procasor Deriving behavior specifications from textual use cases Middleware Benchmarking Methodology for middleware benchmarking 20