• Aucun résultat trouvé

Contributions à la conception rigoureuse des systèmes à base de composants exploitant des modèles SysML et des approches formelles

N/A
N/A
Protected

Academic year: 2021

Partager "Contributions à la conception rigoureuse des systèmes à base de composants exploitant des modèles SysML et des approches formelles"

Copied!
151
0
0

Texte intégral

(1)

HAL Id: tel-03126592

https://hal.archives-ouvertes.fr/tel-03126592

Submitted on 31 Jan 2021

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

des approches formelles

Samir Chouali

To cite this version:

Samir Chouali. Contributions à la conception rigoureuse des systèmes à base de composants exploitant des modèles SysML et des approches formelles. Génie logiciel [cs.SE]. Université Bourgogne Franche-Comté, 2020. �tel-03126592�

(2)

Contributions `a la conception

rigoureuse des syst `emes `a base de

composants exploitant des mod `eles

SysML et des approches formelles

(3)
(4)

H

ABILITATION A DIRIGER DES RECHERCHES

`

de l’Universit ´e de Franche-Comt ´e

pr ´epar ´ee au sein de l’Universit ´e Bourgogne Franche-Comt ´e Sp ´ecialit ´e :Informatique

pr ´esent ´ee par

S

AMIR

C

HOUALI

Contributions `a la conception rigoureuse des

syst `emes `a base de composants exploitant des

mod `eles SysML et des approches formelles

Soutenue publiquement le 10 juillet 2020 devant le Jury compos ´e de :

YAMINEAIT-AMEUR Rapporteur Professeur `a l’INPT-ENSEEIHT de Toulouse

CHRISTIANATTIOGBE´ Rapporteur Professeur `a l’Universit ´e de Nantes

GWEN SALAUN¨ Rapporteur Professeur `a l’Universit ´e Grenoble Alpes

PIERRE-CYRILLE HEAM Examinateur Professeur `a l’Universit ´e de Bourgougne

Franche-Comt ´e

OLGAKOUCHNARENKO Examinatrice Professeur `a l’Universit ´e de Bourgogne Franche-Comt ´e

HASSAN MOUNTASSIR Examinateur Professeur `a l’Universit ´e de Bourgogne

(5)
(6)

R

EMERCIEMENTS

Tout d’abord, je remercie chaleureusement les trois rapporteurs de cette HDR, les profes-seurs Yamine AIT-AMEUR, Christian ATTIOGBE´ et Gwen SALAUN¨ , pour le temps consacr ´e

`a la relecture et `a l’ ´evaluation de ce manuscrit.

Je tiens ´egalement `a remercier tous mes coll `egues du DISC qui m’ont soutenu et encou-rag ´e dans mes activit ´es scientifiques. Je remercie particuli `erement Hassan Moutassir qui m’a donn ´e l’opportunit ´e pour co-encadrer avec lui des travaux de th `ese. Mes remercie-ments vont ´egalement `a Pierre-Cyrille H ´eam qui m’a accompagn ´e et soutenu pour la pr ´eparation de cette habilitation. Je tiens `a remercier Olga Kouchnarenko qui m’a en-courag ´e, ces derni `eres ann ´ees, pour soutenir l’HDR. Aussi, je remercie les coll `egues avec qui j’ai eu des collaborations enrichissantes sur des th ´ematiques vari ´ees : Ahmed hammad (d ´eveloppement de syst `emes complexes en exploitant des mod `eles SysML) et Ahmed Mostefaoui (validation des protocoles d’interaction dans les v ´ehicules connect ´es). Merci `a Julien Bourgeois, directeur du DISC, qui m’a soutenu et encourag ´e, ces derni `eres ann ´ees, pour effectuer des s ´ejours scientifiques `a l’ ´etranger et initier des collaborations. Je voudrais aussi remercier les doctorants que j’ai co-encadr ´es, qui ont eu une place centrale dans ce travail.

Je remercie enfin ma famille pour son soutien permanent et pour avoir accept ´e, ces derniers mois, le partage du temps familial avec mes activit ´es professionnelles.

(7)
(8)

T

ABLE DES MATI

ERES

`

Table des mati `eres vii

I Introduction 1

1 Introduction 3

1.1 Contexte scientifique : d ´eveloppement des syst `emes `a base de

compo-sants critiques . . . 3

1.2 Probl ´ematiques scientifiques . . . 4

1.3 Contributions . . . 8

1.4 Mes publications . . . 11

II Conception incr ´ementale des syst `emes `a base de composants guid ´ee par SysML 13 2 M ´ethodologie pour l’assemblage de composants guid ´ee par SysML 15 2.1 Introduction . . . 15

2.2 Etat de l’art et contributions . . . 16´

2.3 Formalisme des automates d’interface . . . 17

2.3.1 L’approche optimiste pour la v ´erification de la compatibilit ´e . . . 17

2.3.2 Composabilit ´e, compatibilit ´e et composition . . . 18

2.4 Sp ´ecification de l’architecture d’un SBC avec SysML . . . 19

2.5 D ´erivation automatique des automates d’interface `a partir de SysML . . . . 21

2.6 V ´erification de l’assemblage dans un SBC mod ´elis ´e avec SysML . . . 23

2.6.1 Mod `eles formels des diagrammes SysML sp ´ecifiant l’architecture d’un SBC . . . 24

2.6.2 Algorithme de v ´erification . . . 25

2.7 Conception incr ´ementale d’un SBC par des raffinements successifs . . . . 27

2.8 Conclusion . . . 30

2.9 Bilan . . . 30

(9)

3 Adaptation des composants SysML lors du d ´eveloppement d’un SBC 31

3.1 Introduction . . . 31

3.2 Aperc¸u de l’approche . . . 31

3.3 Etat de l’art et contributions . . . 33´

3.4 L’approche d’adaptation des blocs SysML . . . 34

3.4.1 Sp ´ecification SysML de la partie `a d ´evelopper . . . 34

3.4.2 S ´election des blocs r ´eutilisables{Bi} . . . 35

3.4.3 V ´erification de la validit ´e du contrat d’adaptation . . . 37

3.4.4 G ´en ´eration de l’adaptateur . . . 38

3.5 Conclusion et perspectives . . . 42

3.6 Bilan . . . 44

4 Sp ´ecification incr ´ementale d’un SBC en exploitant les exigences 45 4.1 Introduction . . . 45

4.2 Aperc¸u de l’approche . . . 46

4.3 Etat de l’art et contributions . . . 47´

4.4 Etude de cas . . . 49´

4.5 Analyse du diagramme des exigences SysML . . . 50

4.6 V ´erification formelle des exigences SysML sur des composants . . . 51

4.6.1 V ´erification avec SPIN . . . 52

4.6.2 Sp ´ecification des exigences avec la LTL . . . 52

4.7 Assemblage des composants et pr ´eservation des exigences SysML . . . . 54

4.7.1 Les exigences fonctionnelles et les actions d’entr ´ee/sortie . . . 54

4.7.2 Pr ´eservation des actions d’entr ´ee/sortie par la composition des au-tomates d’interface . . . 55

4.7.3 V ´erification de la pr ´eservation des exigences atomiques . . . 55

4.8 Sp ´ecification de l’architecture du syst `eme . . . 56

4.9 Illustration sur l’ ´etude de cas . . . 57

4.10 Conclusion et perspectives . . . 59

4.11 Bilan . . . 59

III Assemblage des composants bas ´e sur leurs contrats comportemen-taux 61 5 Conception `a base de composants orient ´es objet 63 5.1 Introduction . . . 63

(10)

TABLE DES MATI `ERES ix

5.2 Etat de l’art et contributions . . . 64´

5.3 Contrats comportementaux . . . 65

5.3.1 Formalisation des protocoles des composants orient ´es objet . . . . 65

5.3.2 S ´emantique des m ´ethodes . . . 67

5.4 Etude de cas d’un syst `eme ferroviaire . . . 68´

5.4.1 Conception de l’ ´etude de cas ferroviaire . . . 69

5.5 Compatibilit ´e des composants . . . 71

5.5.1 Synchronisation des automates d’interface et compatibilit ´e s ´emantique . . . 72

5.5.2 L’approche optimiste pour l’assemblage de composants . . . 73

5.6 Raffinement . . . 74

5.6.1 Simulation d’expansion . . . 75

5.6.2 Substituabilit ´e s ´emantique . . . 76

5.6.3 Propri ´et ´es du raffinement . . . 77

5.7 Adaptation des composants . . . 78

5.7.1 Aperc¸u de l’approche . . . 79

5.7.2 Etat de l’art et contributions . . . 80´

5.7.3 Contrat d’adaptation . . . 81

5.7.4 Adaptabilit ´e s ´emantique . . . 81

5.7.5 Sp ´ecification de l’adaptateur . . . 83

5.8 G ´en ´eration automatique de l’adaptateur . . . 84

5.9 Conclusion . . . 86

5.10 Bilan . . . 86

6 V ´erification de l’interop ´erabilit ´e des composants avec B 87 6.1 Introduction . . . 87

6.2 Etat de l’art et contributions . . . 88´

6.3 Sp ´ecification des interfaces de composants avec B . . . 90

6.3.1 D ´efinition . . . 90

6.3.2 Etude de cas . . . 90´

6.4 V ´erification de l’interop ´erabilit ´e avec le raffinement B . . . 94

6.4.1 D ´efinitions . . . 95

6.4.2 Etude de cas . . . 99´

6.5 Conclusion . . . 99

(11)

7 V ´erification des protocoles de coordination Reo avec SPIN 101

7.1 Introduction . . . 101

7.2 Etat de l’art et contributions . . . 102´

7.3 Reo . . . 103

7.3.1 Connecteurs synchrones et asynchrones . . . 103

7.3.2 Expression logique du comportement d’un connecteur Reo . . . 104

7.4 Formalisation des contraintes Reo sous forme de commandes gard ´ees . . 106

7.5 Formalisation des connecteurs Reo avec Promela . . . 108

7.5.1 Formalisation des Ports . . . 108

7.5.2 Formalisation du protocole d ´efini par un connecteur . . . 109

7.5.3 Formalisation des propri ´et ´es LTL . . . 110

7.6 Conclusion et perspectives . . . 111 7.7 Bilan . . . 111 IV Conclusion et Perspectives 113 8 Conclusion et perspectives 115 8.1 Conclusion . . . 115 8.2 Perspectives de recherche . . . 115

8.2.1 Conception des CPS, correct-par-construction, en exploitant les langages Sysml/Marte/pccsl et les contrats comportementaux des composants . . . 116

8.2.2 Assemblage et adaptation des composants interagissant d’une mani `ere asynchrone . . . 116

