`                                       THESE                                       Pour obtenir le grade de              ...
R´sum´ :                                        e   e                                       Cette th`se se situe ` l’inter...
Rezumat:                                       Aceast˘ tez˘ de doctorat se situeaz˘ la intersectia a dou˘ domenii-cheie : ...
Abstract:                                       The work in this thesis is at the intersection of two major research domai...
tel-00685209, version 1 - 4 Apr 2012                                       Remerciements
Table des mati`res                                                     e                                       I    Pr´amb...
3.1    Paradigme synchrone . . . . . . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   ....
6.1    Les origines des services Web . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   ....
7.5.8 Traduction des sous-´l´ments dans le contenu d’une constante . . . . . . . . . . 141                                ...
10.1.14 Gestionnaires d’´v´nements . . . . . . . . . . . . . . . .                                                        ...
11.1 Choix du langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241                        ...
tel-00685209, version 1 - 4 Apr 2012                            e                                       Partie I          ...
tel-00685209, version 1 - 4 Apr 2012
Introduction                                       Cette th`se s’est effectu´e en co-tutelle entre l’Universit´ Joseph Four...
4                                       Ing´nierie dirig´e par les mod`les                                          e     ...
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
19727 thivolle 2011_archivage_1_
Prochain SlideShare
Chargement dans…5
×

19727 thivolle 2011_archivage_1_

1 009 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 009
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

