Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
19727 thivolle 2011_archivage_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 Thivolle
tel-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. 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 c
tel-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. 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. 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
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. 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 e
tel-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