8.2.3 Analyse et v ´erification des protocoles de communication dans les v ´ehicules communicants . . . 117

Bibliographie 119

Table des figures 135

(12)

I

I

NTRODUCTION

(13)
(14)

1

I

NTRODUCTION

1.1/

C

ONTEXTE SCIENTIFIQUE

:

DEVELOPPEMENT DES SYST

´

EMES

`

`

A BASE DE COMPOSANTS CRITIQUES

Ce document pr ´esente mes travaux de recherche men ´es apr `es l’obtention de mon doc-torat. Ceux-ci concernent principalement l’utilisation des notations semi-formelles et des approches formelles pour la conception rigoureuse des syst `emes `a base de composants (SBC) critiques.

J’ai commenc ´e `a travailler sur la th ´ematique du d ´eveloppement des SBC lors de mon ann ´ee de post-doctorat au laboratoire LORIA ( ´equipe DEDALE), en 2004. Au cours de cette ann ´ee, je me suis int ´eress ´e `a l’utilisation de la m ´ethode B [Abr96b] pour la v ´erification de l’assemblage des composants. Apr `es mon recrutement `a l’universit ´e de Franche-Comt ´e en tant que maˆıtre de conf ´erences (en 2005), j’ai poursuivi mes travaux sur les SBC lors de ma participation au projet ANR TACOS (Trustworthy Assembling of Components : frOm requirements to Specifications ) (2007-2010). L’objectif de ce dernier ´etait de proposer une approche de conception par composants pour le d ´eveloppement de syst `emes fiables, de l’expression des besoins jusqu’ `a une sp ´ecification formelle. Le domaine d’application choisi ´etait celui d’un v ´ehicule en libre service, appel ´e CyCab, des-tin ´e a ˆetre utilis ´e dans les villes du futur pour le transport des personnes d’une mani `ere autonome. La nature complexe du CyCab (compos ´e de composants ´electroniques, m ´ecaniques, informatiques), nous a motiv ´e pour le consid ´erer comme ´etude cas pour illustrer notre de d ´emarche de conception `a base de composants.

En effet, la conception `a base de composants [HC01, Szy02] a montr ´e son efficacit ´e pour r ´epondre `a la complexit ´e croissante des syst `emes informatiques et pour s’adapter `a leur ´evolution rapide. Ainsi, en s’inspirant du concept des composants utilis ´es dans plusieurs domaines ( ´electronique, m ´ecanique,...), un logiciel peut aussi ˆetre construit par l’assemblage de briques logiciels r ´eutilisables appel ´ees composants logiciels. D’apr `es la d ´efinition de Clemens Szyperski [Szy02], un composant logiciel est une unit ´e de com-position avec des interfaces d ´efinies contractuellement et des d ´ependances au contexte explicites. Un composant est donc sp ´ecifi ´e par ses interfaces, qui exhibent g ´en ´eralement ses services fournis et requis. Elles servent, d’une part `a exprimer ce que l’on attend de l’environnement pour le bon fonctionnement d’un composant, et d’autre part `a d ´ecrire ce qui est offert par un composant. Elles d ´efinissent donc une sorte de contrat entre le composant et son environnement.

La d ´emarche `a base de composants vise donc `a concevoir et `a d ´evelopper des syst `emes

(15)

par l’assemblage de composants pr ´efabriqu ´es h ´et ´erog `enes (d ´evelopp ´es ´eventuellement par des tierces parties), en se basant uniquement sur leurs interfaces, au lieu de faire un d ´eveloppement `a partir de z ´ero. L’objectif est d’ ´etablir une sorte de march ´e commun de composants logiciels, appel ´es COTS (Commercial-Off-The-Shelf), permettant ainsi aux d ´eveloppeurs de trouver les composants `a int ´egrer dans leurs syst `emes. Cette d ´emarche offre principalement deux avantages :

— R ´eduire les co ˆuts de d ´eveloppement d’une application par la r ´eutilisation et l’assem-blage de composants pr ´efabriqu ´es. En effet, il suffit de r ´eutiliser des composants d ´evelopp ´es par des tiers pour construire de nouveaux syst `emes complexes. — Garantir une maintenabilit ´e `a long terme des logiciels, car une propri ´et ´e intrins `eque

aux SBC, c’est leur capacit ´e d’ ´evolution et d’adaptation aux nouveaux environne-ments. En effet, il suffit de connecter un nouveau composant `a un syst `eme existant pour lui rajouter une nouvelle fonctionnalit ´e ou un nouveau service. Et il suffit de changer un composant d ´efaillant pour assurer la maintenance du syst `eme existant. Par ailleurs, nous assistons ces derni `eres ann ´ees `a une demande de logiciels fiables, de plus en plus complexes et capables de supporter de nouvelles fonctionnalit ´es, pour une utilisation dans divers domaines : transport, militaire, m ´edical, domotique, business.... La solution pour concevoir ces syst `emes complexes reste la r ´eutilisation des compo-sants et l’exploitation de l’approche de conception par compocompo-sants. En effet, c’est une approche qui est applicable `a divers domaines : il existe de nombreux mod `eles de com-posants [CSVC11, LW07], ciblant des domaines d’applications vari ´es. De plus, c’est une approche qui a montr ´e son efficacit ´e au niveau industriel. Nous citons par exemple, le mod `ele `a composants Robus [HMN+08, MMTL+16], d ´evelopp ´e dans le cadre d’une col-laboration entre industriels (Arcticus Systems, Volvo Construction Equipment and BAE Systems H ¨agglunds) et l’universit ´e de M ¨alardalen (Su `ede), est utilis ´e avec succ `es dans l’industrie automobile pour le d ´eveloppement des logiciels embarqu ´es. N ´eanmoins, le mod `ele de composants id ´eal n’existe pas [LW07], et les techniques de conception `a base de composants continuent de soulever de nouvelles probl ´ematiques.

Dans la section suivante, nous pr ´esentons les principales probl ´ematiques que nous avons abord ´ees dans nos travaux. Elles sont li ´ees `a l’exploitation de SysML [sys] et les contrats des composants, bas ´es sur le formalisme des automates d’interface [dAH01, AH05], pour le conception rigoureuse des SBC. Les r ´eponses `a ces probl ´ematiques, sont pr ´esent ´ees dans la section contributions.

1.2/

P

ROBLEMATIQUES SCIENTIFIQUES

´

MODELISATION SEMI´ -FORMELLE DESSBC AVECSYSML

Certes, comme ´evoqu ´e ci-dessus, l’approche `a composants pr ´esente plusieurs avan-tages, n ´eanmoins concevoir un SBC r ´epondant aux exigences de l’utilisateur reste une t ˆache difficile. Cette difficult ´e est inh ´erente `a la nature complexe de ces syst `emes, constitu ´es d’un ensemble de composants r ´eutilisables, donc par d ´efinition, destin ´es `a ˆetre utilis ´es dans diff ´erentes applications, dont certaines peuvent encore ˆetre inconnues et dont les exigences ne peuvent pas ˆetre pr ´evues. Ainsi, pour comprendre ces syst `emes en vue de leur conception, il est n ´ecessaire d’utiliser un langage de mod ´elisation permet-tant d’avoir une vue g ´en ´erale du syst `eme, tout en d ´ecrivant les niveaux li ´es `a sa

(16)

struc-1.2. PROBL ´EMATIQUES SCIENTIFIQUES 5