19727 thivolle 2011_archivage_1_

  1. 1. ` THESE Pour obtenir le grade de ´ DOCTEUR DE L’UNIVERSITE DE GRENOBLE ´ ´ Specialite : Informatique ˆ ´ ´ ˆ ´ ´ ` Arretes ministeriels : Arrete ministeriel du 6 janvier 2005, relatif a la cotutelle internationale ` ´ ˆ ´ ´ de these, modifie par l’arrete ministeriel du 7 aout 2006 ˆ ´ Universite de cotutelle: ´ Universite Polytechnique de Bucarest ´ ´ Presentee par Damien Thivolletel-00685209, version 1 - 4 Apr 2012 ` ´ These dirigee par Hubert Garavel ´ et codirigee par Valentin Cristea ´ ´ preparee au sein Laboratoire d’Informatique de Grenoble et Laboratoire ´ d’Informatique de l’Universite Polytechnique de Bucarest ´ et de Ecole Doctorale Mathematiques, Sciences et Technologies de l’Information, Informatique Langages modernes pour la ´ ´ modelisation et la verification des ` systemes asynchrones ` These soutenue publiquement le , ´ devant le jury compose de : Monsieur, Dumitru Popescu ` ´ ´ Professeur a l’Universite Polytechnique de Bucarest, President Monsieur, Ioan Jurca ` ´ Professeur a l’Universite Polytechnique de Timisoara, Rapporteur ¸ Monsieur, Charles Pecheur ` ´ Professeur a l’Universite Catholique de Louvain, Rapporteur Madame, Mihaela Sighireanu ´ ` ´ Maˆtre de Conferences a l’Universite Paris Diderot, Examinatrice ı Monsieur, Hubert Garavel ` ` Directeur de Recherche a l’INRIA, Directeur de these Monsieur, Valentin Cristea ` ´ ` Professeur a l’Universite Polytechnique de Bucarest, Co-Directeur de these
  2. 2. R´sum´ : e e Cette th`se se situe ` l’intersection de deux domaines-cl´s : l’ing´nierie dirig´e par les mod`les e a e e e e (Idm) et les m´thodes formelles, avec diff´rents champs d’application. Elle porte sur la v´rification e e e formelle d’applications parall`les mod´lis´es selon l’approche Idm. Dans cette approche, les mod`les e e e e tiennent un rˆle central et permettent de d´velopper une application par transformations successives o e (automatis´es ou non) entre mod`les interm´diaires ` diff´rents niveaux d’abstraction, jusqu’` la e e e a e a production de code ex´cutable. Lorsque les mod`les ont une s´mantique formelle, il est possible e e e d’effectuer une v´rification automatis´e ou semi-automatis´e de l’application. Ces principes sont mis e e e en œuvre dans Topcased, un environnement de d´veloppement d’applications critiques embarqu´es e e bas´ sur Eclipse, qui permet la v´rification formelle par connexion ` des boˆ ` outils existantes. e e a ıtes a Cette th`se met en œuvre l’approche Topcased en s’appuyant sur la boˆ ` outils Cadp pour e ıte a la v´rification et sur son plus r´cent formalisme d’entr´e : Lotos NT. Elle aborde la v´rification e e e e formelle d’applications Idm ` travers deux probl`mes concrets : a e 1) Pour les syst`mes Gals (Globalement Asynchrone, Localement Synchrone), une m´thode de e e v´rification g´n´rique par transformation en Lotos NT est propos´e, puis illustr´e sur une ´tude e e e e e e de cas industrielle fournie par Airbus : un protocole pour les communications entre un avion et le sol d´crit dans le langage synchrone Sam con¸u par Airbus. e ctel-00685209, version 1 - 4 Apr 2012 2) Pour les services Web d´crits ` l’aide de la norme Bpel (Business Process Execution Language), e a une m´thode de v´rification est propos´e, qui est bas´e sur une transformation en Lotos NT des e e e e mod`les Bpel, en prenant en compte les sous-langages Xml Schema, XPath et Wsdl sur lesquels e repose la norme Bpel. Mots-cl´s : Ing´nierie dirig´e par les mod`les, m´thodes formelles, v´rification, LOTOS NT, CADP, e e e e e e syst`mes critiques, syst`mes GALS, Services Web, BPEL e e
  3. 3. Rezumat: Aceast˘ tez˘ de doctorat se situeaz˘ la intersectia a dou˘ domenii-cheie : ingineria dirijat˘ de modele a a a ¸ a a (Idm) ¸i metodele formale, cu diverse cˆmpuri de aplicare. Subiectul tratat este verificarea formal˘ s a a a aplicatiilor paralele modelizate conform abord˘rii Idm. In aceast˘ abordare, modelele joac˘ un ¸ a a a rol central ¸i permit dezvoltarea unei aplicatii prin transform˘ri succesive (automatizate sau nu) s ¸ a ˆ ıntre modele intermediare cu diferite niveluri de abstractizare, pˆn˘ la producerea de cod executabil. a a Cˆnd modelele au o semantic˘ formal˘, este posibil˘ efectuarea unei verific˘ri automatizate sau semi- a a a a a automatizate a aplicatiei. Aceste principii sunt puse ˆ aplicare ˆ Topcased, un mediu de dezvoltare ¸ ın ın a aplicatiilor critice ˆ ¸ ımbarcate bazat pe Eclipse, care permite verificarea formal˘ prin conectarea c˘tre a a toolbox-uri existente. Aceast˘ tez˘ pune in aplicare abordarea Topcased bazˆndu-se pe toolbox-ul Cadp pentru verificare a a a ¸i pe formalismul lui cel mai recent acceptat ca intrare : Lotos NT. Verificarea formal˘ a aplicatiilor s a ¸ Idm este abordat˘ prin prisma a dou˘ probleme concrete : a a 1) Pentru sistemele Gals (Globally Asynchronous, Locally Synchronous), o metod˘ de verificare a generic˘ prin transformare c˘tre Lotos NT este propus˘, apoi ilustrat˘ cu ajutorul unui studiu de a a a a caz industrial furnizat de Airbus : un protocol pentru comunicatiile ˆ ¸ ıntre un avion ¸i sol, descris ˆ s ın limbajul sincron Sam conceput de Airbus.tel-00685209, version 1 - 4 Apr 2012 2) Pentru serviciile Web descrise cu ajutorul standardului Bpel (Business Process Execution Lan- guage), o metod˘ de verificare este propus˘, bazat˘ pe o transformare a modelelor Bpel ˆ a a a ın Lotos NT, ¸inˆnd seama de sublimbajele Xml Schema, XPath ¸i Wsdl— pe care se bazeaz˘ t a s a standardul Bpel. Cuvinte cheie : Ingineria dirijat˘ de modele, metodele formale, verificare, LOTOS NT, CADP, a sistemele critice, sistemele GALS, Serviciile Web, BPEL
  4. 4. Abstract: The work in this thesis is at the intersection of two major research domains : Model-Driven Engi- neering (Mde) and formal methods, and has various fields of application. This thesis deals with the formal verification of parallel applications modelled by the Mde approach. In this approach, models play a central role and enable to develop an application through successive transformations (auto- mated or not) between intermediate models of differing levels of abstraction, until executable code is produced. When models have a formal semantics, the application can be verified, either automati- cally or semi-automatically. These principles are used in Topcased, an Eclipse-based development environment for critical embedded applications, which enables formal verification by interconnecting existing tools. This thesis implements the Topcased approach by relying on the Cadp toolbox for verifying systems, and on its most recent input formalism : Lotos NT. This thesis tackles the formal verification of Mde applications through two real problems : 1) For Gals (Globally Asynchronous, Locally Synchronous), a generic verification method, based on a transformation to Lotos NT, is proposed and illustrated by an industrial case-study provided by Airbus : a communication protocol between the airplane and the ground described in the synchronous langage Sam designed at Airbus.tel-00685209, version 1 - 4 Apr 2012 2) For Web services specified with the Bpel (Business Process Execution Language) norm, a veri- fication method is proposed. It is based on a Bpel to Lotos NT transformation which takes into account Xml Schema, XPath, and Wsdl, the languages on which the Bpel norm is built. Keywords: Model-Driven Engineering, formal methods, verification, LOTOS NT, CADP, critical systems, GALS systems, Web services, BPEL
  5. 5. tel-00685209, version 1 - 4 Apr 2012 Remerciements
  6. 6. Table des mati`res e I Pr´ambule e 1 Notations 7 1 Ing´nierie dirig´e par les mod`les e e e 9 1.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Implantation dans Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.1 D´finition et manipulation de m´ta-mod`les . . e e e . . . . . . . . . . . . . . . . . . 12tel-00685209, version 1 - 4 Apr 2012 1.2.2 Editeurs de mod`les . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . 15 1.2.3 Transformation de mod`les vers mod`les . . . . e e . . . . . . . . . . . . . . . . . . 17 1.2.4 Transformations entre mod`les avec ATL . . . e . . . . . . . . . . . . . . . . . . 19 1.2.5 Transformations entre mod`les avec Kermeta . e . . . . . . . . . . . . . . . . . . 21 1.2.6 Transformations de mod`les avec Java . . . . . e . . . . . . . . . . . . . . . . . . 22 1.2.7 G´n´ration de code (transformation de mod`les e e e vers texte) . . . . . . . . . . . 22 1.3 Le projet Topcased . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2 M´thodes formelles e 27 2.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2 CADP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.1 Les syst`mes de transitions . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 28 2.2.2 Alg`bres de processus . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 28 2.2.3 Techniques de v´rification . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 29 2.2.4 Les outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3 Pr´sentation de LOTOS NT . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 30 2.4 Sous-ensemble de LOTOS NT utilis´ . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 30 2.4.1 Identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4.2 D´finitions de modules . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.3 D´finitions de types . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.4 D´finitions de fonctions . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 31 2.4.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4.6 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.7 D´finitions de canaux de communication e . . . . . . . . . . . . . . . . . . . . . . 35 2.4.8 D´finitions de processus . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . 35 2.4.9 Comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 II Mod´lisation et v´rification de syst`mes GALS e e e 39 3 Motivations 41 i
  7. 7. 3.1 Paradigme synchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Syst`mes r´actifs . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . . 41 3.1.2 Mod`le de calcul synchrone . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . 42 3.1.3 Langages de programmation synchrone . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.4 V´rification des programmes synchrones . . e . . . . . . . . . . . . . . . . . . . . 44 3.2 Syst`mes GALS . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . 45 3.3 Etat de l’art sur la v´rification de syst`mes GALS e e . . . . . . . . . . . . . . . . . . . . 45 3.4 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4 Approche propos´e e 49 4.1 Description g´n´rale de l’approche . . . . . . e e . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Encodage des programmes synchrones . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3 Encapsulation dans un processus asynchrone . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Communication avec l’environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5 Le langage SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.5.1 Pr´sentation . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . 53 4.5.2 S´mantique . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . 54 4.6 Traduction de SAM en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55tel-00685209, version 1 - 4 Apr 2012 5 Application ` une ´tude de cas industrielle a e 59 5.1 Description de l’´tude de cas . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 59 5.1.1 Protocole TFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1.2 Variante Airbus du protocole TFTP . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 Mod´lisation en LOTOS NT . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 61 5.2.1 Mod´lisation d’entit´s TFTP simplifi´es . . . . . . . . . e e e . . . . . . . . . . . . . 61 5.2.2 Mod´lisation d’entit´s TFTP r´alistes . . . . . . . . . . e e e . . . . . . . . . . . . . 62 5.2.3 Mod´lisation des liens de communication . . . . . . . . e . . . . . . . . . . . . . 63 5.2.4 Composition parall`le des liens de communication et des e entit´s e TFTP . . . . . 65 5.3 Description formelle des propri´t´s de bon fonctionnement . . . ee . . . . . . . . . . . . . 65 5.3.1 Logique temporelle RAFMC de CADP . . . . . . . . . . . . . . . . . . . . . . . 66 5.3.2 Logique temporelle MCL de CADP . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.3.3 Propri´t´s exprim´es en RAFMC . . . . . . . . . . . . . ee e . . . . . . . . . . . . . 68 5.3.4 Propri´t´s exprim´es en MCL . . . . . . . . . . . . . . . ee e . . . . . . . . . . . . . 71 5.3.5 Classification des propri´t´s . . . . . . . . . . . . . . . . ee . . . . . . . . . . . . . 78 5.4 V´rification fonctionnelle des mod`les . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 78 5.4.1 G´n´ration de l’espace d’´tats . . . . . . . . . . . . . . . e e e . . . . . . . . . . . . . 78 5.4.2 G´n´ration directe . . . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 79 5.4.3 G´n´ration compositionnelle – niveau 1 . . . . . . . . . e e . . . . . . . . . . . . . 80 5.4.4 G´n´ration compositionnelle – niveau 2 . . . . . . . . . e e . . . . . . . . . . . . . 82 5.4.5 G´n´ration compositionnelle – niveau 3 . . . . . . . . . e e . . . . . . . . . . . . . 83 5.4.6 V´rification ` la vol´e . . . . . . . . . . . . . . . . . . . e a e . . . . . . . . . . . . . 85 5.4.7 R´sultats de v´rification . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 86 5.5 Evaluation des performances par simulation . . . . . . . . . . . . . . . . . . . . . . . . 87 5.5.1 M´thodologie de simulation avec CADP . . . . . . . . . e . . . . . . . . . . . . . 87 5.5.2 R´sultats de simulation . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 89 III Mod´lisation et v´rification de services Web e e 91 6 Les services Web 93 ii
  8. 8. 6.1 Les origines des services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.2 Les solutions W3C : l’approche par les services Web . . . . . . . . . . . . . . . . . . . 94 6.3 Les langages de description de services Web . . . . . . . . . . . . . . . . . . . . . . . . 95 6.4 V´rification des services Web . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . 96 6.5 V´rification des donn´es uniquement . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . 97 6.6 V´rification du comportement uniquement . . . . . . . . . . . e . . . . . . . . . . . . . . 97 6.7 V´rification du comportement en tenant compte des donn´es e e . . . . . . . . . . . . . . 99 6.8 Comparaison des approches de v´rification des services Web . e . . . . . . . . . . . . . . 100 6.9 Consid´rations pragmatiques . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . 101 6.10 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7 Traduction des types XML Schema 105 7.1 Les termes de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.2 Pr´sentation de XML Schema . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 107 7.2.1 Types sp´ciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 107 7.2.2 Types pr´d´finis . . . . . . . . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 107 7.2.3 Types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.2.4 Types complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.2.5 Types complexes ` contenu simple . . . . . . . . . . . . . . . . a . . . . . . . . . 111tel-00685209, version 1 - 4 Apr 2012 7.2.6 Types complexes ` contenu complexe . . . . . . . . . . . . . . . a . . . . . . . . . 111 7.2.7 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.2.8 El´ments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 113 7.2.9 Exemple d’utilisation de XML Schema . . . . . . . . . . . . . . . . . . . . . . . 114 7.3 Grammaire abstraite pour XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.4.1 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.4.2 Principe g´n´ral de traduction . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 116 7.4.3 Domaines et types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.4.4 Les conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.4.5 Les it´rateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 121 7.4.6 Traduction des types pr´d´finis . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 121 7.4.7 Conversion des types pr´d´finis . . . . . . . . . . . . . . . . . . e e . . . . . . . . . 122 7.4.8 It´rateurs pour les types pr´d´finis . . . . . . . . . . . . . . . . e e e . . . . . . . . . 123 7.4.9 Traduction des types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.4.10 Conversion des types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.4.11 It´rateurs pour les types simples . . . . . . . . . . . . . . . . . e . . . . . . . . . 126 7.4.12 Traduction des attributs des types complexes . . . . . . . . . . . . . . . . . . . 128 7.4.13 Traduction des ´l´ments racine . . . . . . . . . . . . . . . . . . ee . . . . . . . . . 129 7.4.14 Conversion des ´l´ments racine . . . . . . . . . . . . . . . . . . ee . . . . . . . . . 130 7.4.15 It´rateurs pour les ´l´ments racine . . . . . . . . . . . . . . . . e ee . . . . . . . . . 130 7.4.16 Traduction des ´l´ments des types complexes . . . . . . . . . . ee . . . . . . . . . 130 7.4.17 Traduction des types complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.5 Traduction des constantes BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.5.1 Grammaire des constantes BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.5.2 Principe g´n´ral de traduction des constantes . . . . . . . . . . e e . . . . . . . . . 135 7.5.3 Traduction des constantes de type simple . . . . . . . . . . . . . . . . . . . . . 136 7.5.4 Traduction des constantes de type ´l´ment racine . . . . . . . . ee . . . . . . . . . 136 7.5.5 Traduction d’un attribut dans le contenu d’une constante . . . . . . . . . . . . 137 7.5.6 Traduction des attributs dans le contenu d’une constante . . . . . . . . . . . . 138 7.5.7 Traduction d’un sous-´l´ment dans le contenu d’une constante ee . . . . . . . . . 139 iii
  9. 9. 7.5.8 Traduction des sous-´l´ments dans le contenu d’une constante . . . . . . . . . . 141 ee 7.5.9 Traduction du contenu simple d’une constante . . . . . . . . . . . . . . . . . . 144 7.5.10 Traduction du contenu complexe d’une constante . . . . . . . . . . . . . . . . . 145 8 Traduction des expressions XPath 147 8.1 Mod`le de donn´es . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 147 8.2 Partitionnement d’un arbre Xml autour d’un nœud . . . . . . . . . . . . . . . . . . . 149 8.3 Syntaxe normalis´e . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . 151 8.4 S´mantique statique normalis´e . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 153 8.5 S´mantique dynamique normalis´e . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 154 8.5.1 Contexte d’´valuation . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . 154 8.5.2 S´mantique d´notationnelle . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 155 8.6 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 8.6.1 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 8.6.2 Sous-ensemble utile de XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.6.3 S´mantique statique simplifi´e . . . . . . . . e e . . . . . . . . . . . . . . . . . . . 160 8.6.4 S´mantique op´rationnelle simplifi´e . . . . . e e e . . . . . . . . . . . . . . . . . . . 169 9 Traduction des interfaces WSDL 173tel-00685209, version 1 - 4 Apr 2012 9.1 Pr´sentation du langage WSDL . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 173 9.1.1 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.1.2 Fonctions distantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.1.3 Fonctionnalit´ d’un service . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 175 9.1.4 Types de liens de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.1.5 Grammaire Wsdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.3 Etat de l’art des traductions d’interfaces WSDL . . . . . . . . . . . . . . . . . . . . . . 176 9.4 D´finition de la traduction . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 176 9.5 Traduction d’une interface WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.6 Traduction des messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.7 Traduction des fonctionnalit´s de services . . . . . . . . e . . . . . . . . . . . . . . . . . 178 9.7.1 Traduction des fonctionnalit´s de service . . . . . e . . . . . . . . . . . . . . . . . 179 9.7.2 Traduction des types de liens de communication . . . . . . . . . . . . . . . . . 179 9.7.3 Traduction des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 10 Traduction des services BPEL 181 10.1 Pr´sentation du langage BPEL . . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 181 10.1.1 Mod`le de communication . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 181 10.1.2 Vue d’ensemble d’un service Web BPEL . . . . . . . . . . . . . . . . . . . . . . 182 10.1.3 Relations entre activit´s, services et sous-services e . . . . . . . . . . . . . . . . . 184 10.1.4 Abr´viations syntaxiques . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 184 10.1.5 Syntaxe concr`te d’un service BPEL . . . . . . . e . . . . . . . . . . . . . . . . . 185 10.1.6 Attribut sp´cial “suppressJoinFailure . . . . . . . e . . . . . . . . . . . . . . . . . 186 10.1.7 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 10.1.8 Inclusion de fichiers XML Schema et WSDL . . . . . . . . . . . . . . . . . . . . 187 10.1.9 Extensions du langage Bpel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.1.10 Liens de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 10.1.11 M´canisme d’´changes de messages . . . . . . . . e e . . . . . . . . . . . . . . . . . 188 10.1.12 M´canisme de corr´lation . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . 189 10.1.13 Gestionnaires d’exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 iv
  10. 10. 10.1.14 Gestionnaires d’´v´nements . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 191 10.1.15 Activit´s . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 192 10.1.16 Activit´ “empty” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 192 10.1.17 Activit´ “exit” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.18 Activit´ “wait” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.19 Activit´ “receive” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 193 10.1.20 Activit´ “reply” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 194 10.1.21 Activit´ “invoke” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 194 10.1.22 Activit´ “throw” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.23 Activit´ “rethrow” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.24 Activit´ “assign” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 195 10.1.25 Activit´ “validate” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.26 Activit´ “sequence” . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.27 Activit´ “if” . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 197 10.1.28 Activit´ “while” . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.29 Activit´ “repeatUntil” . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.30 Activit´ “forEach” . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 198 10.1.31 Activit´ “pick” . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 199tel-00685209, version 1 - 4 Apr 2012 10.1.32 Activit´ “flow” et liens de contrˆle . . . . . . . . . . . . e o . . . . . . . . . . . . . 200 10.1.33 Activit´ “extensionActivity” . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 202 10.1.34 Activit´ “scope” et notion de sous-service . . . . . . . . e . . . . . . . . . . . . . 203 10.1.35 Gestionnaires de compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 10.2 Traduction en LOTOS NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.2.1 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.2.2 Syntaxe abstraite du sous-ensemble de BPEL consid´r´ e e . . . . . . . . . . . . . 208 10.2.3 Traduction des d´clarations de services . . . . . . . . . . e . . . . . . . . . . . . . 208 10.2.4 Pr´servation de l’atomicit´ des activit´s atomiques . . . e e e . . . . . . . . . . . . . 210 10.2.5 Gestion des variables partag´es . . . . . . . . . . . . . . e . . . . . . . . . . . . . 211 10.2.6 Gestion des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 10.2.7 Gestion des ´v´nements . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . 216 10.2.8 Traduction de l’activit´ “empty” . . . . . . . . . . . . . e . . . . . . . . . . . . . 218 10.2.9 Traduction de l’activit´ “exit” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 219 10.2.10 Traduction de l’activit´ “wait” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 219 10.2.11 Traduction de l’activit´ “receive” . . . . . . . . . . . . . e . . . . . . . . . . . . . 220 10.2.12 Traduction de l’activit´ “reply” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 220 10.2.13 Traduction de l’activit´ “invoke” . . . . . . . . . . . . . e . . . . . . . . . . . . . 221 10.2.14 Traduction de l’activit´ “assign” . . . . . . . . . . . . . e . . . . . . . . . . . . . 223 10.2.15 Traduction de l’activit´ “throw” . . . . . . . . . . . . . e . . . . . . . . . . . . . 224 10.2.16 Traduction de l’activit´ “rethrow” . . . . . . . . . . . . e . . . . . . . . . . . . . 225 10.2.17 Traduction de l’activit´ “validate” . . . . . . . . . . . . e . . . . . . . . . . . . . 225 10.2.18 Traduction de l’activit´ “sequence” . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.19 Traduction de l’activit´ “if” . . . . . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.20 Traduction de l’activit´ “while” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 226 10.2.21 Traduction de l’activit´ “repeatUntil” . . . . . . . . . . e . . . . . . . . . . . . . 227 10.2.22 Traduction de l’activit´ “forEach” . . . . . . . . . . . . e . . . . . . . . . . . . . 228 10.2.23 Traduction de l’activit´ “pick” . . . . . . . . . . . . . . e . . . . . . . . . . . . . 229 10.2.24 Traduction de l’activit´ “flow” et des liens de contrˆle . e o . . . . . . . . . . . . . 230 10.2.25 Traduction des activit´s au sein de l’activit´ “flow” . . . e e . . . . . . . . . . . . . 235 11 Conception d’un traducteur automatique 241 v
  11. 11. 11.1 Choix du langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11.2 R´alisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 e 11.3 Espaces de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 IV Conclusion 245 Bibliographie 253tel-00685209, version 1 - 4 Apr 2012 vi
  12. 12. tel-00685209, version 1 - 4 Apr 2012 e Partie I Pr´ambule
  13. 13. tel-00685209, version 1 - 4 Apr 2012
  14. 14. Introduction Cette th`se s’est effectu´e en co-tutelle entre l’Universit´ Joseph Fourier de Grenoble, France et e e e l’Universit´ Polytechnique de Bucarest, Roumanie. Les travaux de recherche ont ´t´ effectu´s au e ee e centre Inria de Grenoble Rhˆne-Alpes, sous la direction de Hubert Garavel, et au Laboratoire o d’Informatique de la Facult´ d’Automatique et d’Ordinateurs de l’Universit´ Polytechnique de Bu- e e carest, sous la direction de Valentin Cristea.tel-00685209, version 1 - 4 Apr 2012 V´rification des syst`mes asynchrones e e Un syst`me asynchrone est constitu´ d’un ensemble de composants qui ´voluent ind´pendamment e e e e et qui communiquent ponctuellement pour se synchroniser et ´ventuellement ´changer des donn´es. e e e Les syst`mes asynchrones se distinguent donc des syst`mes synchrones dans lesquels les composants e e ´voluent ` l’unisson selon une horloge commune. En effet, mˆme s’il a ´t´ d´montr´ que le paradigme e a e ee e e de programmation asynchrone et le paradigme de programmation synchrone sont ´quivalents [Mil83], e les langages asynchrones et synchrones sont adapt´s ` la description de classes de syst`mes diff´rentes. e a e e De nos jours, les syst`mes asynchrones sont omnipr´sents (protocoles de communication, processeurs e e multi-cœurs...) et tendent ` s’imposer dans des domaines autrefois exclusivement constitu´s de a e syst`mes synchrones, tels que les contrˆleurs critiques embarqu´s (dans les avions, voitures, trains...) e o e ou les circuits int´gr´s (g´n´ralisation des syst`mes sur puce). e e e e e La validation du bon comportement de tels syst`mes est un domaine de recherche important qui e englobe diverses techniques telles que le test classique, le test unitaire, la simulation, l’analyse de code et la v´rification formelle. La v´rification formelle consiste ` analyser un mod`le du syst`me pour e e a e e v´rifier qu’il remplit des crit`res d’exigences d´finis sous la forme de propri´t´s de bon fonctionnement e e e ee (le plus souvent exprim´es par des formules de logique temporelle), on parle alors de v´rification e e exhaustive ou model checking [CES83], ou bien sous la forme d’un second mod`le du syst`me, on e e parle alors de v´rification par ´quivalence ou equivalence checking [NH84]. e e La v´rification formelle est tr`s efficace1 , mais tr`s complexe ` mettre en oœuvre. En effet, cette e e e a technique n´cessite d’avoir ` disposition des outils performants mais aussi de connaˆ parfaitement e a ıtre les langages d’entr´e de ces outils : les alg`bres de processus pour la mod´lisation des syst`mes ainsi e e e e que les logiques temporelles pour la sp´cification des propri´t´s de bon fonctionnement. Dans cette e ee th`se, nous consid´rons les cas de la boˆ ` outils de v´rification formelle Cadp [GLMS11], et de son e e ıte a e plus r´cent langage d’entr´e : l’alg`bre de processus Lotos NT [Sig00, CCG+ 10]. e e e 1 http://ercim-news.ercim.eu/model-checking-of-safety-critical-software-for-avionics
  15. 15. 4 Ing´nierie dirig´e par les mod`les e e e Ces derni`res ann´es ont vu l’apparition d’une nouvelle approche de d´veloppement logiciel appel´ e e e e l’ing´nierie dirig´e par les mod`les [Ken02] (Mde ou Model-Driven Engineering en anglais). Dans e e e ce paradigme, les mod`les d’une application ont un rˆle fondamental. Chaque mod`le repr´sente e o e e l’application ` un niveau d’abstraction particulier. La r´alisation de l’application s’effectue par trans- a e formations successives, manuelles, automatis´es ou semi-automatis´es, des mod`les jusqu’` l’obtention e e e a d’un mod`le final. e Grˆce ` des outils appropri´s, l’approche Idm facilite la cr´ation d’´diteurs, de transformateurs et de a a e e e g´n´rateurs de code pour les mod`les. La v´rification formelle s’inscrit ais´ment dans l’approche Idm. e e e e e En effet, en consid´rant comme mod`le final d’une chaˆ de transformations, un mod`le d´crit dans e e ıne e e une alg`bre de processus, il devient possible de combiner l’approche Idm et la v´rification formelle. e e En appliquant ce principe, l’environnement Topcased2 , cr´´ par extension de l’environnement de ee d´veloppement int´gr´ (Ide ou Integrated Developement Environment en anglais) Eclipse, vise ` con- e e e a necter des langages de mod´lisation d’applications critiques (de l’industrie a´ronautique notamment) e e ` des outils de v´rification formelle tels que Cadp3 . a etel-00685209, version 1 - 4 Apr 2012 Langages d´di´s e e Dsl [VDKV00] (Domain-Specific Language) est un terme g´n´rique d´signant les langages de pro- e e e grammation ou de mod´lisation d´di´s ` un domaine particulier, par opposition aux langages de e e e a programmation (C, Java) ou de mod´lisation (Uml [OMG97]) classiques qui ont une vocation plus e g´n´rale. Un Dsl exhibe usuellement un nombre restreint de constructions de fa¸on ` pouvoir d´crire e e c a e aussi succintement que possible les applications relevant du domaine qu’il couvre. Les mod`les e d’applications ´crits dans les langages d´di´s sont donc souvent simples et se prˆtent bien ` l’approche e e e e a Idm. Les exemples de langages d´di´s incluent : Sql [Cod70] pour interroger des syst`mes de gestion e e e de bases de donn´es, Yacc [Joh75] pour d´crire des analyseurs syntaxiques ou encore les langages de e e shell script des syst`mes Unix tels que sh et csh. e Dans cette th`se, nous consid´rons les cas particuliers de deux Dsls : Sam [CGT08], dans le cadre e e des travaux effectu´s ` l’Inria et Bpel [Com01], dans le cadre des travaux effectu´s ` l’Universit´ e a e a e Polytechnique de Bucarest. Sam est un langage de programmation synchrone d´fini par Airbus pour e sp´cifier des syst`mes de contrˆle pour les avions tandis que Bpel est une norme du consortium Oasis4 e e o pour la d´finition de services Web. Ces deux langages, bien que s´mantiquement tr`s diff´rents, e e e e poss`dent de nombreux points communs : e • Ce sont des langages d´di´s pour lesquels Eclipse poss`de des environnements de travail. e e e • Ils peuvent servir ` la d´finition d’applications critiques : des contrˆleurs avioniques pour Sam a e o et des applications de commerce ´lectronique pour Bpel. e • Ils peuvent d´finir des syst`mes concurrents. e e • Ils sont utilis´s industriellement. e • Il existe un besoin de v´rification formelle pour les applications d´crites dans ces langages. e e 2 http://www.topcased.org 3 http://vasy.inria.fr/cadp 4 http://www.oasis-open.org

×