ture, son comportement, et ses exigences. Pour cela, le langage SysML (Systems Mo-deling Language) [sys], qui est un profil UML [uml] pour l’ing ´enierie des syst `emes, nous semble le plus appropri ´e pour mod ´eliser les syst `emes complexes. En effet, en plus de la mod ´elisation structurelle et comportementale d’un syst `eme, SysML offre la possibilit ´e de d ´ecrire ses exigences, ainsi que ses composants physiques et logiciels.

Et comme les SBC, sont de plus en plus exploit ´es dans des domaines critiques, leur s ˆuret ´e de fonctionnement exige l’emploi de m ´ethodes formelles pour v ´erifier l’assem-blage de leurs composants lors de la conception. Dans ce contexte, l’utilisation de SysML comme langage de mod ´elisation, pose les probl ´ematiques suivantes :

(M1) Quels mod `eles SysML utiliser pour sp ´ecifier, sans ambigu¨ıt ´e, l’architec-ture, le comportement, et les exigences d’un SBC, et comment prendre en consid ´eration ces mod `eles lors du passage au niveau formel pour v ´erifier l’assemblage des composants ?

(M2) Comment garantir la satisfaction des exigences SysML lors de la conception d’un SBC ?

INTEROPERABILIT´ E DES COMPOSANTS ET LEURS INTERFACES´

Un SBC, comme tout syst `eme informatique, n’ ´echappe pas ´egalement aux probl `emes de dysfonctionnements. N ´eanmoins, dans le domaine des composants, ces dysfonc-tionnements sont principalement la cause des probl `emes d’interop ´erabilit ´e des compo-sants (appel ´ee aussi compatibilit ´e des compocompo-sants). L’interop ´erabilit ´e est d ´efinie par la capacit ´e de deux (ou plusieurs) composants `a communiquer et `a coop ´erer malgr ´e les diff ´erences dans leurs langages d’impl ´ementation, leurs environnements d’ex ´ecution, ou leurs mod `eles d’abstraction [Weg96, Kon95]. La v ´erification de l’interop ´erabilit ´e des com-posants est donc cruciale pour le d ´eveloppement des SBC, car cela permet aux concep-teurs de d ´eterminer si des composants peuvent interagir malgr ´e leur h ´et ´erog ´en ´eit ´e. Cette v ´erification repose sur la compatibilit ´e des interfaces des composants. Celles-ci sp ´ecifient g ´en ´eralement des informations aux niveaux signature (profil des op ´erations), s ´emantique (des op ´erations), protocole (ordre d’appel des op ´erations d’un composants), et qualit ´e de services (temps de r ´eponse, co ˆuts,...). Et g ´en ´eralement, plus les interfaces sont expres-sives, plus fiable est le r ´esultat de la v ´erification de l’interop ´erabilit ´e.

En plus de l’interop ´erabilit ´e, la substituabilit ´e des composants est ´egalement importante lors du d ´eveloppement des SBC. Sa v ´erification, en se basant sur une relation de raffi-nement entre les interfaces des composants, permet de d ´ecider si un composant peut ˆetre remplac ´e par un autre plus ´evolu ´e, sans corrompre le fonctionnement du syst `eme global. Cela permet aussi de construire des SBC, progressivement, par des raffinements successifs.

Dans la litt ´erature, plusieurs formalismes ont ´et ´e propos ´es pour sp ´ecifier les interfaces des composants. Par exemple dans [CFTV00], un formalisme bas ´e sur le π-calcul est utilis ´e pour enrichir les langages de description d’interfaces (IDL) classiques (limit ´es au niveau signature), avec la prise en compte des protocoles des composants. Par ailleurs, plusieurs travaux proposent de sp ´ecifier les interfaces des composants avec des automates, comme ceux propos ´es dans [dAH01, AH05] bas ´es sur le formalisme des automates d’interface, ainsi que ceux proposant les automates d’interface modales [RBB+09, LNW07]. Ces travaux se focalisent principalement sur la sp ´ecification des

(17)

pro-tocoles des composants et la v ´erification de la compatibilit ´e et du raffinement des inter-faces.

Le concept de contrat est ´egalement utilis ´e pour compl ´eter les sp ´ecifications de com-posants, pour y introduire principalement la s ´emantique des op ´erations. Il a ´et ´e introduit par B. Meyer dans [Mey92], pour d ´efinir la s ´emantique des m ´ethodes sous forme de pr ´e et post-conditions, et d’un invariant. Par exemple, la s ´emantique des m ´ethodes a ´et ´e prise en compte dans l’approche propos ´ee dans [CD01], bas ´ee sur UML et OCL, pour la mod ´elisation des composants. Dans le mod `ele `a composants Kmelia [AAA06, AAA08], la s ´emantique des services des composants est ´egalement prise en compte dans la sp ´ecification de leurs interfaces. Dans [BJPW99], une classification des contrats a ´et ´e propos ´ee : contrat syntaxique (donne la signature des op ´erations) ; contrat comporte-mental (sp ´ecifie les pr ´e- et post-conditions des op ´erations, ainsi qu’un invariant) ; contrat de synchronisation (l’ordre d’invocation des op ´erations) ; contrat de qualit ´e de service (permet de quantifier le service fourni).

Au d ´ebut de nos travaux, nous nous sommes int ´eress ´es `a l’utilisation de la m ´ethode B [Abr96a] pour v ´erifier l’interop ´erabilit ´e des composants. L’objectif ´etait d’exploiter les outils de cette m ´ethode pour v ´erifier formellement l’interop ´erabilit ´e des composants. D’o `u la probl ´ematique suivante :(I1) comment utiliser B pour sp ´ecifier les interfaces des composants et ensuite comment v ´erifier leur compatibilit ´e avec la m ´ethode B ? Ensuite, nous nous sommes focalis ´es sur l’utilisation du formalisme des automates d’in-terface [dAH01] pour sp ´ecifier les ind’in-terfaces des composants et v ´erifier leur assem-blage. Notre choix a ´et ´e motiv ´e par l’approche optimiste des automates d’interface pour v ´erifier l’assemblage des composants, particuli `erement adapt ´ee aux syst `emes ouverts (approche pr ´esent ´ee dans le chapitre 2 ). Un automate d’interface permet d’exhiber les informations des composants aux niveaux signature et protocole. Donc la probl ´ematique qui s’est pos ´ee par rapport `a notre choix de SysML comme langage de mod ´elisation est : (I2) comment prendre en consid ´eration les mod `eles SysML sp ´ecifiant un SBC, lors de la v ´erification de l’interop ´erabilit ´e de ses composants en se basant sur leurs automates d’interface ?

Par ailleurs, dans nos travaux, nous avons principalement trait ´e des ´etudes de cas de syst `emes `a composants dans le domaine des transports (v ´ehicules autonomes, trans-port ferroviaire,...). Et pour les interfaces des composants de ces syst `emes, nous avons besoin d’exhiber des informations aux niveaux signature, s ´emantique, et protocole. Or, le formalisme des automates d’interface ne prend pas en compte le niveau s ´emantique, donc son expressivit ´e est insuffisante pour v ´erifier correctement l’interop ´erabilit ´e des composants. D’o `u la probl ´ematique suivante : (I3) comment prendre en consid ´eration le niveau s ´emantique dans le formalisme des automates d’interface pour v ´erifier l’interop ´erabilit ´e et la substituabilit ´e des composants ?

ADAPTATION DES COMPOSANTS

L’assemblage de composants r ´eutilisables est souvent contraint par des probl `emes d’inad ´equations (mismatches) aux niveaux des noms (ou signatures) de leurs services ´echang ´es (par exemple, lors de l’association de noms diff ´erents au m ˆeme service fourni et requis dans deux composants devant interagir), ou de leurs protocoles d’interaction (par exemple, lorsque l’ordre des messages ´echang ´es entre les composants n’est pas ad ´equat). Ce qui provoque des blocages lors de leur assemblage. Ces

(18)

incompatibi-1.3. CONTRIBUTIONS 7

lit ´es r ´esultent g ´en ´eralement de la r ´eutilisation des composants, qu’il faut donc adapter `a chaque fois qu’il y a un besoin de les int ´egrer dans un nouveau syst `eme. Pour y rem ´edier, une solution existe, c’est l’introduction d’un composant interm ´ediaire, appel ´e adaptateur [YS97, CMP06, CPS06a], qui joue le r ˆole de m ´ediateur entre les composants r ´eutilis ´es. Ce faisant, toutes les interactions transitent par cet adaptateur, qui prend le r ˆole d’or-chestrateur en r ´esolvant les inad ´equations, et permet ainsi aux composants concern ´es d’interagir correctement. Dans notre contexte, les probl ´ematiques qui se sont pos ´ees sont les suivantes :

(A1) Comment g ´en ´erer automatiquement un adaptateur en partant des mod `eles SysML d’un SBC pr ´esentant des inad ´equations entre ses composants ? (A2) Et concernant le formalisme des automates d’interface, une autre probl ´ematique

s’est pos ´ee : comment g ´en ´erer automatiquement un adaptateur pour des composants sp ´ecifi ´es par des contrats comportementaux, bas ´es sur le for-malisme des automates d’interface, en consid ´erant les niveaux signature, s ´emantique, et protocole des composants ? En effet, dans l’approche des au-tomates d’interface, l’adaptation des composants n’est pas trait ´ee, ce qui justifie cette probl ´ematique.

COORDINATION

L’une des solutions contribuant `a r ´esoudre les probl `emes d’assemblage des composants dans les syst `emes concurrents et distribu ´es, est l’exploitation des mod `eles et des lan-gages de coordinations [PA98, BCGZ01]. Ces derniers offrent principalement des pri-mitives pour sp ´ecifier les interactions synchronis ´ees entre les composants. Ainsi, ´etant donn ´e un ensemble d’entit ´es en interaction, le mod `ele de coordination a pour but de les faire interagir correctement. Donc, cela permet de d ´efinir une entit ´e, impl ´ementant un protocole de coordination, pour coordonner les interactions des composants d’une mani `ere exog `ene. Autrement dit, en faisant abstraction de leurs comportements internes. Ce protocole d ´efinit une sorte de contrat d’interaction entre l’ensemble des composants du syst `eme.

Dans ce contexte, nous nous sommes int ´eress ´es `a l’utilisation du langage de coordination Reo [Arb04], d ´evelopp ´e par le Professeur F. Arbab et son ´equipe du centre de recherche CWI d’Amsterdam. Reo, offre un ensemble de primitives de synchronisation, bas ´ees sur les canaux de communication, pour construire d’une mani `ere compositionnelle des pro-tocoles de coordination. Et comme ces propro-tocoles d ´efinissent l’ensemble des interactions des composants dans un SBC, leur s ˆuret ´e de fonctionnement doit donc ˆetre garantie afin de garantir celle du syst `eme global. Ainsi, pour v ´erifier des propri ´et ´es sur les protocoles Reo, nous avons choisi d’exploiter le Model-Checker SPIN [Hol03], pour ses qualit ´es pour faire face au probl `eme d’explosion combinatoire de l’espace d’ ´etats lors de la v ´erification et aussi pour sa popularit ´e. La probl ´ematique suivante s’est alors pos ´ee : (C1) com-ment traduire les protocoles Reo et leurs propri ´et ´es `a v ´erifier, vers, respective-ment, le langage Promela, de SPIN, et la logique LTL (Linear Temporal Logic), tout en pr ´eservant les propri ´et ´es de synchronisation des primitives Reo ?

(19)

FIGURE1.1 – Conception incr ´ementale d’un SBC guid ´ee par SysML

1.3/

C

ONTRIBUTIONS

Conception incr ´ementale des SBC fiables guid ´ee par des mod `eles SysML : Nous avons obtenu plusieurs r ´esultats concernant la conception rigoureuse des SBC guid ´ee par des mod `eles SysML, sp ´ecifiant la structure, le comportement, et les exigences du syst `eme `a d ´evelopper.

Mod ´elisation des SBC avec SysML : Pour r ´eponde `a la probl ´ematique (M1), nous avons propos ´e une d ´emarche pour d ´ecrire l’architecture (avec un diagramme de d ´efinition de blocs SysML BDD, avec la d ´efinition des ports proxy et des blocs d’in-terface pour mod ´eliser les ind’in-terfaces des composants, et un diagramme de blocs internes IBD), le comportement (avec un diagramme de s ´equence SD), et les exi-gences (avec un diagramme des exiexi-gences), des SBC (voir les diagrammes utilis ´es dans la figure 1.11). Ces diagrammes sont ensuite transform ´es automatiquement au niveau formel pour les prendre en consid ´eration dans la v ´erification de l’as-semblage des composants en exploitant le formalisme des automates d’interface (travaux pr ´esent ´es dans le chapitre 2). Ces travaux concernent certaines parties des th `eses encadr ´ees [Roz15, Bou16] et les publications [CH11a, BCHM19]. — Assemblage des composants guid ´e par SysML : Pour r ´epondre `a la

probl ´ematique(I2), nous avons propos ´e une approche incr ´ementale pour construire un SBC en partant d’une sp ´ecification abstraite du syst `eme global, d ´ecrit par des diagrammes SysML. Le syst `eme est construit progressivement en s ´electionnant des composants ad ´equats tels que leur composition respecte les contraintes d ´efinies dans la sp ´ecification abstraite. La v ´erification de ces contraintes est ef-fectu ´ee en sp ´ecifiant et v ´erifiant une relation de raffinement entre les interfaces des composants. Les outils Ptolemy [LX04] et MIO Workbench [BMSH10] sont utilis ´es

(20)

1.3. CONTRIBUTIONS 9

pour v ´erifier respectivement la compatibilit ´e et le raffinement des interfaces (voir dans la figure 1.1 (1)). Cette contribution exploite les r ´esultats de la contribution pr ´ec ´edente, elle est ´egalement en lien avec la probl ´ematique (M1). Ces travaux sont r ´esum ´es dans le chapitre 2. Ils concernent une partie de la th `ese encadr ´ee [Roz15] et la publication [CCM12a].

Construction incr ´ementale de l’architecture d’un SBC guid ´ee par les exi-gences SysML : Pour r ´epondre `a la probl ´ematique (M2), nous avons propos ´e une approche pour construire l’architecture d’un SBC d’une mani `ere incr ´ementale en analysant son diagramme des exigences SysML (fonctionnelles). Ces derni `eres sont v ´erifi ´ees une par une, sur le comportement des composants ´el ´ementaires, en utilisant le Model-Checker SPIN (voir la figure 1.1 (2)). Les composants v ´erifi ´es sont ensuite int ´egr ´es dans l’architecture partielle du syst `eme apr `es avoir v ´erifi ´e leur compatibilit ´e gr ˆace `a leurs automates d’interface (voir la figure 1.1 (3)). Ces travaux rentrent dans le cadre de la th `ese [Roz15] et sont synth ´etis ´es dans le chapitre 4. Ils sont publi ´es dans [CCM13a, CCM13b]. Dans [CCM13b], nous avons ´egalement propos ´e une approche pour v ´erifier l’assemblage des composants en consid ´erant des exigences non-fonctionnelles sp ´ecifi ´ees avec SysML.

G ´en ´eration automatique des adaptateurs lors de la conception des SBC mod ´elis ´es avec SysML : Pour r ´epondre `a la probl ´ematique (A1), nous avons propos ´e une approche pour g ´en ´erer automatiquement un adaptateur permettant aux composants, mod ´elis ´es avec SysML, d’interagir malgr ´e l’incoh ´erence exis-tante entre les noms de leurs services ´echang ´es. La g ´en ´eration de l’adaptateur est guid ´ee par les sp ´ecifications SysML du composite `a d ´evelopper (sp ´ecification initiale du syst `eme, sous forme d’un composite), initialement d ´efini par le concep-teur. Notre approche se distingue par rapport aux travaux existants par son exploitation des mod `eles semi-formels (SysML) et formels (automates d’inter-face), pour traiter les incoh ´erences entre les composants et corriger leur incom-patibilit ´e gr ˆace `a l’adaptation. Ces travaux concernent une partie de la th `ese [Bou16] et sont pr ´esent ´es dans le chapitre 3. Ils sont publi ´es principalement dans [BCZ15, BCHM16b].

Conception rigoureuse de syst `emes critiques `a base de composants orient ´es ob-jet : Pour r ´epondre `a la probl ´ematique (I3), nous avons propos ´e une d ´emarche pour d ´evelopper des SBC corrects par la conception en exploitant leurs interfaces sp ´ecifi ´ees par des contrats comportementaux. Ce formalisme est bas ´e sur les automates d’inter-face enrichis avec la s ´emantique des m ´ethodes (voir la figure 1.22). Nous avons donc

propos ´e un cadre formel pour d ´efinir et v ´erifier l’interop ´erabilit ´e des composants orient ´es objet (utilis ´es dans le domaine des transports). Nous avons ´egalement d ´efini la rela-tion de raffinement des composants, pour v ´erifier leur impl ´ementabilit ´e ind ´ependante (ou leur substituabilit ´e). Autrement dit, v ´erifier si les interfaces des composants compatibles peuvent ˆetre raffin ´ees s ´epar ´ement tout en maintenant leur compatibilit ´e. Les ´etudes de cas trait ´ees dans ces travaux concernent le domaine des transports, en particulier celui du ferroviaire. Et enfin, pour r ´epondre `a la probl ´ematique(A2), nous avons propos ´e une approche d’adaptation des composants, d ´ecrits par leurs contrats comportementaux et pr ´esentant des inad ´equations entre leurs services ´echang ´es. Ces travaux concernent, en partie, la th `ese [Mou11] et sont pr ´esent ´es dans le chapitre 5. Ils sont principalement publi ´es dans [CMM10e, MCM09, MACM15b, CMM12a, CMM10b].

(21)

Composant 1 Composant 2 IA1 IA2 Compatibilit´e ? Adaptation ? Composant 2 raffin´e IA’2 Substitution Int´egration de la s´emantique des op´erations

FIGURE1.2 – Assemblage des composants bas ´e sur les Automates d’interfaces

Exploitation de la m ´ethode B pour sp ´ecifier les interfaces des composants et v ´erifier leur assemblage : Pour r ´epondre `a la probl ´ematique(I1), nous avons propos ´e, dans [CHS06], une approche pour sp ´ecifier formellement les interfaces des composants en utilisant le formalisme de la m ´ethode B. En se basant sur les sp ´ecifications des inter-faces, nous avons montr ´e qu’il est possible d’utiliser la m ´ethode B, et particuli `erement, son raffinement pour prouver formellement la compatibilit ´e des composants aux niveaux signature et s ´emantique de leurs op ´erations. Dans [Cho06], nous avons ´etendu ce travail pour consid ´erer, en plus, les protocoles des composants dans la v ´erification de l’assem-blage. Le chapitre 6 pr ´esente ces travaux.

Transformation automatique des protocoles de coordination Reo vers Promela pour v ´erifier leurs propri ´et ´es : Depuis fin 2017, je travaille sur la sp ´ecification et la v ´erification des protocoles de coordination dans les syst `emes `a base de composants/ser-vices, en collaboration avec le groupe m ´ethodes formelles (avec le Professeur F.Arbab) du centre de recherche en informatique d’Amsterdam CWI. Ainsi, pour r ´epondre `a la probl ´ematique (C1), nous avons propos ´e une approche permettant de traduire automa-tiquement les protocoles de coordination sp ´ecifi ´es avec le langage Reo (d ´evelopp ´e au CWI), en Promela, afin de v ´erifier des propri ´et ´es temporelles avec le Model-Checker SPIN. Ce travail rentre dans le cadre de la th `ese de Benjamin Lion du CWI. Il est pr ´esent ´e dans le chapitre 7.

V ´erification de protocoles de communication dans le domaine des v ´ehicules au-tonomes/communicants : Depuis 2017, je collabore avec des coll `egues de l’ ´equipe AND (Algorithmique Num ´erique Distribu ´ee) du DISC (FEMTO-ST) et le Professeur A.Boukerche de l’universit ´e d’Ottawa (Canada), sur l’utilisation des approches formelles pour la validation des protocoles de communication dans les v ´ehicules autonomes et/ou communicants (et aussi dans le domaine des r ´eseaux de capteurs). Ce qui repr ´esente pour moi une ouverture vers de nouvelles th ´ematiques de recherche. Dans ce cadre, nous avons obtenu des premiers r ´esultats prometteurs (qui ne sont pas d ´etaill ´es dans ce manuscrit mais accessibles par les articles r ´ef ´erenc ´es ci-dessous) :

(22)

1.4. MES PUBLICATIONS 11

MQTT (Message Queuing Telemetry Transport), utilis ´e dans les applications IOT (internet des objets) pour les v ´ehicules communicants, et propos ´e une approche pour le v ´erifier formellement [CBM17b].

— V ´erification de l’interaction des composants en consid ´erant leur consommation de l’ ´energie dans les v ´ehicules autonomes : nous avons adapt ´e le formalisme des automates d’interface pour mod ´eliser et v ´erifier le protocole d’interaction entre les diff ´erents composants dans un v ´ehicule autonome en consid ´erant les contraintes de la consommation de l’ ´energie [CBM17a] (papier, best short paper de la conf ´erence MSWIM, class ´ee A).

— Proposition d’une nouvelle approche d’agr ´egation de donn ´ees en s ´erie, dans les r ´eseaux de capteurs, permettant d’optimiser les chemins parcourus et aussi de r ´eduire les communications entre les capteurs [MBMC19].

1.4/

M

ES PUBLICATIONS

La liste ci-dessous synth ´etise les publications auxquelles j’ai particip ´e depuis 2005, ann ´ee de mon recrutement en tant qu’enseignant chercheur.

Journaux internationaux (8) : [BCHM19, MBMC19, CHM13, CCM12a, CH11b, CMM10e, CHS06, CJMB05]

Journaux nationaux (3) : [BCHM16a, CMM12a, CDH+10]

Conf ´erences internationales (22) : [FMCB19, LCA18, CMM18, DBMC17, CBM17b, CBM17a, MMC17, BCHM16b, BCZ15, MACM15b, BCHM15a, CCM13a, CCM13b, HMC13b, HMC13a, CMM10b, MCM11, MCM09, CMM10c, SC05, BCJ05, Cho06]

Conf ´erences nationales (5) : [BCHM15b, CCM14b, CCM12b, CMM10a, CMM10d]

(23)
(24)

II

C

ONCEPTION INCR

EMENTALE DES SYST

´

EMES

`

`

A BASE DE COMPOSANTS GUID

EE PAR

´

S

YS

ML

(25)
(26)

2

M ´

ETHODOLOGIE POUR L

ASSEMBLAGE

DE COMPOSANTS GUID

EE PAR

´

S

YS

ML

2.1/

I

NTRODUCTION

Ce chapitre pr ´esente notre m ´ethodologie permettant `a l’architecte d’un SBC de le mod ´eliser avec SysML et de v ´erifier formellement l’assemblage de ses composants. Ainsi, nous proposons de combiner des mod `eles SysML et le formalisme des automates d’interface afin de v ´erifier formellement l’assemblage des composants sp ´ecifi ´es avec des diagrammes SysML. Pour cela, nous proposons, tout d’abord, de mod ´eliser l’architecture d’un SBC avec un ensemble de mod `eles SysML, qui sont ensuite traduits automatique-ment vers des mod `eles formels, qui sont `a leur tour exploit ´es pour v ´erifier l’assemblage des composants constituant le syst `eme global. Ce qui nous permet de valider ou de corriger l’architecture propos ´ee. Par ailleurs, nous proposons ´egalement une approche pour construire un SBC en se basant sur sa sp ´ecification abstraite. C’est `a dire, nous commenc¸ons la conception du syst `eme, `a d ´evelopper, par sa sp ´ecification SysML abs-traite, d ´ecrivant sa structure et son comportement, et nous proposons ensuite un en-semble de composants r ´eutilisables, telles que leur composition v ´erifie les contraintes impos ´ees par la sp ´ecification de d ´epart. Nous exploitons une relation de raffinement entre les interfaces des composants pour v ´erifier la coh ´erence entre le niveau abstrait et le niveau concret du syst `eme.

Dans les approches propos ´ees, la conception du syst `eme se fait d’une mani `ere incr ´ementale : nous proposons d’assembler les composants d’un syst `eme progressi-vement, et gr ˆace `a l’approche des automates d’interface, nous avons la possibilit ´e de v ´erifier l’assemblage des composants pour une vue partielle du syst `eme sans connaˆıtre les interfaces de tous les composants.

Ce chapitre est structur ´e de la mani `ere suivante. La section 2.2 porte sur les travaux connexes et nos contributions. Dans la section 2.3, nous pr ´esentons le formalisme des automates d’interface. Dans la section 2.4, nous montrons comment mod ´eliser l’archi-tecture d’un SBC avec SysML. Dans la section 2.5, nous pr ´esentons nos travaux pour le passage des mod `eles SysML sp ´ecifiant les protocoles des composants vers les auto-mates interfaces. La section 2.6 est d ´edi ´ee `a la v ´erification de l’assemblage de l’ensemble des composants constituant le SBC d ´ecrit avec SysML, en exploitant le formalisme des automates d’interface. Notre approche pour construire un SBC par raffinement est d ´ecrite dans la section 2.7. Nous terminons ce chapitre par une conclusion et un bilan pr ´esent ´es respectivement dans les sections 2.8 et 2.9.

(27)

2.2/

E

´

TAT DE L

ART ET CONTRIBUTIONS

Plusieurs travaux existent dans la d ´erivation des mod `eles formels `a partir des mod `eles semi-formels comme UML et SysML. Par exemple, les auteurs dans [KBSB10, RF06, Wan08, ES09, Mer14] se sont focalis ´es sur la transformation des diagrammes de s ´equence vers des r ´eseaux de Petri ou des r ´eseaux de Petri color ´es, en adoptant di-verses m ´ethodes. Une approche permettant de v ´erifier des diagrammes de s ´equence avec le Model-Checker SPIN, a ´egalement ´et ´e propos ´ee dans [LTM+09]. Contrairement `a ces travaux, dans notre cas, nous proposons de g ´en ´erer des automates d’interface `a partir des diagrammes de s ´equence en vue de v ´erifier l’assemblage des composants. Il existe ´egalement quelques travaux exploitant d’autres diagrammes SysML dans le but de v ´erifier formellement des propri ´et ´es. Par exemple, dans [JDB09], les auteurs pro-posent une syntaxe et une s ´emantique formelle pour les diagrammes d’activit ´e SysML. Leur contribution principale est la d ´efinition du langage appel ´e Activity Calculus, avec une s ´emantique op ´erationnelle formelle. Ce qui permet de d ´etecter des erreurs de conception d ´es le d ´ebut du processus de d ´eveloppement. Les diagrammes d’activit ´e ont ´egalement ´et ´e consid ´er ´es dans [OMD13, OMD14], o `u les auteurs proposent une approche permet-tant de v ´erifier formellement ces diagrammes avec le Model-Checker PRISM [KNP11]. Cet outil a ´et ´e ´egalement exploit ´e dans [Ali18] pour v ´erifier des syst `emes embarqu ´es, mod ´elis ´es principalement avec le diagramme de blocs SysML . Dans [CMC+08], les au-teurs proposent une solution pour la mod ´elisation et la v ´erification de syst `emes em-barqu ´es en temps r ´eel avec des contraintes d’ ´energie. Pour cela, ils combinent les fonctionnalit ´es des mod `eles SysML et des annotations du profil MARTE avec les avan-tages d’utiliser l’outil Time Petri Net. Ce formalisme permet l’analyse et la v ´erification des exigences fonctionnels, temporels et ´energ ´etiques dans les premi `eres phases du d ´eveloppement. Dans [KAdSS11], les auteurs pr ´esentent TEPE (TEmporal Property Ex-pression), un langage graphique, bas ´e sur des diagrammes param ´etriques SysML, pour l’expression des propri ´et ´es. Ces derni `eres sont construites sur des relations logiques et temporelles entre les attributs et les signaux des blocs. TEPE peut ˆetre int ´egr ´e `a un profil temps r ´eel de SysML comme AVATAR. Ce dernier est un profil orient ´e v ´erification, per-mettant d’exprimer et de v ´erifier des propri ´et ´es temporelles. Il est support ´e par la boˆıte `a outils open source TTool. Elle comprend un ´editeur de diagramme, un g ´en ´erateur de code UPPAAL et une interface de bouton-poussoir pour la v ´erification formelle. Contrairement `a notre approche, ces travaux ne se situent pas dans le contexte du d ´eveloppement des SBC, donc les questions li ´ees `a l’interop ´erabilit ´e des composants ne sont pas trait ´ees.

Contributions : L’originalit ´e de notre approche par rapport aux travaux pr ´esent ´es, est la connexion formelle entre des mod `eles SysML, sp ´ecifiant l’architecture des SBC, et le for-malisme des automates d’interface, pour v ´erifier l’interop ´erabilit ´e des sous-composants dans le syst `eme complet. Notre proposition est, `a notre connaissance, la seule contribu-tion proposant de concevoir des SBC en exploitant les notacontribu-tions SysML et le formalisme des automates d’interface. Ainsi, nous proposons des moyens aux concepteurs de SBC, pour exploiter SysML afin de concevoir rigoureusement leurs syst `emes. En outre, nous proposons deux d ´emarches de conception : l’une permet l’assemblage des composants selon une architecture SysML d ´efinie, pour construire le syst `eme global, l’autre repose sur une sp ´ecification abstraite du syst `eme `a construire, et propose de s ´electionner, en v ´erifiant une relation de raffinement, un ensemble de composants tels que leur

(28)

composi-2.3. FORMALISME DES AUTOMATES D’INTERFACE 17

tion respecte les contraintes impos ´ees par la sp ´ecification abstraite.

2.3/

F

ORMALISME DES AUTOMATES D

INTERFACE

Les automates d’interface (IAs) ont ´et ´e introduits par Luca de Alfaro et Thomas Hen-zinger [dAH01, AH05, AH01] pour sp ´ecifier les interfaces des composants, dans le but de v ´erifier leur compatibilit ´e en consid ´erant leurs protocoles d’interaction. Ces protocoles sont d ´ecrits par des s ´equences d’actions, d ´ecompos ´ees en trois sous ensembles : les actions d’entr ´ee (identifi ´ees par ’ ?’), de sortie (identifi ´ees par ’ !’), et internes (identifi ´ees par ’ !’).

D ´efinition 2.1 (Automate d’interface). Un automate d’interface A est repr ´esent ´e par le tuple h SA, ıA,ΣIA,ΣOA,ΣHA, δA itel que :

— SAest l’ensemble fini d’ ´etats. A est dit ”vide” si SA = ∅.

— ıA∈ SA est l’ ´etat initial.

— ΣI A, Σ

O A etΣ

H

A repr ´esentent, respectivement, les ensembles des actions d’entr ´ee, de

sortie, et internes. L’ensemble des actions de A est not ´e parΣA = ΣIA∪ΣOA∪ΣHA. Ces

ensemble sont mutuellement disjoints.

— δA⊆ SA×ΣA× SA est l’ensemble des transitions.

2.3.1/ L’APPROCHE OPTIMISTE POUR LA VERIFICATION DE LA COMPATIBILIT´ E´

Pour assembler correctement deux composants, C1et C2, sp ´ecifi ´es respectivement avec

leurs automates d’interface, A1 et A2, il est n ´ecessaire de v ´erifier leur compatibilit ´e en

calculant leur composition. Elle est r ´ealis ´ee en synchronisant leurs actions partag ´ees d’entr ´ee/sortie (calcul de leur produit synchrone). Cette composition peut contenir des ´etats bloquants, dans lesquels l’un des deux automates sollicite une action d’entr ´ee qui n’est pas accept ´ee par l’autre (concr `etement, un composant qui demande un service qui n’est pas disponible dans l’autre). Dans l’approche des automates d’interface la compati-bilit ´e est ´etablie s’il existe au moins un environnement avec lequel C1et C2 interagissent

sans blocage. Donc la pr ´esence d’un ´etat bloquant n’est pas une preuve suffisante pour d ´ecider de leur incompatibilit ´e. En effet, il suffit de trouver un environnement, appel ´e l ´egal, donc un troisi `eme composant C3, sp ´ecifi ´e avec l’automate A3 tel que ce dernier

active uniquement certaines actions d’entr ´ee dans la composition de A1et A2, permettant

d’ ´eviter leurs ´etats bloquants. Cependant, les deux automates sont dits incompatibles s’il n’y a aucun environnement permettant d’ ´eviter que leur composition atteigne des ´etats bloquants. Cette approche est consid ´er ´ee optimiste contrairement `a certaines approches, comme celle pr ´esent ´ee dans [BMSH10], dites pessimistes, qui d ´ecide de l’incompatibilit ´e de deux composants, si au moins un ´etat bloquant est d ´etect ´e dans leur produit syn-chrone. Lors de la conception des SBC, la vision optimiste est plus naturelle, car plus adapt ´ee `a la construction incr ´ementale des syst `emes, ce qui justifie notre choix pour le formalisme des automates d’interface.

La v ´erification de la compatibilit ´e de A1 et A2 dans l’approche optimiste est effectu ´ee en

(29)

1. v ´erifier que A1 et A2sont composables ;

2. calculer le produit synchrone A1⊗ A2;

3. calculer l’ensemble des ´etats bloquants dans A1⊗ A2;

4. calculer l’ensemble des ´etats incompatibles dans A1 ⊗ A2 : les ´etats `a partir

des-quels l’environnement ne peut pas ´eviter d’atteindre les ´etats bloquants en une ou plusieurs ´etapes ;

5. calculer A1k A2 en enlevant de A1⊗ A2, les ´etats bloquants, les ´etats incompatibles

et les ´etats non atteignables `a partir de l’ ´etat initial ;

6. si A1k A2n’est pas vide alors A1et A2sont compatibles, sinon ils sont incompatibles.

L’algorithme pour calculer la composition de deux automates d’interface A1 et A2 (dont

les ´etapes sont d ´ecrites ci-dessus), est d’une complexit ´e lin ´eaire par rapport `a la taille du produit des deux automates [dAH01]. Cet algorithme est impl ´ement ´e dans l’outil Ptolemy [LX04], d ´evelopp ´e `a l’universit ´e de Berkeley.

Les ´etapes de cet algorithmes sont d ´etaill ´ees dans la section suivante.

2.3.2/ COMPOSABILITE´, COMPATIBILITE ET COMPOSITION´

Avant de calculer le produit synchrone de deux automates d’interface, il faut v ´erifier leur composabilit ´e.

D ´efinition2.2(Composabilit ´e). Deux automates d’interface A1et A2sont composables si

ΣI A1 ∩Σ I A2 = Σ O A1 ∩Σ O A2 = Σ H A1∩ΣA2 = ΣA1 ∩Σ H A2 = ∅.

Nous notons par S hared(A1, A2) = (ΣIA1∩Σ

O A2)∪(Σ

I A2∩Σ

O

A1) l’ensemble des actions partag ´ees

par A1et A2.

D ´efinition2.3(Produit synchrone ⊗). Soient A1et A2deux automates d’interface

compo-sables, le produit synchrone de A1et A2 est l’automate d’interface A1⊗ A2d ´efini par

— SA1⊗A2 = SA1× SA2 et ıA1⊗A2 = (ıA1, ıA2) ; — ΣI A1⊗A2 = (Σ I A1∪Σ I A2) \ S hared(A1, A2) ; — ΣOA 1⊗A2 = (Σ O A1∪Σ O A2) \ S hared(A1, A2) ; — ΣHA 1⊗A2 = Σ H A1 ∪Σ H A2 ∪ S hared(A1, A2) ; — ((s1, s2), a, (s01, s02)) ∈ δA1⊗A2 si — a < S hared(A1, A2) ∧ (s1, a, s01) ∈ δA1 ∧s2= s 0 2ou — a < S hared(A1, A2) ∧ (s2, a, s02) ∈ δA2 ∧s1= s 0 1ou — a ∈ S hared(A1, A2) ∧ (s1, a, s01) ∈ δA1 ∧ (s2, a, s 0 2) ∈ δA2.

L’incompatibilit ´e entre deux automates d’interface A1 et A2 pourrait se produire `a cause

de l’existence des ´etats (s1, s2) dans le produit A1⊗ A2tels qu’il existe au moins une action

a dans S hared(A1,A2) activable `a partir de s1 et elle ne l’est pas `a partir de s2 ou vice

(30)

2.4. SP ´ECIFICATION DE L’ARCHITECTURE D’UN SBC AVEC SYSML 19

D ´efinition2.4( ´Etats bloquants). L’ensemble des ´etats bloquants Dead(A

1, A2) ⊆ SA1× SA2

dans A1⊗ A2 est d ´efini par {(s1, s2) ∈ SA1 × SA2 | ∃ a ∈ S hared(A1, A2) telle que la condition

suivante est satisfaite : (a ∈ΣO

A1(s1) ∧ a < Σ I A2(s2)) ∨(a ∈Σ O A2(s2) ∧ a < Σ I A1(s1)) }

Pour d ´ecider de la compatibilit ´e de A1 et A2, il faut pour prouver l’existence d’un

environ-nement l ´egal, sans pour autant le d ´efinir. Pour cela, il suffit de calculer la composition de A1 et A2 [AH05] et de montrer qu’elle n’est pas vide. Cette composition est calcul ´ee en

enlevant de l’ensemble des transitions du produit toutes les transitions ´etiquet ´ees avec une action d’entr ´ee, qui ont un ´etat cible incompatible ( ´etat permettant d’atteindre les ´etats bloquants) [AH05]. Autrement dit, on obtient la composition en limitant le produit A1⊗ A2, `a l’ensemble des ´etats compatibles et atteignables, not ´e Cmp(A1, A2), apr `es la

suppression des ´etats incompatibles. Cet ensemble contient les ´etats dans lesquels les ´etats bloquants ne sont pas atteignables en activant des actions de sortie ou internes (parce qu’elles sont localement contr ˆolables par le composant).

D ´efinition2.5(Composition k). La composition A

1k A2est l’automate d’interface tel que :

— SA1kA2 = Cmp(A1, A2) ; — ıA1kA2 = (ıA1, ıA2), ıA1kA2 ∈ SA1kA2; — ΣI A1kA2 = Σ I A1⊗A2,Σ O A1kA2 = Σ O A1⊗A2, etΣ H A1kA2 = Σ H A1⊗A2;

— δA1kA2 = δA1⊗A2 ∩ (Cmp(A1, A2) ×ΣA1kA2 × Cmp(A1, A2)).

D ´efinition 2.6 (Compatibilit ´e). A

1 et A2 sont compatibles s’ils sont composables et si

A1k A2, ∅

2.4/

S

PECIFICATION DE L

´

ARCHITECTURE D

UN

SBC

AVEC

S

YS

ML

Dans cette section, nous pr ´esentons nos mod `eles SysML pour sp ´ecifier l’architecture d’un SBC. Cette proposition tient compte de la d ´efinition du langage SysML `a partir de la version 1.3, et des caract ´eristiques d’un SBC.

Pour illustrer notre proposition, nous pr ´esentons l’ ´etude de cas d’une voiture CyCab, qui est un syst `eme `a base de composants ([BGMPG99]), d ´evelopp ´e par l’INRIA1, et consid ´er ´e comme ´etude de cas dans le projet ANR TACOS. Le CyCab est un petit v ´ehicule, ´electrique et automatique, utilis ´e comme moyen de transport conc¸us essen-tiellement pour le transport autonome. Il permet aux utilisateurs de se d ´eplacer via un ensemble de stations pr ´einstall ´ees. Il est totalement contr ˆol ´e par un syst `eme informa-tique et peut ˆetre pilot ´e automainforma-tiquement selon de nombreux modes. Pour illustrer notre approche, nous consid ´erons les contraintes suivantes :

— Un CyCab a une route d ´edi ´ee o `u les stations sont ´equip ´ees de capteurs et d’unit ´es de calcul. Il n’y a pas d’obstacle sur la route.

— Nous proposons que la conduite du CyCab soit guid ´ee par les informations rec¸ues des stations, ce qui permet de localiser le CyCab par rapport aux stations.

— Le v ´ehicule est activ ´e par le composant de d ´emarrage (Starter ). Le v ´ehicule est ´egalement dot ´e d’un bouton d’arr ˆet d’urgence, associ ´e au composant d’arr ˆet d’ur-gence (Emergency Halt (EH)). Le bouton d’arr ˆet d’urd’ur-gence peut ˆetre activ ´e `a tout moment pendant les mouvements du CyCab.

(31)

Le CyCab est un syst `eme compos ´e de deux composants composites : le v ´ehicule et la station. Le v ´ehicule est, `a son tour, compos ´e des composants ´el ´ementaires : Vehicle Core, Starter et EH. La station est compos ´ee des composants : Sensors (capteurs) et CU (unit ´e de calcul).

Donc pour sp ´ecifier l’architecture d’un SBC, en l’occurrence ici le CyCab, nous proposons d’utiliser les diagrammes SysML suivants : le bloc, le diagramme de d ´efinition de blocs (BDD), le diagramme de blocs internes (IBD), et le diagramme de s ´equence.

Le bloc : Permet de d ´efinir un composant en d ´ecrivant, ses op ´erations internes, comme op ´erations priv ´ees du bloc, et aussi ses services requis et offerts (sous forme d’op ´erations ´egalement), de la fac¸on suivante. Chaque bloc est d ´ecor ´e par deux ports proxy : un port d’entr ´ee pour d ´ecrire les services offerts qui sont list ´es dans un bloc d’in-terface qui d ´efini le type du port, et un port de sortie pour d ´ecrire de la m ˆeme mani `ere les services requis. Par ailleurs, nous distinguons deux types de blocs : les composites et les ´el ´ementaires. Par exemple dans la figure2.1, est pr ´esent ´e le bloc composite Station et ses sous-blocs ´el ´ementaires Sensors et CU. Dans la m ˆeme figure, nous constatons ´egalement que le bloc Sensors rec¸oit des informations de la position du v ´ehicule via l’op ´eration spos() sur son port d’entr ´ee ps in, comme indiqu ´e dans le bloc d’interface IinSensors, et renvoie la position g ´eographique calcul ´ee via un appel `a l’op ´eration pos() d ´ecrite dans le bloc d’interface IoutSensors

Le BDD : Permet de d ´ecrire la structure du syst `eme ou d’un bloc composite, en exhi-bant les relations de hi ´erarchie entre ses blocs (relation de composition). Par exemple, la figure 2.1 repr ´esente le BDD du bloc composite Station, qui est reli ´e par des relations de composition avec ses sous-blocs. Le BDD complet du CyCab est pr ´esent ´e dans notre papier [CH11b].

FIGURE2.1 – Le BDD du bloc composite Station

IBD : Permet au concepteur d’affiner l’architecture du syst `eme en d ´etaillant les in-teractions entre les sous-blocs dans un bloc composite. Dans l’IBD, les parties (parts) correspondent aux sous-blocs. L’interaction entre les sous-blocs est mod ´elis ´ee par des connecteurs entre leurs ports. Par exemple dans la figure 2.2, nous sp ´ecifions la com-position interne du bloc Station en montrant l’interaction entre les sous-blocs Sensors et CU. Ils sont li ´es via un connecteur entre le port ps out du bloc Sensors et le port pcu in du bloc CU.

(32)

2.5. D ´ERIVATION AUTOMATIQUE DES AUTOMATES D’INTERFACE `A PARTIR DE SYSML21

FIGURE2.2 – Le IBD du bloc Station

Le diagramme de s ´equence : Permet de repr ´esenter les protocoles d’interaction entre chaque composant et son environnement (les autres composants), sous forme d’une s ´equence d’ ´echanges de messages. Nos diagrammes de s ´equence doivent ˆetre com-pos ´es de deux lignes. Une repr ´esentant le comcom-posant, et une autre pour l’environnement. Par exemple, dans la figure 2.3, est mod ´elis ´e le diagramme de s ´equence du composant Sensors mod ´elisant son protocole d’interaction. Ce composant rec¸oit le message spos() de l’environnement, repr ´esentant les informations de la position du v ´ehicule, et renvoie ensuite le message pos(), indiquant les coordonn ´ees g ´eographiques, `a l’unit ´e de calcul (CU), repr ´esent ´ee par l’environnement.

FIGURE2.3 – Le diagramme de s ´equence du bloc Sensors

2.5/

D ´

ERIVATION AUTOMATIQUE DES AUTOMATES D

INTERFACE A

`

PARTIR DE

S

YS

ML

Dans cette section, nous pr ´esentons notre d ´emarche pour la d ´erivation des automates d’interface `a partir des diagrammes de s ´equence sp ´ecifiant les protocoles des compo-sants. Nous proposons une approche de transformation de mod `eles exploitant Atlas Transformation Language (ATL) [atl], qui repose principalement sur la m ´eta-mod ´elisation [dLVA04] et les transformations de m mod `eles [CH03]. Elle consiste `a d ´efinir les m ´eta-mod `eles des ´eta-mod `eles source et cible, puis `a sp ´ecifier les correspondances entre eux dans le m ´eta-niveau. Pour automatiser la transformation, nous avons d ´efini un ensemble de r `egles ATL permettant d’effectuer cette transformation.

(33)

FIGURE2.4 – Illustration de notre approche.

s ´equence des composants, et gr ˆace `a un ensemble de r `egles ATL, d ´efinies sur les m ´eta-mod `eles des diagrammes de s ´equence et des automates d’interface, nous obtenons les automates d’interface correspondant aux diagrammes de s ´equence. Ensuite pour v ´erifier la compatibilit ´e des composants, nous proposons de g ´en ´erer automatiquement, gr ˆace `a un ensemble de mod `eles Acceleo [acc], les sp ´ecifications d’entr ´ee pour l’outil Ptolemy pour la v ´erification de la compatibilit ´e.

M ´eta-mod `ele : Dans la figure 2.5, est pr ´esent ´e le m ´eta mod `ele des automates d’inter-face. Ainsi, chaque automate d’interface est compos ´e d’un ensemble d’ ´etat et transitions. Les ports Inport et outport sont associ ´es respectivement aux actions d’entr ´ee et de sor-tie. Le m ´eta mod `ele des diagramme de s ´equence n’est pas pr ´esent ´e ici (disponible dans [BCHM19]). Interface Automaton name Transition action State name type Inport name Outport name states 0..* transitions 0..* inports 0..* outports 0..* StateType Initial NotInitial source target

FIGURE2.5 – Le m ´eta mod `ele d’un automate d’interface.

R `egles ATL : Pour traduire le mod `ele source correspondant `a un diagramme de s ´equence vers le mod `ele cible correspondant `a un automate d’interface, nous avons d ´efini un ensemble de r `egles ATL permettant l’automatisation de cette transformation. Ces r `egles permettent de d ´efinir l’ensemble des ´etats, de transitions, et des actions d’un automate d’interface, en transformant les ´el ´ements constitutifs d’un diagramme de

(34)

2.6. V ´ERIFICATION DE L’ASSEMBLAGE DANS UN SBC MOD ´ELIS ´E AVEC SYSML 23

s ´equence. Par exemple, ci-dessous est pr ´esent ´ee une des r `egles ATL (l’ensemble des r `egles est pr ´esent ´e dans [BCHM19]) :

Rule : Message2Transition

Cette r `egle permet de cr ´eer une transition pour chaque message ´echang ´e entre un bloc et son environnement, d ´ecrit dans le diagramme de s ´equence. Cette transition sera ´etiquet ´ee avec l’action mes, correspondant au nom du message. Et, en fonc-tion de la posifonc-tion du message, la transifonc-tion sera typ ´ee en tant qu’acfonc-tion d’entr ´ee, de sortie ou interne.

rule message2Transition{

from mes : SD!Message, mos : SD!MessageOccurrenceSpecification . (mos.getCovered().name <> ’ENV’ )

to t : IA!Transition ( action <- mes.name.concat(

if(mes.sendEvent.getCovered()=mes.receiveEvent.getCovered())then ’;’ else if (mes.sendEvent=mos)then ’!’ else ’?’endif endif), source <- thisModule.resolveTemp(mos, ’s’),

target <- thisModule.resolveTemp(

thisModule.NextMsgOcSpec(mos.getCovered(), mos), ’s’) )}

Templates Acceleo pour Ptolemy : Apr `es avoir d ´eriv ´e les automates d’interface du diagramme de s ´equence, nous proposons un ensemble de templates Acceleo pour g ´en ´erer automatiquement la sp ´ecification d’entr ´ee Ptolemy, afin de v ´erifier la compatibi-lit ´e des composants. En analysant un fichier d’entr ´ee de Ptolemy sp ´ecifiant un automate d’interface, nous avons d ´efini six templates Acceleo permettant de cr ´eer automatique-ment le fichier de la sp ´ecification Ptolemy. Ces derniers sont d ´etaill ´es dans notre papier [BCHM19] et la th `ese [Bou16].

En appliquant notre approche sur les diagrammes de s ´equence des bloc Sensors et CU, on obtient leurs automates d’interfaces respectifs illustr ´es dans la figure 2.6.

FIGURE2.6 – Les automates d’interface des sous-composants Sensors et CU

2.6/

V ´

ERIFICATION DE L

ASSEMBLAGE DANS UN

SBC

MODELIS

´

E

´

AVEC

S

YS

ML

Dans cette section, nous pr ´esentons notre approche pour v ´erifier la compatibilit ´e d’un ensemble de composants qui forment un SBC dont l’architecture est d ´ecrite avec SysML. Cette approche exploite les travaux pr ´esent ´es pr ´ec ´edemment, et prend donc en consid ´eration les protocoles d’interaction sp ´ecifi ´es avec des diagrammes de s ´equence et

(35)

traduits en automates d’interface. Elle exploite ´egalement les mod `eles formels des BDD et IBD, que nous pr ´esentons dans la section suivante.

2.6.1/ MODELES FORMELS DES DIAGRAMMES` SYSMLSPECIFIANT L´ ’ARCHITEC

-TURE D’UNSBC

Pour pouvoir analyser automatiquement l’architecture d’un SBC, sp ´ecifi ´ee avec SysML, afin de v ´erifier l’assemblage de l’ensemble de ses composants, nous proposons les mod `eles formels pour sp ´ecifier l’ensemble des diagrammes SysML utilis ´es pour sp ´ecifier l’architecture. Nous allons ainsi d ´efinir formellement le bloc, le diagramme de d ´efinition de blocs, le bloc d’interface, et le diagramme de blocs internes. Ces mod `eles sont ex-ploit ´es par notre algorithme de v ´erification de l’assemblage des composants, d ´ecrit dans la section 2.6.2.

D ´efinition 2.7 (BDD). Un mod `ele formel pour le BDD d’un syst `eme S est : BDDS =

hIBS, S BS, S ubBSio `u :

— IBS : est le bloc initial du syst `eme ;

— S BS : est l’ensemble de blocs ;

— la fonction S ubBS : S BS → 2S BS qui associe `a chaque bloc son ensemble de

sous-blocs.

D ´efinition 2.8 (Port d’un bloc). Un port d’un bloc SysML, P, est d ´efini par le tuple hnameP, typeP, directionPi, tel que :

— nameP est le nom du port,

— typeP est le nom du bloc d’interface qui type le port,

— directionP indique la nature du port : in pour un port d’entr ´ee et out pour un port de

sortie. Nous notons par P.direction la direction du port.

Pour la d ´efinition suivante, nous avons besoin de consid ´erer l’ensemble IntB qui repr ´esente les blocs d’interface.

D ´efinition 2.9 (Bloc SysML). Un bloc SysML B est un tuple hnameB, OpB, PinB, PoutB, T ypePortBi, tel que :

— nameB est le nom du bloc,

— OpBest l’ensemble fini des op ´erations priv ´ees dans B,

— PinBle port proxy d’entr ´ee de B,

— PoutBle port proxy de sortie de B.

— La fonction T ypePortB : {PinB, PoutB} → IntB, qui d ´etermine l’interface qui d ´efinit le

type de chaque port.

Nous notons par B.name, B.Op, B.Pin, et B.Pout, respectivement, le nom du bloc B, son

(36)

2.6. V ´ERIFICATION DE L’ASSEMBLAGE DANS UN SBC MOD ´ELIS ´E AVEC SYSML 25

D ´efinition2.10 (Bloc d’interface). Soit B un bloc SysML et P

x un port de B, o `u x prend la

valeur de in pour un port d’entr ´ee, et out pour un port de sortie. Un bloc d’interface de B, tel que B d ´efinit le type du port Px, et repr ´esente l’interface requise ou fournie de B, est

d ´efini par I xB = hnamexB, OpxBi, tel que namexB est le nom de l’interface, et OpxB d ´efinit

l’ensemble des services requis par B quand x = out, et dans le cas contraire (x = in) il d ´efinit l’ensemble des services fournis.

Soit I un bloc d’interface, nous notons par I.Op l’ensemble des op ´erations d ´efinies dans I.

Par exemple, dans la figure 2.1,l’interface requise du bloc CU est IoutCU, telle que IoutCU.Op = { f ar(), halt()}. Son interface offerte est IinCU, telle que IinCU.Op = {pos()}. D ´efinition 2.11 (IBD). Soit S etB

B = S ubBB(B) l’ensemble des sous-blocs du bloc B. Le

diagramme de blocs internes de B, est le tuple

IBDB =h PartsB, BlockPartB, PortsB, PextinB,PextoutB, PinPartB, PoutPartB, ConnectorsinB,

ConnectorsoutB itel que :

— PartsB est l’ensemble des parties (Parts), tel que chaque partie repr ´esente une

instance d’un sous-bloc dans B.

— La fonction BlockPartB : PartsB → S etBB d ´etermine pour chaque Part dans l’IBD

son bloc.

— PortsBest l’ensemble des ports associ ´es aux parties dans l’IBD.

— PextinBet PextoutBsont respectivement le port ext ´erieur d’entr ´ee et le port ext ´erieur

de sortie.

— La fonction PinPartB : PartsB→ PortsB d ´etermine le port d’entr ´ee pour chaque Part

dans l’IBD. Et la fonction PoutPartB : PartsB → PortsB d ´etermine le port de sortie

pour chaque Part dans l’IBD.

— ConnectorsinB= {(pi, pj) tel que (pi, pj) ∈ PortsB× PortsB∧ pi.direction , pj.direction},

l’ensemble des connecteurs internes qui relient les sous-blocs. Ils sont ´egalement appel ´es connecteurs d’assemblage.

— ConnectorsoutB = {(pi, pj) tel que (pi, pj) ∈ Ports × Ports ∧ pi.direction = pj.direction},

l’ensemble des connecteurs qui relient les ports des sous-blocs (parties) avec les ports du bloc composite. Ils sont appel ´es connecteurs de d ´el ´egation.

Les d ´efinitions du BDD et de l’IBD sont exploit ´ees dans l’algorithme de la section sui-vante, pour identifier et assembler les sous-composants connect ´es dans le syst `eme glo-bal ou dans un composant composite. Les autres d ´efinitions sont exploit ´ees dans la sec-tion 2.7 et les chapitres suivants.

2.6.2/ ALGORITHME DE VERIFICATION´

L’algorithme 1, S ysCompos, exploite les mod `eles formels d ´ecrits dans la section pr ´ec ´edente et l’approche des automates d’interface pour v ´erifier l’assemblage de l’en-semble des composants d’un SBC d ´ecrit avec SysML. Nous notons par Compos(A1, A2),

l’algorithme permettant de v ´erifier la comptabilit ´e de deux automates d’interface, dont les ´etapes sont d ´ecrites dans la section 2.3.1. Cet algorithme est d ´etaill ´e dans [dAH01].

(37)

L’algorithme 1 accepte en entr ´ee le mod `ele formel du BDD du SBC (il exploite aussi le IBD de chaque bloc composite et l’automate d’interface de chaque bloc ´el ´ementaire), et pro-duit en sortie l’automate d’interface de bloc composite du syst `eme d ´ecrit par son BDD si les composants sont compatibles, ou un automate vide dans la cas contraire. L’algorithme analyse r ´ecursivement l’architecture du syst `eme en exploitant les liens hi ´erarchiques entre les blocs (dans le BDD) et leurs liens internes (connecteurs) dans les IBD, et v ´erifie au fur et `a mesure, de son avanc ´ee, la compatibilit ´e des blocs SysML.

Algorithme 1 : SysCompos(BDDB)

ENTREES :

BDDB le BDD du syst`eme ou du bloc composite B

SORTIES :

l’automate d’interface du composant composite si l’assemblage est correct, ou un automate d’interface vide sinon

DEBUT

Soit bc, le bloc courant, tel que bc= IBB

Si S uBB(bc)= ∅ Alors// le bloc courant n’a pas de sous-blocs

Soit IAbc, l’automate d’interface obtenu `a partir du diagramme de s´equence

S Dbc

Retourner IAbc;

SINON

//analyse de l’IBD du bloc courant pour calculer la composition des sous-blocs du bloc courant

Soit IBDbc= hPartsbc, BlockPartbc, Portsbc, Pextinbc, Pextoutbc, PinPartbc, PoutPartbc,

Connectorsinbc, Connectorsoutbci le IBD de bc

et setBlocs= {bi | ∃pi∈ Partsbc∧ (pi, bi) ∈ BlockPartbc}; setCon= Connectorsinbc;

R´EP´ETER

Soit bi∈ setBlocs,

SI (S uBB(bi) , ∅) ALORS

IAbi = S ysCompos(BDDbi);

SINON

Soit IAbi, l’automate d’interface obtenu `a partir du diagramme de

s´equence S Dbi

FIN SI

TANT QUE ∃{pi, p0i} ∈ S etCon tel que (p 0 i, b 0 i) ∈ BlockPartbc FAIRE SI (S uB(b0 i) , ∅) ALORS IAb0 i = S ysCompos(BDDb 0 i) SINON Soit IAb0

i, l’automate d’interface obtenus

du diagramme de s´equence S Db0 i FIN SI IAbi = Compos(IAbi, IAb0i) IAb0 i = IAbi // l’automate de b 0

i devient ´egalement celui de la composition

SI (IAbi = ∅) ALORS Exit();FIN SI// incompatibilit´e des sous-blocs

S etCon= S etCon − {(pi, p0i)};

FIN TANT QUE;

setBlocs= setBlocs − bi;

JUSQU’A setBlocs= ∅; Retourner IAbi;

Fin Si FIN

Références

Documents relatifs