une approche basée transformation de graphes pour la génération

143
RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE MINISTÈRE DE L'ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITÉ CONSTANTINE 2 FACULTÉ DES SCIENCES DES NOUVELLES TECHNOLOGIES DE L’INFORMATION ET DE LA COMMUNICATION DÉPARTEMENT D’INFORMATIQUE FONDAMENTALE ET SES APPLICATIONS LABORATOIRE MISC Année : 2013 N° d’ordre : 003/DR.LMD/2013/UC2 Série : 003/DR.LMD/NTIC Thèse Pour l’obtention du diplôme de Docteur 3 ème cycle LMD en Informatique Option : Systèmes distribués Thème : Présentée par : Mouna Bouarioua Date de soutenance: 24/ 04 /2013 Composition du Jury Pr Saidouni Djamel Eddine Université Mentouri Constantine Président Pr Chaoui Allaoua Université Mentouri Constantine Rapporteur Pr Kimour Mohamed Tahar Université Badji Mokhtar Aannaba Examinateur Dr Merniz Salah Université Mentouri Constantine Examinateur Dr Amirat Abdelkrim Université Mohamed Chérif Messaadia Souk-Ahras Examinateur Une approche basée transformation de graphes pour la génération de modèles de réseaux de Petri analysables à partir de diagrammes UML

Upload: tranduong

Post on 05-Jan-2017

225 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Une approche basée transformation de graphes pour la génération

RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE

MINISTÈRE DE L'ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITÉ CONSTANTINE 2

FACULTÉ DES SCIENCES DES NOUVELLES TECHNOLOGIES DE L’INFORMATION ET DE LA

COMMUNICATION

DÉPARTEMENT D’INFORMATIQUE FONDAMENTALE ET SES APPLICATIONS

LABORATOIRE MISC

Année : 2013 N° d’ordre : 003/DR.LMD/2013/UC2 Série : 003/DR.LMD/NTIC

Thèse

Pour l’obtention du diplôme de Docteur 3ème cycle LMD en Informatique

Option : Systèmes distribués

Thème :

Présentée par : Mouna Bouarioua

Date de soutenance: 24/ 04 /2013

Composition du Jury

Pr Saidouni Djamel Eddine Université Mentouri Constantine Président

Pr Chaoui Allaoua Université Mentouri Constantine Rapporteur

Pr Kimour Mohamed Tahar Université Badji Mokhtar Aannaba Examinateur

Dr Merniz Salah Université Mentouri Constantine Examinateur

Dr Amirat Abdelkrim Université Mohamed Chérif Messaadia Souk-Ahras Examinateur

Une approche basée transformation de graphes pour la génération de

modèles de réseaux de Petri analysables à partir de diagrammes UML

Page 2: Une approche basée transformation de graphes pour la génération

Dédicace

À mes parents…

Page 3: Une approche basée transformation de graphes pour la génération

Remerciements

J’exprime toute ma gratitude au Pr Allaoua Chaoui, professeur à l’université Mentouri

Constantine, pour son encadrement et ses conseils précieux.

Je remercie Monsieur Djamel Eddine Saidouni, professeur à l’université Mentouri

Constantine, d’avoir accepté de présider le jury.

Je remercie également Messieurs : Pr. Kimour Mohamed Tahar, Dr. Merniz Salah et

Dr. Amirat Abdelkrim d’avoir accepté d’examiner ce travail.

Je tiens à remercier également tous ceux qui m’ont soutenu et qui ont contribué de

près ou de loin à l’élaboration de ce travail.

Page 4: Une approche basée transformation de graphes pour la génération

ملخص:

العمل المنجز في هذه المذكرة يعتبر مساهمة في مجال الهندسة بواسطة النماذج. الهدف

قواعد التصميم متعددة النماذج عبر طرق تحويل النماذج استعمالاألول من هذه المبادرة هو

المنجزة في هذا لتمكين استخدام تقنيات التحليل أثناء دورة تطوير النظم المعقدة. األعمال

النطاق تتعلق باقتراح أدوات وبرامج تصميم تمكن من مساعدة مطوري النظم المعقدة. يتم

و تقديم أداة تمكن من استنتاج آليا الوصف الموافق في لغة انطالقا من نماذج,

أخيرا تحليل هذه النماذج بواسطة أداة

هندسة البرامج بواسطة النماذج, التصميم المتعدد النماذج, تحويل البينات, قواعد البينات, كلمات مفتاح:

التحليلية, نماذج الطرق

GSPN

.TINA

UML 2.0

.GSPN

Page 5: Une approche basée transformation de graphes pour la génération

Résumé:

Le travail présenté dans cette thèse est une contribution dans le domaine de

l’Ingénierie Dirigée par les Modèles (IDM). Son principal objectif est

l’application des techniques de la transformation de modèles, et plus

précisément les transformations de graphes, pour pouvoir appliquer des outils

d’analyse et de vérification durant le processus de développement des systèmes

complexes.

Les travaux présentés dans ce cadre consistent en une approche et un outil pour

la modélisation et la transformation des diagrammes de séquence et des

diagrammes d’états-transitions d’UML 2.0 en modèles de réseaux de Petri de

type GSPN. L’outil est conçu en langage Java sous l’environnement de

développement Eclipse. Ces librairies assistent le développeur dans ses tâches

de conception et de modélisation, et permettent l’application d’outils d’analyse.

Nous présenterons d’abord ces outils de modélisation des différents diagrammes

UML 2.0 et des réseaux de Petri GSPN, ensuite nous présenterons un outil pour

la transformation de ces modèles UML 2.0 en leurs équivalents dans le

formalisme GSPN. Nous utiliserons l’outil TINA pour analyser les propriétés

des modèles GSPN.

Mots clés : Ingénierie Dirigée par les Modèles, Modélisation multi-paradigmes,

Méta-modélisation, Transformation de Graphes, Grammaires de Graphes,

Méthodes Formelles, Réseaux de Petri, GSPN, Diagrammes de séquence,

Diagrammes d’états-transitions.

Page 6: Une approche basée transformation de graphes pour la génération

Abstract:

The work presented in this manuscript is a contribution in the field of Model

Driven Engineering (MDE). The main objective of this contribution is to use

models transformations and especially graphs transformation techniques in order

to facilitate the formal analysis in the development cycle of complex systems.

Our work consists of proposing an approach and a tool for modeling and

transforming UML2.0 sequence diagrams and statecharts to GSPN models. Our

tool is made with Java programming language under Eclipse development

environment. These libraries assist developers of complex systems. At first, we

propose tools based on meta-modeling concepts for modeling different

formalisms, in this work it concerns UML2.0 sequence diagrams, statechart

diagrams and Petri Net (GSPN), and then we develop a tool based on Graph

Grammar that provides automatic transformation of the UML2.0 diagrams to

their equivalent GSPN models. The formal analysis of GSPN is performed using

the TINA analyzer.

Keywords: Model Driven Engineering, Multi-paradigm Modeling, Meta-

modeling, Graph Transformation, Graph Grammar, Formal Methods, Petri Nets,

GSPN, Sequence Diagram, Statechart.

Page 7: Une approche basée transformation de graphes pour la génération

Table des matières

Introduction générale

1

Chapitre 1 : Ingénierie Dirigée par les Modèles et Modélisation multi-

paradigmes

5

1.1 Introduction 6

1.2 Les systèmes 6

1.3 L’ingénierie système 7

1.3.1 Notion de qualité pour un système 7

1.3.2 Ingénierie Dirigée par les Modèles (IDM) 8

1.3.2.1.Une méthode orientée modèles 9

1.3.2.2.Modèles, formalismes de modélisation et méta-modèles 9

1.3.2.3.Transformations de modèles 10

1.3.2.4.Types de transformations de modèles 11

1.3.2.5.Propriétés d’une transformation 13

1.3.2.6.Manipulation des modèles 15

1.3.2.7.Les approches de l’Ingénierie Dirigée par les modèles

(IDM)

16

1.3.3. L’Architecture Dirigée par les Modèles (ADM) 16

1.3.3.1.Typologie des modèles dans l’approche ADM 17

1.3.3.2.Transformations de modèles en ADM 18

1.3.3.3.Quelques standards de l’ADM 19

1.3.3.4.Couches de l’architecture ADM 20

1.3.3.5.Méta-modélisation et MOF 20

1.3.4. Autres approches basées sur les modèles 22

1.4 Systèmes complexes 22

1.5 Modélisation multi-paradigmes 24

1.5.1. Techniques de modélisation multi-paradigmes 26

1.5.2. Axes de la modélisation multi-paradigmes 28

1.6 Les transformations de graphes 31

1.6.1. Définitions et propriétés des graphes 32

1.6.2. Les relations entre les graphes 33

1.6.3. Principe de transformation de graphes 34

1.6.4. Grammaire de graphe 35

1.6.4.1.Principe de déroulement de règles 36

1.6.5. Système de transformation de graphes 37

1.6.6. Approches et outils de transformations de graphes 38

1.7. Conclusion 42

Chapitre 2 : Modélisation semi-formelle avec UML 2.0 43

2.1.Introduction 44

2.2.Historique des méthodes de conception 44

2.3.Méthode versus Langage de modélisation 46

2.4.Avantages de la modélisation Objet 46

2.5.Langage de modélisation UML 46

2.5.1. Les vues du langage UML 2.0 47

2.5.2. Interprétation de la conception et de l’analyse à travers la notation UML2.0

49

Page 8: Une approche basée transformation de graphes pour la génération

2.5.3. Diagrammes UML 2.0 49

2.5.4. Diagrammes d’états-transitions 50

2.5.4.1.Caractéristiques d’un diagramme d’états-transitions 51

2.5.4.2.Les diagrammes d’états-transitions de Harel 53

2.5.4.3.État composite dans un diagramme d’états-transitions 54

2.5.4.4.Les transitions dans un diagramme d’états-transitions 54

2.5.4.5.La concurrence dans un diagramme d’états-transitions 55

2.5.5. Les diagrammes de séquence 56

2.5.5.1.Opérateurs dans les diagrammes de séquence 57

2.6.Conclusion 60

Chapitre 3 : Méthodes formelles et modèle GSPN 61

3.1.Introduction 62

3.2.Méthodes formelles 63

3.3.Langages formels 63

3.4.Techniques d’analyse 63

3.5.Classification des méthodes formelles 64

3.5.1. L’approche axiomatique 65

3.5.2. L’approche basée sur les états 66

3.5.3. L’approche hybride 66

3.6.Techniques de vérification formelle 66

3.6.1. Vérification de modèle ou Model-Checking 66

3.6.2. Preuve de théorèmes 67

3.6.3. Test d’équivalence 67

3.6.4. L’animation de spécifications 67

3.6.5. Les tests 67

3.7.Intégration des méthodes formelles dans l’IDM 68

3.8.Les réseaux de Petri 69

3.8.1. Historique 69

3.8.2. Bases et définitions des réseaux de Petri 69

3.8.3. Avantages et inconvénients des réseaux de Petri 71

3.8.4. Utilisation des réseaux de Petri 71

3.8.5. Outils de modélisation des réseaux de Petri 72

3.8.6. Définition formelle 73

3.8.7. Déroulement d’un réseau de Petri 74

3.8.7.1.Franchissement d’une transition 74

3.8.7.2.Séquences de franchissement 75

3.8.7.3.Marquages accessibles 75

3.8.8. Propriétés des réseaux de Petri 75

3.8.8.1.Propriétés génériques 76

3.8.8.2.Propriétés spécifiques 77

3.8.8.3.Graphes des marquages 77

3.8.9. Évolution des réseaux de Petri 78

3.8.10. Modélisation des systèmes complexes 78

3.8.11. Méthodes d’analyse des réseaux de Petri 81

3.9.Les réseaux de Petri Généralisés Stochastiques (GSPN) 82

3.9.1. Les motivations de l’introduction du temps dans les réseaux de

Petri

82

3.9.2. Réseaux de Petri Stochastiques 83

Page 9: Une approche basée transformation de graphes pour la génération

3.9.3. Politique d’exécution et processus stochastique 84

3.9.4. Le modèle SPN 86

3.9.5. Le modèle GSPN 86

3.9.5.1.Transitions temporisées 86

3.9.5.2.Transitions immédiates 87

3.9.6. Définition formelle du modèle GSPN 88

3.10. Les analyses effectuées 90

3.11. Conclusion 91

Chapitre 4 : Une approche de transformation des diagrammes de séquence

et des diagrammes d’états-transitions en réseaux de Petri GSPN à l’aide

des transformations de graphes

92

4.1.Introduction 93

4.2. Réalisation dans Eclipse 94

4.3.Les méta-modèles de notre approche 95

4.3.1. Méta-modèle des diagrammes de séquence 95

4.3.2. Méta-modèle des diagrammes d’états-transitions 96

4.3.3. Méta-modèle des réseaux de Petri GSPN 97

4.4.Transformations dans Eclipse 99

4.4.1. Grammaire de transformation des diagrammes de séquence vers

les réseaux GSPN (DS vers GSPN)

105

4.4.2. Grammaire de transformation des diagrammes d’états-transitions

vers les réseaux GSPN (SC vers GSPN)

106

4.5.Conclusion 109

Chapitre 5 : Cas d’utilisation 110

5.1.Introduction 111

5.2.Diagramme de séquence pour inscription à une formation E-learning 111

5.3. Diagramme d’états-transitions de l’objet « internaute » dans le

digramme de séquence

113

5.4.Implémentation du diagramme de séquence et génération du modèle 114

5.4.1. Application de la transformation sur le diagramme de séquence 115

5.4.2. Diagramme GSPN après la transformation du diagramme de

séquence

116

5.5.Implémentation du diagramme d’états-transitions et génération du

modèle

117

5.5.1. Application de la transformation sur le diagramme d’états-

transitions

117

5.5.2. Diagramme GSPN après la transformation du diagramme d’états-

transitions

118

5.6.Vérification du GSPN 119

5.6.1. Interprétation des résultats 121

5.7.Conclusion 122

Conclusion générale 123

Bibliographie 124

Page 10: Une approche basée transformation de graphes pour la génération

Table des Figures

Figure 1.1: Phases de réalisation d’un système 9 Figure 1.2 : Scénario d’une transformation de modèle [OMG04] 11 Figure 1.3 : Processus en Y d’une architecture ADM 17

Figure 1.4 : Transformations de modèles en ADM 19

Figure 1.5 : Standards de l’architecture ADM 20

Figure 1.6 : MOF et architecture à « 3+1 » niveaux 22

Figure 1.7 : Aperçu d’une partie des activités à réaliser durant la construction d’un système 24

Figure 1.8 : Les trois axes de la modélisation multi-paradigmes 28

Figure 1.9 : Abstraction et raffinement dans la modélisation multi-paradigmes 30

Figure 1.10 : Transformation de modèle dans la modélisation multi-paradigmes 31

Figure 1.11 : Graphe non orienté 32

Figure 1.12 : Graphe (a) et sous-graphe (b) 32

Figure 1.13 : Exemple de graphe orienté 33

Figure 1.14 : Exemple de graphe orienté et étiqueté 33

Figure 1.15 : Principe d’exécution des règles 35

Figure 1.16 : Application d’une règle de transformation 37

Figure 1.17 : Système de réécriture de graphe 37

Figure 1.18 : Environnement Eclipse 42

Figure 2.1 : Historique de constitution du langage UML 45

Figure 2.2 : Les aspects d’un système 47

Figure 2.3 : Différentes vues dans un concept UML 2.0 48

Figure 2.4 : Diagramme d’états-transitions simplifié d’une partie de jeu vidéo 51

Figure 2.5 : Syntaxe d’un état simple 51

Figure 2.6 : Syntaxe d’un état initial 52

Figure 2.7 : Syntaxe d’un état final 52

Figure 2.8 : Diagramme d’états-transitions d’un objet « Facture » 53

Figure 2.9 : Exemple d’un diagramme d’états-transitions de Harel 53

Figure 2.10 : Syntaxe d’un état composite 54

Figure 2.11 : Exemple d’un état composite dans l’opération de composition d’un

numéro de téléphone

54

Figure 2.12 : Exemple de transitions dans un diagramme d’états-transitions 55

Figure 2.13 : Exemple d’utilisation de transitions complexes et concurrence 56

Figure 2.14 : Syntaxe d’un message asynchrone 57

Figure 2.15 : Syntaxe d’un message synchrone 57

Figure 2.16 : Représentation d’un choix dans un diagramme de séquence 57

Figure 2.17 : Représentation d’une boucle dans un diagramme de séquence 58

Figure 2.18 : Exemple d’objet effectuant deux tâches en parallèle 59

Figure 2.19 : Exemple de l’utilisation de l’opérateur strict dans un diagramme de

séquence

60

Figure 3.1 : Classification des méthodes formelles 65

Figure 3.2 : Exemple de réseau de Petri marqué 70

Figure 3.3 : Franchissement d’une transition t 74

Figure 3.4 : Graphe des marquages du réseau de Petri (a) 77

Figure 3.5 : Réseau de Petri avec parallélisme 78

Page 11: Une approche basée transformation de graphes pour la génération

Figure 3.6 : Réseau de Petri avec synchronisation mutuelle 79

Figure 3.7 : Réseau de Petri avec synchronisation par signal 79

Figure 3.8 : Réseau de Petri avec partage de ressource 80

Figure 3.9 : Réseau de Petri illustrant le cas de la mémorisation 81

Figure 3.10 : Syntaxe d’une transition temporisée 87

Figure 3.11 : Transition temporisée (a) et transition immédiate (b) 88

Figure 3.12 : Exemple d’un GSPN avec des transitions immédiates et des transitions

temporisées

90

Figure 4.1 : Schéma de notre approche 93

Figure 4.2 : Scénario de notre transformation 94

Figure 4.3 : Les librairies de notre approche dans Eclipse 95

Figure 4.4 : Méta-modèle des diagrammes de séquence 96

Figure 4.5 : Méta-modèle des diagrammes d’états-transitions 97

Figure 4.6 : Méta-modèle du GSPN 98

Figure 4.7 : Relation entre diagramme de séquence et diagrammes d’états-transitions 100

Figure 4.8 : Transformations en GSPN 101

Figure 4.9 : Schéma de la première transformation des diagrammes de séquence vers

les GSPN

102

Figure 4.10 : Schéma de la deuxième transformation des diagrammes d’états-

transitions vers les GSPN

103

Figure 4.11 : Combinaison des deux transformations 104

Figure 4.12 : Grammaire de transformation des diagrammes de séquence vers le

modèle GSPN

105

Figure 4.13 : Premier ensemble de la grammaire de transformation des diagrammes

d’états-transitions vers les GSPN

107

Figure 4.14 : Deuxième ensemble de la grammaire de transformation des diagrammes

d’états-transitions vers les GSPN

108

Figure 4.15 : Troisième ensemble de la grammaire de transformation des diagrammes

d’états-transitions vers les GSPN

109

Figure 5.1 : Diagramme de séquence d’une demande de formation e-learning 112

Figure 5.2 : Diagramme d’états-transitions d’une instance de la classe « Internaute » 113

Figure 5.3 : Diagramme de séquence dans Eclipse 114

Figure 5.4 : Grammaire appliquée au diagramme de séquence dans Eclipse 115

Figure 5.5 : GSPN après transformation du diagramme de séquence dans Eclipse 116

Figure 5.6 : Représentation graphique du GSPN 116

Figure 5.7 : Diagramme d’états-transitions dans Eclipse 117

Figure 5.8 : Grammaire appliquée au diagramme d’états-transitions dans Eclipse 117

Figure 5.9 : GSPN après transformation du diagramme d’états-transitions 118

Figure 5.10 : Représentation graphique du GSPN 119

Figure 5.11 Partie du GSPN du système modélisé à vérifier 119

Figure 5.12 : GSPN dans TINA 120

Figure 5.13 : Analyse du GSPN 121

Page 12: Une approche basée transformation de graphes pour la génération

Tableaux

Tableau 1.1 : Les quatre niveaux de l’architecture ADM 21

Tableau 2.1 : Tableau comparatif entre diagrammes dans la conception et l’analyse 49

Tableau 3.1 : Exemples d’utilisation des réseaux de Petri 72

Tableau 3.2 : Les plus importants outils de modélisation des réseaux de Petri 73

Page 13: Une approche basée transformation de graphes pour la génération

1

Introduction Générale

Les systèmes logiciels sont présents, aujourd'hui, dans tous les domaines de l'activité humaine

(industrie, transports, communications, construction, etc.). Avec le temps, ces systèmes sont

devenus de plus en plus complexes, et par conséquent, leur analyse et leur vérification

représentent un enjeu capital.

UML est considéré de nos jours comme un standard pour la modélisation orientée objet des

systèmes complexes. Les diagrammes UML 2.0 sont divisés en trois catégories de classes : les

diagrammes structurels modélisent l’aspect statique du système à concevoir comme les

diagrammes de classes ou les diagrammes d’objets, les diagrammes comportementaux comme

les diagrammes d’activité ou les diagrammes d’états-transitions et les diagrammes

d’interaction ou dynamiques comme les diagrammes de séquence.

Pour la conception du logiciel, les descriptions semi-formelles telles que UML 2.0 offrent des

mécanismes d’expressions graphiques et textuelles très riches, proposant une représentation

intuitive et synthétique du système à construire. Cependant, UML 2.0souffre du manque

d’outils pour analyser et vérifier des propriétés. D’autre part, les méthodes formelles telles

que les réseaux de Petri offrent un ensemble d’outils pour analyser et vérifier les propriétés.

Les réseaux GSPN sont une extension des réseaux de Petri servant à modéliser des systèmes

qui évoluent dans des environnements stochastiques. Une approche intégrée UML-Méthodes

formelles s’avère intéressante pour palier aux insuffisances d’UML 2.0 concernant l’analyse

et la vérification des propriétés. Cette thèse s’inscrit dans le cadre de l’Ingénierie Dirigée par

les Modèles. Plus précisément, nous proposons une approche intégrée permettant de

transformer des diagrammes de séquence et des diagrammes d’états-transitions en leurs

équivalents en réseaux de Petri de type GSPN.

Notre approche est basée sur la transformation de graphes sous l’environnement de

programmation Eclipse. De nombreux travaux relatifs aux transformations de modèles, et

spécialement les transformations de graphes pour les besoins de l’analyse ont été réalisés en

utilisant les principes et les outils de méta-modélisation comme Generic Modeling

environment [GME], AtoM3 [ATOM3], MetaEdit+ [MetaEdit], et autres outils qui

proviennent du projet Eclipse Generative Modeling tools [GMT] comme Eclipse Modeling

Framework [EMF], Graphical Editing Framework [GEF] et Graphical Modeling Framework

[GMF]. Dans la plupart de ces outils, les transformations doivent être définies textuellement.

Il y a d'autres outils similaires qui manipulent les modèles en utilisant des grammaires de

graphes tels que PROGRES [PRGRES], GreAT [Balasubramanian06], FUJABA [FUJABA],

TIGER [Ehrig05] et AGG [AGG06, Taentzer03]. La transformation est faite en utilisant des

concepts de méta-modélisation pour permettre la réutilisation des formalismes afin de servir à

Page 14: Une approche basée transformation de graphes pour la génération

2

d'autres transformations que celles-ci. Cependant, aucun de ces outils n'a sa propre couche de

méta-modélisation.

Parmi les nombreux travaux existants, le travail de [Kerkouche10] traite de la transformation

entre les diagrammes d’états-transitions d’UML et les diagrammes de collaboration vers les

réseaux de Petri colorés. L’auteur a utilisé l’outil AtoM3 car l'approche est basée sur la

transformation de graphes et les deux modèles source et cible sont tous les deux des graphes.

La transformation génère un modèle graphique qui facilite la détection rapide des erreurs. Ce

dernier travail a été une étape dans un projet destiné à l'exploitation de l'outil d'analyse INA

[INA].

Dans [Holscher06], Une transformation de modèle UML (diagrammes de classes, de cas

d’utilisation, d’objet, d’états-transitions et d’interaction) vers un système de transformation de

graphes a été proposée par les auteurs. Le système de transformation de graphes est composé

de règles de transformation et d’un graphe de travail représentant l’état courant du système

modélisé. La simulation de l’exécution visuelle du système est effectuée en appliquant les

règles de transformation sur le graphe de travail. Le but de ce travail est la validation des

modèles UML dans des phases préliminaires avant l’implémentation du système.

Le travail proposé par [kuske02] présente une association des règles de transformation de

graphes avec les opérations dans le diagramme de classes et les transitions dans le diagramme

d’états-transitions. Les différentes règles de transformation sont combinées dans un même

système pour obtenir une description cohérente et unique de la sémantique.

Dans [Engels00], le diagramme de collaboration est interprété par un ensemble de règles de

transformation afin de spécifier une sémantique dynamique pour les modèles UML.

Le travail de [Baldan05] présente un cadre de la vérification des diagrammes d’activité à

l’aide des règles de transformation de graphes.

K. Ehrig présente l’outil graphique "TIGER" (Transformation based generation of modeling

environments) dans le but de générer d’autres modèles graphiques (cible) à partir d’autres

modèles graphiques (source). Les auteurs exposent l’exemple de la dérivation des réseaux de

Petri équivalents à des diagrammes d’activité. Après dérivation du modèle, l’outil propose un

moyen pour vérifier et valider les modèles obtenus. L’accent est mis sur la façon visuelle pour

spécifier les règles de transformation.

Dans [Guerra03], E. Guerra et J. De Lara proposent l’idée d'une plateforme pour vérifier une

modélisation UML. L'approche proposée consiste à établir des méta-modèles pour l'ensemble

des diagrammes UML, puis à les transformer vers plusieurs catégories des réseaux de Petri.

La syntaxe des réseaux de Petri est spécifiée par un méta-modèle. La transformation est

formellement décrite par les grammaires de graphe. Dans leur article [Guerra03], les auteurs

ont défini les règles de transformation des diagrammes de séquence vers réseaux de Petri

ordinaire.

Page 15: Une approche basée transformation de graphes pour la génération

3

Dans [Staines07], l’auteur transforme des diagrammes de séquence vers des "processors nets".

Ces derniers combinent la théorie des réseaux de Petri avec d’autres notations sous forme

d’instructions détaillées (les processors) associées aux transitions.

Nous citons également le travail de L.Guangyu et Y.Shuzhen [Guangyu09] qui ont présenté

un algorithme de translation des diagrammes de séquence vers les réseaux de Petri Objets.

Les travaux de S. Emadi, dans [Emadi09a] et [Emadi09a] consiste en la proposition d’un

algorithme de transformation d’un diagramme de cas d’utilisation et d’un diagramme de

séquence en un model exécutable basé sur différentes extensions des réseaux de Petri.

Dans [BDM02], un travail a été développé dans le but de transformer les diagrammes de

séquence en réseaux de Petri GSPN, sauf que la transformation est basée sur la syntaxe

abstraite des diagrammes de collaborations UML et sur les packages des états-transitions, et

non sur la transformation de graphes.

L’approche proposée dans le cadre de cette thèse se base sur ce dernier travail en traitant le

problème d’une autre manière. Ce travail consiste en la création d’une grammaire qui

permettra de transformer à travers son ensemble de règles des diagrammes de séquence et des

diagrammes d’états-transitions vers des réseaux de Petri GSPN. Ces derniers modèles feront

l’objet d’une vérification formelle dans l’outil de vérification TINA [TINA].

Notre travail est une contribution interdisciplinaire dans les approches visant l’utilisation

conjointe d’une méthode de spécification semi-formelle (UML 2.0) et une méthode de

spécification formelle appelée « GSPN », laquelle est une extension des réseaux de Petri dans

lesquels la notion du temps stochastique a été introduite.

Concrètement, nous avons proposé deux environnements de modélisation lesquels, dans un

premier lieu, permettront de produire des modèles pour les diagrammes de séquence et les

diagrammes d’états-transitions dans Eclipse. Ces modèles seront, par la suite, exploités par

des programmes qui procéderont à la transformation de ces deux diagrammes UML 2.0en des

réseaux de Petri de type GSPN. Les résultats de ces transformations seront exploités par

l’outil d’analyse des réseaux de Petri TINA.

Ce manuscrit est organisé comme suit :

- Le premier chapitre présente les concepts de base de l’Ingénierie Dirigée par les

Modèles (IDM) avec ses différentes variantes, nous nous intéresserons en particulier à

l’Architecture Dirigée par les Modèles (ADM) dans le cadre des systèmes complexes.

Dans la deuxième partie de ce chapitre, nous présenterons les techniques de

modélisation multi-paradigmes et ses axes. Á la fin, nous aborderons les

transformations de graphes, leurs grammaires et les systèmes de transformation.

- Le second chapitre est une présentation de la modélisation orientée objet, l’utilisation

du langage UML 2.0 ainsi que l’interprétation de la conception à travers la notation

UML 2.0.

Page 16: Une approche basée transformation de graphes pour la génération

4

- Le troisième chapitre est une vue générale sur les méthodes formelles et leurs

classifications. Leur intégration à l’IDM sera ensuite étudiée. La fin de ce chapitre sera

consacrée aux réseaux de Petri stochastiques de type GSPN.

- Dans le quatrième chapitre, nous présenterons une approche et un outil de

modélisation et des librairies Java pour la spécification et la transformation des

diagrammes de séquence et des diagrammes d’états-transitions d’UML 2.0 vers les

réseaux de Petri GSPN. Ces modèles GSPN seront par la suite exploités par l’outil

d’analyse TINA.

- Le cinquième chapitre illustre l’application de notre approche et outil sur une étude de

cas qui consiste en un système d’inscription à une formation e-Learning. Le GSPN

généré sera exploité par TINA qui nous donnera le résultat de l’analyse.

- Le dernier chapitre est une conclusion générale qui résume les contributions de cette

thèse, et discute des limites et des perspectives de notre travail.

Page 17: Une approche basée transformation de graphes pour la génération

5

Chapitre 1 : Ingénierie Dirigée par les

Modèles et Modélisation multi-

paradigmes

Page 18: Une approche basée transformation de graphes pour la génération

6

Chapitre 1

Ingénierie Dirigée par les Modèles et Modélisation multi-

paradigmes

1.1. Introduction

Un système est caractérisé par les propriétés qui résultent de l’interaction de ses éléments. Le

processus de conception des systèmes doit considérer la multiplication des fonctionnalités, la

diminution des coûts de développement, ou l’amélioration des performances qui ont une

influence directe, aussi bien sur la qualité du système que sur le cycle de développement. Ce

chapitre présente quelques évolutions concernant l’activité de conception dans le domaine de

l’Ingénierie Système. Nous étudierons les approches autour des modèles, en particulier

l’Ingénierie Dirigée par les Modèle (IDM) et l’Architecture Dirigée par les Modèles (ADM).

1.2. Les systèmes

Un système complexe [AFIS] est défini comme un ensemble organisé d’entités collaborant de

manière unitaire, et en interaction permanente, pour assurer une ou plusieurs fonctions du

système dans son environnement. Les propriétés d’un système résultent de l’interaction de ses

constituants. Des propriétés émergentes [Holland98] sont parfois souhaités et parfois

indésirables. Nous pouvons dans ce cas dire que l’intérêt de la conception en ingénierie

système est d’obtenir les comportements émergents attendus, en maintenant les

comportements émergents non-attendus dans les limites acceptables. L’étude

comportementale d’un système est alors incontournable.

Différents types de systèmes ont été identifiés dans la littérature : les systèmes

transformationnels, les systèmes interactifs, les systèmes réactifs, etc. Selon D. Harel et A.

Pnueli [Harel85], un système transformationnel acquière des données, les traite, produit un

résultat et se termine. Un système interactif est un système où nous pouvons observer une

interaction avec son environnement. Cette propriété des systèmes interactifs n’est pas

entièrement maîtrisable ni prévisible, de ce fait, leur conception devient systématiquement

difficile.

Les systèmes critiques sont des systèmes soumis à des contraintes extrêmement fortes.

Aucune erreur n’est alors permise, car une seule erreur de fonctionnement pourrait provoquer

des conséquences catastrophiques. Les systèmes critiques peuvent être des systèmes temps-

réel, pour lesquels les contraintes de temps de réponses sont strictes.

Les systèmes distribués sont des systèmes répartis, fonctionnant généralement les uns avec les

autres dans un réseau. Les systèmes adaptatifs dits aussi reconfigurables ont la faculté de

s’adapter de manière dynamique aux changements de leurs environnements en modifiant

continuellement leur configuration.

Page 19: Une approche basée transformation de graphes pour la génération

7

La complexité est le facteur qui rend difficile la tâche de conception d’un système. Cette

complexité dépend des points suivants :

Le nombre et la nature des éléments constituant le système : dans un système

complexe, les éléments sont hétérogènes et le nombre d’éléments peut être élevé ou,

éventuellement, variable.

La nature de son organisation interne : cette organisation concerne les relations

entre les éléments du système, qu’ils soient organisées dans des réseaux ou des

hiérarchies, etc.

Le couplage avec l’environnement : plus le système interagit avec son

environnement, plus il y a des incertitudes sur son comportement.

1.3. L’ingénierie système

L’ingénierie système est l’ensemble des activités centrées autour du cycle de vie d’un système

depuis sa définition jusqu’à sa validation [INCOSE, AFIS]. Il s’agit d’un processus

coopératif, itératif et interdisciplinaire, car il consiste à intégrer des efforts de toutes les

disciplines impliquées dans le cycle de vie du système.

1.3.1. Notion de qualité pour un système

En ingénierie système, divers travaux ont défini la qualité du logiciel en termes de facteurs ou

de métriques qualitatives et quantitatives, qui dépendent du domaine de son application et des

outils utilisés. Parmi ces derniers nous pouvons citer :

La validité : Un système doit assurer son fonctionnement exactement comme il a été

défini par le cahier des charges et les spécifications.

La fiabilité ou la robustesse : Un système doit pouvoir fonctionner aussi dans des

conditions anormales.

L’extensibilité (maintenance) : Un système doit se laisser maintenir, c'est-à-dire

supporter des éventuelles modifications ou une extension vers des fonctions qui lui

seront demandées.

La réutilisabilité : Un système doit être apte à être réutilisé, partiellement ou dans son

intégralité, dans d’autres systèmes.

La compatibilité : Un système doit être interopérable avec d’autres systèmes.

Page 20: Une approche basée transformation de graphes pour la génération

8

L’efficacité : Un système doit pouvoir utiliser les ressources matérielles de manière

optimale.

La portabilité : Un système doit pouvoir être facilement transféré vers différents

environnements matériels et logiciels.

La vérifiabilité : Un système doit faciliter la préparation des procédures de test en son

sein.

L’intégrité : Un système doit protéger son code et ses données et doit pouvoir gérer

les autorisations d’accès.

La facilité d’emploi : Un système doit offrir une facilité d’apprentissage,

d’utilisation, de préparation des données, d’interprétation des erreurs et de rattrapage

en cas d’erreur d’utilisation.

Ces facteurs sont parfois contradictoires. Le choix des compromis doit s’effectuer en fonction

du contexte.

1.3.2. Ingénierie Dirigée par les Modèles (IDM)

L’ingénierie système est une démarche de réalisation des systèmes. Son objectif est de

dénombrer et d’organiser les différentes activités du cycle de développement, afin de gérer la

conception du système ainsi que sa complexité. Ses tâches s’occupent principalement de la

mise en œuvre d’un système jusqu’à sa réalisation en passant par sa modélisation.

Par Ingénierie Dirigée par les Modèles nous faisons référence à l’ensemble outils/langages

mis en place pour la manipulation des modèles. Cette pratique encourage l’utilisation de

plusieurs modèles exécutables de haut-niveau, et permet d’élever la productivité du

développement en séparant la ‘‘logique métier’’ des plateformes utilisées [Lavagno03].

Les modèles sont une manière intuitive et naturelle de représenter l’état et le comportement

d’un système, quelque soit son degré de complexité et à chaque étape de son cycle de vie.

L’IDM exploite les modèles en les détaillant en fonction du besoin, jusqu’à obtention d’un ou

plusieurs squelettes de codes générés de manière systématique. L'intérêt principal de cette

approche réside dans l’utilisation intensive de modèles indépendants de toute plateforme.

Nous consacrons le reste de ce chapitre aux concepts de base de l’Ingénierie Dirigée par les

Modèles (IDM) qui couvre les disciplines dans lesquelles les modèles jouent un rôle principal

[Kent02, Favre06]. Nous nous intéresserons également à l’Architecture Dirigée par les

Modèles (ADM) et à son utilisation pour le développement des systèmes complexes.

Page 21: Une approche basée transformation de graphes pour la génération

9

1.3.2.1. Une méthode orientée modèles

La séparation du modèle de l’architecture est l’un des premiers objectifs de l’IDM qui place le

modèle au centre du développement [Bézivin 04] et assure que le développement d’un

système se réalise par un processus fait de plusieurs transformations successives d’un modèle

de base, jusqu’à obtention du code final. La figure 1.1 montre les grandes phases de la

réalisation d’un système.

Figure 1.1: Phases de réalisation d’un système

1.3.2.2. Modèles, formalismes de modélisation et méta-modèles

Un modèle est défini comme étant une abstraction d’un système qui se substitue à ce dernier

pour le simuler et analyser ses propriétés [Marvin68]. Les modèles servent de support pour

véhiculer la représentation mentale du système entre les différents acteurs impliqués dans son

développement.

Le modèle contient les données nécessaires à la production et à l’évolution du code. Les

modèles sont considérés comme des éléments de production et doivent être assez complets

pour répondre à la place du système qu’ils représentent.

En plus des caractéristiques liées à la qualité, comme la maintenabilité, la traçabilité des

modifications ou encore l’évolutivité, le modèle doit avoir les propriétés suivantes

[Lavagno03]:

Expression des besoins

Analyse

Conception

Implémentation

Test

Cahier des charges

Code exécutable livré

Ce qui doit être fait dans le système

Décrire les besoins du système

Comment le système doit-il être construit ?

Codage du résultat de la conception

Le système est-il conforme au cahier des charges ?

Page 22: Une approche basée transformation de graphes pour la génération

10

Abstrait : Cette qualité permet de cacher certains détails inutiles à un moment donné

de la conception.

Compréhensible: Le modèle doit être facile à assimiler et à manipuler par tous les

acteurs entrant dans l’élaboration du système.

Fidèle et précis : Le modèle doit représenter fidèlement les propriétés et les

caractéristiques du système lorsqu’il est observé dans une optique spécifique.

Prédictif : Le modèle doit fournir assez d’informations pour permettre de prédire les

propriétés du système.

Economique : Les coûts de construction et de tests sur le modèle doivent être limités

et ne doivent pas dépasser les coûts de construction d’un prototype du système.

L’IDM se base sur des formalismes ou des langages de modélisation. Le langage de

modélisation est défini par : une syntaxe abstraite qui définit les concepts de base du langage,

une syntaxe concrète qui définit le type de notation (graphique, textuelle ou mixte), des

concepts abstraits, et une sémantique pour permettre l’interprétation des concepts par les

acteurs et les machines.

Un modèle est dit productif s’il est exploitable par une machine qui pourra interpréter sans

confusion le langage dans lequel il a été formulé. L’idée d’utiliser les modèles pour définir un

langage de modélisation s’appelle La Méta-modélisation. Nous définissons un méta-modèle

comme le modèle qui sert à exprimer (modéliser) le langage d’expression d’un modèle, avec

ses entités, ses relations et ses contraintes.

À son tour, le méta-modèle est aussi spécifié dans un langage de méta-modélisation par le

méta-méta-modèle. Arrivé à ce niveau d’abstraction méta-circulaire, le langage est assez

puissant pour spécifier sa propre syntaxe abstraite.

1.3.2.3. Transformations de modèles

L’IDM considère les opérations de transformations de modèles comme le moteur de

développement, que ce soit pour l’analyse, l’optimisation ou la génération de code.

Cette procédure consiste à générer, à partir d’un ou de plusieurs modèles sources d’un

système, un ou plusieurs modèles cibles du même système. Les modèles sont dans tous les cas

conformes à leurs méta-modèles respectifs. Lorsque la transformation se fait dans un même

formalisme (méta-modèle source = méta-modèle cible) elle est dite endogène. Dans l’autre

cas, quand les deux méta-modèles source et cible sont différents, la transformation est dite

exogène.

Page 23: Une approche basée transformation de graphes pour la génération

11

Ces transformations sont gouvernées par un ensemble de règles utilisées par le moteur de

transformation. Ce moteur prend en entrée le modèle source, exécute les règles de

transformation et génère le modèle cible.

La figure 1.2 présente un scénario de transformation de modèle avec ses principaux concepts.

Un modèle source en entrée et un modèle cible en sortie. Les deux modèles sont conformes à

leurs méta-modèles respectifs. Le méta-modèle exprime la syntaxe abstraite de la notation du

modèle. Une transformation respecte les méta-modèles et est réalisée par l’intermédiaire d’un

moteur de transformation.

Figure 1.2 : Scénario d’une transformation de modèle [OMG04]

1.3.2.4. Types de transformations de modèles

L’IDM définit trois types de transformations de modèles, les transformations verticales, les

transformations horizontales et les transformations obliques.

Transformations verticales

Ces transformations se jouent sur les niveaux d’abstractions. Un raffinement se

fait lorsque cette transformation descend d’un niveau, mais lorsqu’on élève le

niveau d’abstraction, la transformation est dite : une abstraction.

Transformations horizontales

Ces transformations gardent le même niveau d’abstraction en modifiant les

représentations d’informations du modèle source (ajout, modification,

suppression ou restructuration).

Transformations obliques

Ces transformations sont généralement utilisées par les compilateurs qui

optimisent le code source avant la génération du code exécutable. Elles sont le

résultat de la combinaison des deux premiers types de transformations.

Conforme à Exécute

Lit Ecrit

Réfère à Réfère à

Méta-modèle source Méta-modèle cible

Modèle source Modèle cible

Définition de la

transformation

Moteur de

transformation

Conforme à

Page 24: Une approche basée transformation de graphes pour la génération

12

Ces transformations se font par l’intermédiaire d’un processus de dérivation

des règles de transformation. À chaque règle correspondent des entités du

modèle source et leurs équivalents dans le modèle cible. Le développeur choisit

librement le langage de transformation qui correspond à ses besoins, il pourra

les spécifier de façon déclarative, impérative ou hybride.

Dans la spécification déclarative, une règle décrit, après son application, le

résultat supposé à partir des éléments du modèle. La spécification impérative

décrit en termes de suite d’actions comment le résultat sera obtenu. La

spécification hybride combine les deux spécifications, impérative et

déclarative.

Les transformations de modèles se partagent également en deux grandes

classes [Czarnecki03] : les transformations « Modèle vers Code », et les

transformations « Modèle vers Modèle » largement étudiées dans l’approche

ADM.

• Transformation Modèle vers Modèle

Ces transformations ont beaucoup évolué depuis l’apparition de l’ADM. Ce type de

transformation permet la génération de plusieurs modèles intermédiaires avant

d’atteindre le modèle de code, afin d’étudier les différentes vues du système, son

optimisation, la vérification de ses propriétés et sa validation.

Nous distinguons cinq techniques de transformation « Modèle vers Modèle » :

Approche par manipulation directe

Cette approche est basée sur une représentation interne des modèles source et

cible, en plus des API (Application Programming Interface) pour les

manipuler.

Approche relationnelle

Cette approche utilise les contraintes pour spécifier les relations entre les

éléments du modèle source et ceux du modèle cible en utilisant une logique

déclarative basée sur des relations mathématiques.

Approche basée sur les transformations de graphes

Cette approche convient lorsque les modèles sont représentés par des graphes.

Elle exprime les transformations sous une forme déclarative. Les règles de

transformation sont définies sur des parties de modèle et non pas sur des

éléments basiques. Une opération de filtrage de motifs (Pattern Matching) est

Page 25: Une approche basée transformation de graphes pour la génération

13

ensuite lancée. Le moteur de transformation compare à chaque fois des

fragments du modèle source pour trouver des règles applicables. Ce fragment

est ensuite remplacé par son équivalent dans la règle appliquée. Quelques

exemples d’approches basées sur les transformations de graphes : VIATRA,

ATOM3, GreAT, UMLX, BOTL, etc.

Approche basée sur la structure

Divisée en deux étapes, la première se charge de la création d’une structure

hiérarchique du modèle cible, la seconde ajuste ses attributs et ses références.

Le cadre de transformation fourni par OptimalJ proposé par Compuware est un

exemple d’une approche basée sur la structure.

Approche hybride

Comme XDE et ATL, les approches hybrides sont la combinaison des

différentes techniques ou alors celle d’approches utilisant à la fois des règles à

logique déclarative et impérative.

• Transformation Modèle vers Code

Il existe deux types de transformations« Modèle vers Code »: la première est basée sur

le principe du visiteur (visitor-based) où l’on se sert du modèle et ses éléments qui

rapprochent sa sémantique du langage de programmation pour obtenir le code ;la

deuxième est basée sur le principe des patrons (Template-based) avec laquelle on

accède aux informations du modèle source en utilisant les fragments de méta-code

dans le code cible.

Il existe d’autres classifications basées sur les caractéristiques des langages de

transformation des modèles utilisés.

1.3.2.5. Propriétés d’une transformation

Une transformation est généralement caractérisée par l’ensemble de ses règles de

transformation, leur ordonnancement, leur organisation, la relation entre les deux modèles

source et cible, la traçabilité et la direction.

o Les règles de transformation

Une règle de transformation est partagée en deux parties: une partie gauche (LHS Left Hand

Side) accédant au modèle source, et une autre partie droite (RHS Right Hand Side) qui accède

au modèle cible. La partie logique (déclarative ou impérative) de la règle comporte les calculs

à effectuer sur les modèles ainsi que les contraintes appliquées.

Page 26: Une approche basée transformation de graphes pour la génération

14

Une logique déclarative spécifie les relations entre les éléments des modèles source et cible.

Une logique impérative utilise généralement des langages de programmation pour manipuler

les éléments des modèles sur des interfaces dédiées (exemple JMI).

o Les spécifications

Les spécifications représentent des relations non-exécutables, mais peuvent

exceptionnellement représenter une fonction entre les modèles source et cible et deviennent,

dans ce cas, exécutables. Certaines approches fournissent des mécanismes de spécifications

dédiés, tels que les pré-conditions et les post-conditions en OCL (Object Constraint

Language).

o La relation entre le modèle source et le modèle cible

La relation entre le modèle source et le modèle cible dépend du type de la transformation.

Nous parlons de transformation endogène lorsque le modèle source et le modèle cible sont

exprimés dans le même formalisme. La transformation est exogène lorsque les deux modèles

sont exprimés dans deux formalismes différents.

o L’organisation des règles

C’est une organisation qui définit la stratégie selon laquelle les règles seront appliquées. Ces

règles peuvent être organisées de façon modulaire avec importation. Les règles peuvent

utiliser le principe de réutilisation en passant par le mécanisme d’héritage entre les règles, ou

la composition en passant par l’ordonnancement explicite. Les règles peuvent être organisées

aussi selon une structure dépendante du modèle source ou du modèle cible.

o L’ordonnancement des règles

C’est l’ordre d’application des règles. Si l’algorithme d'ordonnancement est défini par l’outil

de transformation, l'ordonnancement est dit implicite. Si d’autres mécanismes spécifient

l’ordre d’exécution des règles, nous parlons alors d’ordonnancement explicite. L’ordre peut se

baser sur des conditions, des itérations ou sur une séparation d’étapes lorsque certaines règles

ne peuvent s’appliquer que dans des phases bien définies.

o La traçabilité

Les corrélations entre les éléments des modèles de la transformation peuvent être archivées.

La traçabilité est implémentée comme n’importe quel autre lien dans un modèle lorsque

l’approche utilisée n’offre aucun mécanisme pour la supporter.

Page 27: Une approche basée transformation de graphes pour la génération

15

o L’incrémentalité

Cette propriété est liée à l’aptitude des modèles cibles à s’adapter aux changements des

modèles sources.

o La direction

La transformation est unidirectionnelle lorsque le modèle cible est généré sur la base du

modèle source uniquement, et elle est bidirectionnelle lorsqu’une synchronisation entre les

deux modèles source et cible est possible.

1.3.2.6. Manipulation des modèles

Il existe plusieurs activités liées à la manipulation des modèles dans l’IDM. Chacune

appartient à un contexte spécifique. Nous pouvons citer :

La réalisation des modèles

Une bonne maîtrise du langage utilisé dans la modélisation et une expertise technique sont

nécessaires pour la réalisation des modèles. Plus les systèmes sont complexes, plus leurs

modèles le deviennent et plus leurs tailles deviennent importantes. Une bonne stratégie

technique (outils et supports) s’avère une tâche délicate pour réaliser et manipuler les

modèles.

Le stockage des modèles

Cette activité concerne les formats de stockage, l’organisation du stockage et la gestion des

métadonnées des modèles.

L’échange des modèles

Pour une bonne communication entre eux, les acteurs d’un projet doivent procéder à

l’échange de leurs modèles. Ces derniers doivent être compréhensibles par tous, au risque

d’exposer le système implémenté à des dégâts. L’échange de modèles prend en considération

les contraintes du format (sérialisation, transport, etc.), les contraintes de traduction ainsi que

celles d’interprétation de la sémantique pour leur interopérabilité.

L’interrogation des modèles

L’interrogation des modèles est l’activité qui permet de rechercher et de récupérer des

informations dans les modèles.

Page 28: Une approche basée transformation de graphes pour la génération

16

L’exécution des modèles

Cette étape va de la simulation du système à son exécution en temps-réel, en passant par

l’exécution symbolique et la génération du code.

La vérification des modèles

La vérification d’un modèle consiste à vérifier ses propriétés propres par rapport à ce que l’on

attend de lui. Cette vérification est syntaxique et sémantique. La vérification sémantique est la

plus complexe. Il existe différentes techniques pour procéder à la vérification d’un modèle,

avec chacune ses avantages et ses inconvénients. Nous citons: la technique de preuves qui

s’appuie sur les représentations formelles du système basées sur la logique, les automates, les

réseaux de Petri, etc. Une autre technique est le ‘’model-cheking’’ qui vise à analyser le

comportement du système tout en vérifiant des propriétés telles que la sûreté, l’atteignabilité

ou la vivacité. Cette technique apporte avec elle un risque d’explosion combinatoire du

nombre d’états dans le cas des systèmes complexes. Le test complète le model-cheking dans le

cas où ce dernier n’a pas été particulièrement efficace (cas de système très complexe).

La validation des modèles

La validation affirme ou non que le système implémenté répond aux besoins initiaux.

Certaines techniques de tests sont utilisables pour la vérification mais également pour la

validation. Les modèles génèrent des scénarios et des vecteurs de test de façon automatique

[Bernot91].

La gestion de l’évolution des modèles

Les modèles évoluent tout au long du cycle de développement du système. Ils peuvent être

corrigés ou modifiés en recevant d’autres fonctionnalités. Ces modifications sont

automatiquement répercutées sur les autres modèles impliqués.

1.3.2.7. Les approches de l’Ingénierie Dirigée par les Modèles (IDM)

L’IDM est un domaine basé sur les modèles et les technologies liées à leurs manipulations.

Pour la pratique, il existe plusieurs manières d’utiliser les modèles dans le processus de

développement d’un système. L’approche la plus développée et la plus utilisée est

L’Architecture Dirigée par les Modèles (MDA : Model Driven Architecture).

1.3.3. L’Architecture Dirigée par les Modèles (ADM)

L’Architecture Dirigée par les Modèles (ADM) est une approche de développement proposée

et soutenue par l’OMG (Object Management Group) [OMG04]. Pour des raisons de

productivité, l’approche ADM préconise l’utilisation de plusieurs modèles indépendants des

Page 29: Une approche basée transformation de graphes pour la génération

17

détails techniques de l’implémentation. Cette méthode consiste en l’élaboration et la

transformation de modèles tout au long du processus de développement d’un système. Ces

modèles ont pour objectif de simplifier la gestion de la complexité des systèmes en spécifiant

différents niveaux d’abstraction, aussi bien pour la vue globale du système que pour les

protocoles et les algorithmes. Ces modèles sont reliés par des liens de traçabilité et peuvent

être exprimés de façon textuelle ou graphique.

Le cycle de développement de l’approche ADM suit un processus en Y [Roques00] dont les

branches représentent les spécifications fonctionnelles du système et les spécifications

techniques de la plateforme. L’implémentation est la branche qui rassemble les deux

spécifications comme le montre la figure 1.3.

Figure 1.3 : Processus en Y d’une architecture ADM

1.3.3.1. Typologie des modèles dans l’approche ADM

L’approche ADM appelle à la réalisation de trois types de modèles [Bézivin02]: les modèles

d’exigences (CIM) qui sont indépendants de toute informatisation, les modèles d’analyse et

conception (PIM) qui sont indépendants de la plateforme et les modèles de code (PSM) qui

dépendent d’une plateforme cible.

Branche fonctionnelle Branche technique

CIM

PIM

PSM

Modèle de

plateforme

Page 30: Une approche basée transformation de graphes pour la génération

18

Modèles d’exigences CIM (Computation Independent Model)

La réalisation de ce modèle est la première étape dans le développement d’un système

puisqu’elle va permettre de modéliser toutes les exigences du client et définir les différentes

interactions qui impliqueront le système dans ses environnements interne ou externe. De ce

fait, le CIM sera considéré comme référence pour vérifier la conformité du système avec les

exigences du client.

Le CIM ne donne aucun détail sur la façon de la réalisation ou le fonctionnement du système

mais exprime clairement des liens de traçabilité avec les modèles futurs.

Modèle d’analyse et conception abstraite PIM (Platform Independent

Model)

Les modèles d’analyse et conception doivent être indépendants de toute plateforme

d’implémentation mais aussi contenir assez de détails pour permettre la génération

automatique du code. Ces modèles organisent le futur système en modules et sous-modules et

relient le premier modèle d’exigence CIM avec le code.

Modèle de description de plateforme PDM (Platform Description

Platform)

Les modèles PDM fournissent l’ensemble de concepts techniques liés à la plateforme

d’exécution et à ses services. Ils contiennent toutes les informations nécessaires à sa

manipulation.

Modèle de code PSM (Platform Specific Model)

Ces modèles facilitent la génération du code à partir de la combinaison des modèles d’analyse

et conception PIM et les modèles de plateforme PDM. Les PSM expriment, par exemple, les

événements, les composants, les instructions, les conditions, etc.

1.3.3.2. Transformations des modèles en ADM

L’ADM considère le processus de développement du système comme une suite successive et

stratégique de transformations de modèles. Ces transformations établissent de manière

automatique des liens de traçabilité entre les trois types de modèles discutés précédemment,

des transformations CIM vers PIM et PIM vers PSM dans cet ordre, ou inversement

[Czarnecki06]. La figure 1.4 montre ces transformations.

Page 31: Une approche basée transformation de graphes pour la génération

19

Figure 1.4 : Transformations de modèles en ADM

1.3.3.3. Quelques standards de l’ADM

L'approche ADM est liée à de nombreux standards, en 2013 nous pouvons citer :

■ UML (Unified Modeling Language) [OMGa] : Un langage visuel semi-formel pour la

modélisation des systèmes. Il permet de schématiser l’architecture, les solutions et les

vues avec des diagrammes augmentés de texte.

■ MOF (Meta-Object Facility) [OMGb] : Un standard de méta-modélisation constitué

d’un ensemble d’interfaces standards pour définir la syntaxe et la sémantique d’un

langage de modélisation, créé principalement pour définir la notation UML.

■ XMI (XML Metadata Interchange) [OMGe] : Un standard d’échange de métadonnées.

■ OCL (Object Constraint Language) [OMGd] : Un langage qui, intégré à UML, lui

permet de formaliser l’expression des contraintes.

■ SPEM (Software Process Engineering Metamodel) [OMGs] : Un processus de méta-

modélisation défini comme un profil UML.

■ CWM (Common Warehouse Metamodel) [OMGc] : Une interface basée sur UML,

MOF et XMI pour faciliter l’échange de métadonnées entre outils, plateformes et

bibliothèques de métadonnées dans un environnement hétérogène.

■ MOFM2T (MOF Model-to-Text language) [OMGm] : Une spécification utilisée pour

exprimer des transformations de modèles en texte.

■ QVT [QVT] : Un langage standard pour exprimer les transformations de modèles.

■ EDOC (Enterprise Distributed Object Computing) [OMGedc] : Une plateforme

standard basée sur UML pour simplifier le développement des composants dans un

environnement distribué.

Transformation

PSM - code

Transformation

PIM - PSM

PDM

PIM PSM Code

Raffinement de PSM Raffinement de PIM

Page 32: Une approche basée transformation de graphes pour la génération

20

1.3.3.4. Couches de l’Architecture ADM

L’OMG a organisé l’architecture ADM sur quatre couches de standards comme le montre la

figure 1.5. Le langage UML (Unified Modeling Language) se trouve au centre avec MOF

(Meta-Object Facility) et CWM (Common Warehouse Metamodel). Dans la couche qui suit

se trouvent des standards tels que XMI (XML Metadata Interchange) pour le dialogue entre

les plateformes (Java, CORBA, .NET et web services). La troisième couche se charge de la

gestion des évènements, la sécurité, les répertoires et les transactions. La dernière couche

concerne les plateformes spécifiques selon les domaines (télécommunication, commerce

électronique, etc.).

Figure 1.5 : Standards de l’architecture ADM

1.3.3.5. Méta-modélisation et MOF (Meta Object Facility)

L’objectif de la notion de méta-modélisation est de représenter les concepts des formalismes

utilisés lors de la modélisation. Pour l’ADM, la méta-modélisation joue un rôle fondamental

dans le processus de transformation de modèle d’un langage vers un autre : il s’agit de décrire

les constructions du langage source et leurs équivalents dans le langage cible, de manière

abstraite et indépendante.

D’autre part, l’OMG a défini la notion de méta-méta-modèle et a standardisé une architecture

générale décrivant les liens entre modèles, méta-modèles et méta-méta-modèles.

Espace

Finance

E-commerce

Télécommunication

Santé

Industrie

Transport

Plus..

Page 33: Une approche basée transformation de graphes pour la génération

21

L’OMG [OMG04] a organisé cette architecture en « 3+1 » niveaux comme montré sur le

tableau 1.1 :

Méta-méta-modèle Langage de spécification des méta-modèles.

Méta-modèle Définition du langage utilisé pour exprimer le modèle.

Modèle Abstraction du système.

Système réel Informations et flux de contrôle d’un domaine.

Tableau 1.1 : Les quatre niveaux de l’architecture ADM

Niveau M3 (MMM)

Dans l’approche ADM, le niveau M3 (ou méta-méta-modèle) est composé d’une seule

entité réflexive (auto-descriptive) appelée le MOF (MetaObject Facility [OMGf]),

permettant de décrire la structure des méta-modèles, d’étendre ou de modifier les

méta-modèles existants.

Niveau M2 (MM)

Le niveau M2 (ou méta-modèle) définit le langage de modélisation et la grammaire de

représentation des modèles M1. Ce niveau contient le méta-modèle UML qui définit la

structure interne des modèles UML ainsi que les profils UML qui étendent le méta-

modèle. Les concepts définis par un méta-modèle sont des instances des concepts du

MOF.

Niveau M1 (M)

Le niveau M1 (ou modèle) est composé de modèles d’informations. Il décrit les

informations de M0. Ce niveau contient les modèles UML, les PIM et les PSM. Les

éléments d’un modèle (M1) sont des instances des concepts décrits dans un méta-

modèle (M2).

Niveau M0

Le niveau M0 (ou instance) correspond au monde réel. Il ne s’agit pas d’un niveau de

modélisation proprement dit. Ce niveau contient les informations réelles de

l’utilisateur, c’est une instance du modèle du niveau M1.

Page 34: Une approche basée transformation de graphes pour la génération

22

M3 : Méta-méta-modèle

M2 : Méta-modèle

M1 : Modèle

M0 : Monde réel

Figure 1.6 : MOF et architecture à « 3+1 » niveaux

La figure 1.6 illustre l’utilisation de cette hiérarchie dans le cas de modèles décrits en UML.

Remarque : Dans la version 2.0 du standard MOF, il est indiqué que le nombre de niveaux de

modélisation utilisables est fléxible sur la base d’au moins 2 niveaux.

1.3.4. Autres approches basées sur les modèles

Il est à noter que l’approche ADM, bien qu’elle soit la plus importante, elle n’est pas la seule

à concentrer son activité sur l’utilisation des modèles. Nous pouvons trouver l’approche

CASE (Case Aided Software Engineering), l’approche MIC (Model-Integrated Computing)

[Davis03], les Software Factories [Greenfield04], etc, qui concentrent également leurs

activités sur les modèles.

1.4. Systèmes complexes

Un système complexe est un système composé d’un grand ensemble cohérent d’entités

hétérogènes, en interaction continue et simultanée. L’évolution et le comportement de ces

systèmes ne sont pas prédicables de façon directe, mais adoptent plutôt un comportement

dynamique dans le temps.

Un système complexe est caractérisé par les nombreuses relations qui s’établissent entre ses

éléments sur plusieurs niveaux hiérarchiques (le système est divisé en plusieurs sous-

systèmes). La complexité du système est dans la plupart des cas transparente pour l’utilisateur

final.

Un système complexe est caractérisé par les propriétés générées après l’interaction de ses

éléments. Des nouvelles propriétés, dites émergentes, peuvent alors se former.

Système réel

Méta-Modèle (en UML)

Modèle (en UML)

MOF

Page 35: Une approche basée transformation de graphes pour la génération

23

La difficulté dans la conception de ce type de systèmes réside dans le niveau de sûreté de leur

fonctionnement. D. Harel et A. Pnueli [Harel85] décrivent les systèmes complexes comme

étant des systèmes transformationnels et réactifs. Les systèmes réactifs sont les plus

compliqués à cause de leur interaction permanente avec un environnement qui impose sa

vitesse, et rend le système difficile à concevoir.

La complexité du système dépend du nombre et de la nature de ses éléments qui peuvent être

très nombreux et variables au cours du temps. Elle dépend également de la nature de son

organisation interne, variable à son tour et liée aux relations entre ses éléments. Le dernier

point concerne le couplage avec l’environnement. Plus l’interaction du système avec son

environnement est forte, plus il dépend de ses propriétés incertaines et imprévisibles.

La figure 1.7 présente un aperçu de l’ensemble d’activités et leur entrelacement dans un

système complexe. Cette figure montre la complexité rencontrée lors de la construction d’une

application. La figure montre qu’il y a beaucoup d’activités à réaliser dans un ordre qui n’est

pas précisé.

Page 36: Une approche basée transformation de graphes pour la génération

24

Figure 1.7 : Aperçu d’une partie des activités à réaliser durant la construction d’un système

1.5. Modélisation multi-paradigmes

Dans un système complexe, les composants et les aspects qui décrivent la structure et le

comportement sont toujours exprimés dans plusieurs formalismes. L’idée multi-paradigmes

est née du besoin de traitement de l’hétérogénéité des modèles dans ces systèmes. Cette

hétérogénéité des modèles se décline selon quatre axes : hétérogénéité des domaines,

hétérogénéité des niveaux d’abstraction, hétérogénéité des vues et hétérogénéité des activités.

Nous appelons modélisation multi-paradigmes [Vangheluwe02] ou modélisation hétérogène

la discipline qui a pour objectif de faciliter l’automatisation et l’utilisation conjointe de

modèles hétérogènes pendant le cycle de développement, de manière à rendre possible un

raisonnement global sur l’ensemble de ces modèles. Il est important de savoir que par rapport

au cycle de développement, la modélisation multi-paradigmes est une tâche transversale,

c’est-à-dire qu’elle s’applique aux différentes activités du cycle de développement telles que

la spécification, la simulation, la vérification, la génération de code ou encore le test.

Besoin Réutilisation

Evolution Analyse

Impact

Architecture

Réalisation

Séparation du

développement

Intégration

Tests

Solution Maintenance

Mise en production

Test de montée

en charge

Mise en pré-production

Page 37: Une approche basée transformation de graphes pour la génération

25

La notion de paradigme de modélisation désigne une façon de représenter le monde réel à

travers un ensemble de concepts. La notion de formalisme est différente de celle de paradigme

car le formalisme de modélisation est beaucoup plus précis. Un formalisme augmente

l’ensemble de ses concepts par une sémantique précise et un ensemble de règles d’écriture

(syntaxe concrète). Le formalisme désigne une convention de notation, et peut s’appuyer sur

un ou plusieurs paradigmes de modélisation. Un paradigme de modélisation à son tour peut

avoir différents formalismes associés.

Plusieurs approches sont disponibles pour traiter la diversité de formalismes :

L’approche super-formalisme

Cette approche ne peut être appliquée dans le cas des systèmes complexes. Elle

consiste à utiliser un seul formalisme générique pour un ensemble de langages de

modélisation et de formalismes nécessaires à la description d’un système. Parmi les

exemples de super-formalisme, nous trouvons Bond Graphs pour les domaines de la

mécanique et les domaines éclectiques et hydrauliques.

L’approche co-simulation

La co-simulation est une simulation simultanée de différents composants d’un système

et leurs interactions. Les aspects et les composants du système sont modélisés en

utilisant le formalisme et l’outil d’analyse adéquat. L’évaluation et la vérification du

comportement global du système sont effectuées généralement par une technique de

co-simulation. Chaque modèle de composants est simulé avec un simulateur

spécifique et l’interconnexion est assurée via des fonctions d’interface. L’échange de

données d'entrée/sortie s’effectue à travers l’environnement de co-simulation. Dans

cette approche, l'évaluation des propriétés globales d'un système ne peut se faire qu’au

niveau des entrées/sorties entre ses composants. Par conséquent, il est impossible

d’analyser le comportement global du système en utilisant les techniques des

méthodes formelles qui pourraient être effectuées pour chaque composant séparément.

L’approche multi-formalismes

La modélisation multi-formalismes englobe les deux autres approches: super-

formalisme et co-simulation. Dans cette approche, chaque composant est modélisé

dans le formalisme adapté mais le comportement global du système est évalué en

transformant les modèles des composants vers un formalisme unique.

Le choix du formalisme cible dépend des propriétés du système que nous souhaitons

étudier, et des propriétés qui doivent être préservées par les transformations.

Pour pouvoir appliquer la modélisation multi-formalismes, nous devons résoudre le

problème de l’interopérabilité et l’interconnexion des différents outils conçus pour les

Page 38: Une approche basée transformation de graphes pour la génération

26

formalismes utilisés dans le processus de conception. Dans certains cas, nous sommes

contraints d’utiliser des formalismes spécifiques au domaine, avec leurs outils de

modélisation et d’analyse de comportement. La réalisation de ces outils est

relativement complexe et coûteuse en termes de temps et d’argent. C’est à partir de ce

constat que les chercheurs ont été amenés à développer la méta-modélisation.

Pour la méta-modélisation, des outils d’une nouvelle génération ont été mis au point

pour que les formalismes de modélisation soient soumis eux-mêmes aux techniques de

modélisation. Ces outils sont appelés des méta-outils, ils permettent de générer des

outils personnalisés pour les formalismes, en se basant sur les informations de leurs

méta-modèles. En résumé, développer un outil pour supporter un formalisme revient à

définir son méta-modèle.

1.5.1. Techniques de modélisation multi-paradigmes

Le but de la modélisation multi-paradigmes est de faciliter et automatiser l’utilisation

conjointe de modèles pendant le cycle de développement. La modélisation multi-paradigmes

est traitée selon les approches suivantes :

Approches spécifiques

Plusieurs approches combinent des paradigmes particuliers afin de résoudre les

problèmes liés à l’hétérogénéité des temps et des modes de synchronisation. Nous

appelons ces approches « approches spécifiques » car elles permettent de résoudre le

problème de l’hétérogénéité de manière adaptée, en permettant la combinaison de

quelques paradigmes de modélisation particuliers.

Hétérogénéité des temps

Les approches de modélisation des systèmes hybrides ont incité à l’étude des

combinaisons basées sur le temps continu et le temps discret dans les modèles.

Hétérogénéité des modes de synchronisation

Plusieurs approches adressent les problèmes liés aux systèmes globalement

asynchrones ou localement asynchrones.

Dans le cadre de l’Ingénierie Dirigée par les Modèles, le nombre des langages et des

paradigmes de modélisation différents tend à croître exponentiellement. De ce fait,

nous ne pouvons considérer ces approches comme généralistes ou flexibles.

Page 39: Une approche basée transformation de graphes pour la génération

27

Spécification de la syntaxe et de la sémantique des langages de modélisation

Afin de pouvoir traiter un ensemble variable de langages de modélisation différents, il

est nécessaire de pouvoir capturer facilement la syntaxe et la sémantique des langages

de modélisation. La méta-modélisation est la clé de cette problématique car elle

permet de manipuler des langages de modélisation, et décrit en même temps la syntaxe

abstraite. Pour définir ensuite la sémantique des concepts ainsi spécifiés, il existe

différentes approches :

Kermeta

La technique Kermeta permet d’attribuer au langage une sémantique

exécutable en définissant des méthodes avec une sémantique impérative sur les

éléments du méta-modèle. Ainsi, chaque élément du méta-modèle est pourvu

d’une méthode d’exécution.

La méthode d’exécution d’un élément peut contenir des appels aux méthodes

d’exécution d’autres éléments avec lesquels il est en relation. Ces opérations,

définies au niveau méta permettent alors d’exécuter n’importe quel modèle qui

est conforme au méta-modèle du langage.

Semantic Units (SUs)

Littéralement « unité de sens », une Semantic Unit permet de donner une

sémantique opérationnelle à un langage lorsqu’elle est associée au méta-

modèle représentant la syntaxe abstraite de ce langage.

Une Semantic Unit est composée d’un modèle de données abstrait et un

ensemble de règles opérationnelles manipulant les éléments définis dans le

modèle de données.

Modèles de calcul (Models of Computation – MoCs)

Un modèle de calcul est un ensemble de primitives sémantiques communes à

plusieurs langages de modélisation.

Par exemple, les langages basés sur le principe des processus séquentiels

communiquant par rendez-vous font appel au même modèle de calcul

(Communicating Sequential Processes – CSP), même s’ils présentent des

variantes. De même, les langages basés sur le principe des flots de données

synchrones font appel à un autre modèle de calcul (Synchronous DataFlow –

SDF). En résumé, chaque modèle de calcul permet de caractériser une classe de

langages de modélisation.

Page 40: Une approche basée transformation de graphes pour la génération

28

L’avantage majeur de cette approche pour la modélisation multi-paradigmes

est que la syntaxe abstraite utilisée est unique : c’est donc la même pour tous

les modèles, la sémantique d’un modèle étant donnée par le domaine qui lui est

associé. Ainsi, deux modèles M1 et M2 syntaxiquement identiques pourront

avoir deux sémantiques différentes s’ils sont associés aux directeurs de deux

domaines différents D1 et D2.

Dans les approches que nous avons vues, un méta-modèle différent (une syntaxe abstraite

différente) peut être défini pour chaque langage de modélisation différent. Dans le contexte de

la modélisation multi-paradigmes, la composition de langages ainsi définie devra donc se faire

à la fois au niveau de la syntaxe et aussi au niveau de la sémantique. Le fait d’avoir une

syntaxe abstraite commune pour tous les langages facilite grandement la composition.

1.5.2. Axes de la modélisation multi-paradigmes

La modélisation multi-paradigmes est une activité multidisciplinaire dans sa définition. Elle

implique des intervenants dans multiples domaines tels que l’automatique, le traitement de

signal, l’ingénierie des langages de modélisation, la vérification formelle, etc. Dans cette

section, nous passons en revue les trois directions de recherche (figure 1.8) qu’occupe la

modélisation multi-paradigmes ainsi que le lien entre ces directions.

Modélisation multi-abstractions: La relation entre des modèles à des niveaux

d’abstraction différents.

Modélisation multi-formalismes: Le couplage et la transformation entre des modèles

décrits dans plusieurs formalismes.

Méta-modélisation: La description des formalismes et des langages de modélisation.

Figure 1.8 : Les trois axes de la modélisation multi-paradigmes

Méta-méta- modèle

Haut Bas

Formalisme2

Formalisme1

Formalismes

Modèle

Méta- modèle Méta- modèle

Niveaux d’abstraction

Niveaux Métas

Page 41: Une approche basée transformation de graphes pour la génération

29

Modélisation multi-abstractions

Un système peut être défini par un nombre indéfini de modèles, chacun utilisé pour

aider à répondre à une question particulière sur le système. Les systèmes sont alors

représentés sous plusieurs aspects et à différents niveaux d’abstraction ou de détails.

Les différents niveaux d’abstraction sur lesquels les différents composants du système

sont distribués dépendent principalement des besoins des concepteurs. Un niveau

d’abstraction est désigné par les informations qu’il offre sur le système, les questions

auxquels il peut répondre, le degré de précision et les compétences des concepteurs

eux-mêmes.

Il ne faut pas confondre niveau d’abstraction et niveau de précision. Le niveau

d’abstraction est le fait de pouvoir masquer dans une vue certaines informations

inutiles pour les besoins de ce niveau. Par exemple, il n’est pas intéressant de montrer

les détails techniques de l’implémentation dans la vue des données.

Il est important de savoir que l’abstraction ne dégrade pas la complexité du système,

elle permet uniquement de la contourner pour appréhender des préoccupations

particulières. Les changements de niveaux d’abstraction impliquent l’utilisation de

différents formalismes. Ces changements peuvent être vus comme un processus de

transformation qui préserve certaines propriétés du système, généralement

comportementales.

Automatiser le processus de changement de niveaux d’abstraction est une nécessité

pour le développeur contraint à basculer d’un niveau d’abstraction à un autre pour

maîtriser et comprendre tous les détails du système. Pour atteindre ce but, il faut

modéliser ces transformations, puis utiliser ces modèles de transformation pour

automatiser les opérations d’abstraction ou de raffinement.

La figure 1.9 illustre l’opération de changement de niveaux d’abstraction dans la méta-

modélisation multi-paradigmes.

Page 42: Une approche basée transformation de graphes pour la génération

30

Figure 1.9 : Abstraction et raffinement dans la modélisation multi-paradigmes

Modélisation multi-formalismes

Il est très difficile, voire impossible de modéliser tous les aspects et tous les

composants d’un système avec un seul formalisme ou un seul modèle [Milner93]. Au

contraire, pour couvrir tous les aspects d’un système, nous avons besoin de construire

plusieurs modèles exprimés dans plusieurs formalismes différents.

Nous pouvons introduire plusieurs catégories de formalismes dans le processus de

développement. Le choix d’un formalisme adapté à un objectif spécifique est

orthogonal à la sélection du niveau d'abstraction dans lequel le modèle sera décrit. Les

changements de formalismes peuvent provoquer un changement de niveau

d’abstraction.

Les formalismes choisis dépendent des points suivants:

Niveau d’abstraction.

Disponibilité des données utilisées pour construire le modèle.

Disponibilité d’analyseurs et simulateurs associés au formalisme.

Objectif de la modélisation.

L’intérêt de la modélisation multi-formalismes est de permettre l’utilisation de

plusieurs formalismes pour gérer plusieurs modèles écrits dans ces formalismes [De

Lara02].

La figure 1.10 illustre l’opération de transformation de modèles dans la modélisation

multi-paradigmes.

Formalisme1

Bas Niveaux d’abstraction

Formalismes

Méta- modèle

Abstraction

Raffinement

Modèle

Méta-méta-modèle

Haut

Niveaux Métas

Page 43: Une approche basée transformation de graphes pour la génération

31

Figure1.10 : Transformation de modèle dans la modélisation multi-paradigmes

La méta-modélisation

La méta-modélisation est l’activité qui consiste à définir le méta-modèle d’un langage

de modélisation. Le méta-modèle est une représentation dans un niveau supérieur des

différents concepts utilisés dans les différents formalismes ou langages de

modélisation.

Les environnements de méta-modélisation permettent de définir des méta-modèles

pour les formalismes ou les langages de modélisation, et ensuite d’exploiter ces méta-

modèles pour générer des outils pour la modélisation.

La modélisation multi-paradigmes peut être interprétée comme une généralisation de

la modélisation multi-formalismes, augmentée par la méta-modélisation. Elle a pour

but de faciliter l’utilisation conjointe de modèles des systèmes décrits dans plusieurs

formalismes ou langages.

1.6. Les transformations de Graphes

Les graphes représentent un outil graphique et direct pour la visualisation de la structure

complexe d’un système. C’est un outil pratique et intuitif pour la modélisation. Les

diagrammes UML ou les réseaux de Petri sont des exemples très pratiques de graphes de

modélisation.

Formalisme2

Bas

Formalisme2

Formalisme1

Niveaux d’abstraction

Formalismes

Méta- modèle

Transformation

Modèle

Méta-méta-modèle

Haut

Niveaux Métas

Page 44: Une approche basée transformation de graphes pour la génération

32

1.6.1. Définitions et propriétés des graphes

Un graphe est constitué d’un ensemble de sommets reliés par des arêtes. Deux sommets reliés

par une arête sont adjacents.

L'ordre d'un graphe est le nombre de ses sommets.

Le degré d'un sommet est le nombre d'arêtes dont ce sommet est une extrémité.

La figure 1.11 illustre un exemple de graphe non orienté, d’ordre 5.

Figure 1.11 : Graphe non orienté

Un sous-graphe d'un graphe G est un graphe G' composé de certains sommets de G, ainsi que

de toutes les arêtes qui relient ces sommets. La figure 1.12 illustre un exemple où le graphe

(b) est un sous-graphe du graphe (a).

Figure 1.12 : Graphe (a) et sous-graphe (b)

Un graphe orienté est un graphe dont les arêtes sont munies de directions : nous parlons alors

de l'origine et de l'extrémité d'une arête. Dans un graphe orienté, une arête est appelée« arc ».

La figure 1.13 illustre un exemple de graphe orienté.

(a)

a

e

b

c

f

d e

c

f

d

(b)

Page 45: Une approche basée transformation de graphes pour la génération

33

Figure 1.13 : Exemple de graphe orienté

Un graphe étiqueté est un graphe orienté, dont les arcs sont munis d'étiquettes. Si toutes les

étiquettes sont des nombres positifs, on parle de graphe pondéré. La figure 1.14 illustre un

exemple de graphe orienté étiqueté.

Figure 1.14 : Exemple de graphe orienté et étiqueté

Un graphe attribué est un graphe qui peut contenir un ensemble prédéfini d’attributs.

1.6.2. Les relations entre les graphes

Homomorphisme

Un homomorphisme d’un graphe L vers un graphe G est une application

H : L → G qui préserve les arcs et les étiquettes.

Isomorphisme

Un isomorphisme entre deux graphes G et G’ est un homomorphisme bijectif

I: G → G’ (I-1

existe).

1

4

3

2

Page 46: Une approche basée transformation de graphes pour la génération

34

Homomorphisme de sous graphe

Pour les deux graphes L et G, un homomorphisme de sous graphe est un

homomorphisme totale de L vers G (tous les éléments de L sont tracés à des éléments

dans G)

Isomorphisme de sous graphe

Un isomorphisme de sous graphe de L vers G est un homomorphisme de sous graphe

total et injectif. Dans ce cas, L est un sous graphe de G et nous écrivons : L ⊆ G.

Occurrence

Il existe une occurrence de L dans G s’il existe un homomorphisme ou un

isomorphisme de sous graphe de L vers G.

Voisinage

L’expression voisinage de L est utilisée pour se rapporter aux nœuds et aux arcs reliant

l’occurrence de L et G.

Graphe de contexte

Un graphe de contexte est le graphe obtenu en enlevant l’occurrence de L et tous les

arcs de son voisinage à partir de G. De même, les arcs et les sommets de contexte sont

les arcs et les sommets du voisinage de L.

1.6.3. Principe de transformation de graphes

Les approches de réécriture classiques comme les grammaires de Chomsky ou la réécriture de

termes manquent d’expressivité. Les transformations de graphes ont évolué pour y remédier.

Le processus de transformation de graphes [Karsai04, Andries99, Rozenberg99] consiste en

l’application itérative d’une règle à un graphe. Chaque application de règle remplace une

partie du graphe par une autre suivant la définition de la règle. La mécanique de la

transformation de graphe fonctionne de la façon suivante : sélectionner une règle applicable

de l’ensemble des règles ; appliquer cette règle au graphe d’entrée ; rechercher une autre règle

applicable (réitération) jusqu'à ce qu’aucune règle ne puisse plus être appliquée. Cette

opération est basée sur un ensemble de règles respectant une syntaxe particulière, appelé

modèle de grammaire de graphe.

Un modèle de grammaire de graphe est une généralisation des grammaires de Chomsky. C’est

une composition de règles où chaque règle possède deux parties : une partie gauche (LHS :

Left Hand Side) et une partie droite (RHS : Right Hand Side). La partie gauche LHS

correspond au graphe d’entrée (appelé aussi Host Graph) [Rozenberg99]. La règle compare à

Page 47: Une approche basée transformation de graphes pour la génération

35

chaque fois qu’elle est invoquée son LHS avec le graphe sur lequel nous appliquons la

transformation. La règle remplace l’équivalent de son LHS dans le graphe à transformer par

sa partie droite RHS. Le RHS décrit la modification du host graph.

La figure 1.15 illustre le principe de déroulement de la grammaire dans le processus de

transformation de graphes.

Figure 1.15 : Principe d’exécution des règles

1.6.4. Grammaire de graphe

Une grammaire de graphe [Andries99] est généralement définie par un triplet:

GG = (P, S, T)

Où :

P : ensemble de règles.

S : un graphe initial.

T : ensemble de symboles.

Une grammaire de graphes distingue les graphes non terminaux, qui sont les résultats

intermédiaires sur lesquels les règles sont appliquées, des graphes terminaux sur lesquels on

ne peut plus appliquer aucune règle. Ces derniers sont dans le langage engendré par la

grammaire de graphe [Kerkouche08, Kerkouche09a]. Pour vérifier si un graphe G est dans le

langage engendré par une grammaire de graphe, il doit être analysé. Le processus d’analyse

va déterminer une séquence de règles dérivant G.

Déroulement

Règle1

Action initiale

Action finale

Règle2

Règle n

1

2

N

Page 48: Une approche basée transformation de graphes pour la génération

36

1.6.4.1. Principe de déroulement de règles

Une règle de transformation de graphe est définie par :

R= (LHS, RHS, K, glue, emb, cond)

• LHS graphe de partie gauche.

• RHS graphe de partie droite.

• Un sous graphe K de LHS.

• Une occurrence glue de K dans RHS qui relie le sous graphe avec le graphe de partie

droite.

• Une relation d’enfoncement emb qui relie les sommets du graphe de la partie gauche

et ceux du graphe de la partie droite.

• Un ensemble cond qui indique les conditions d’application de la règle.

L’application d’une règle R= (LHS, RHS, K, glue, emb, cond) à un graphe G produit en

résultat un graphe H suivant les cinq étapes suivantes :

1. Choisir une occurrence du graphe de partie gauche LHS dans G.

2. Vérifier les conditions d’application d’après cond.

3. Retirer l’occurrence de LHS (jusqu’à K) de G ainsi que les arcs pendillés (tous les arcs

ayant perdu leurs sources et/ou leurs destinations). Ce qui fournit le graphe de

contexte D de LHS qui a laissé une occurrence de K.

4. Coller le graphe de contexte D et le graphe de partie droite RHS suivant l’occurrence

de K dans D et dans RHS, c’est la construction de l’union de disjonction de D et RHS,

et pour chaque point dans K, identifier le point correspondant dans D avec le point

correspondant dans RHS.

5. Enfoncer le graphe de partie droite dans le graphe de contexte de LHS suivant la

relation d’enfoncement emb : pour chaque arc incident retiré avec un sommet v dans D

et avec un sommet v’ dans l’occurrence de LHS dans G, et pour chaque sommet v’’

dans RHS, un nouvel arc incident est établi (même étiquette) avec l’image de v et le

sommet v’’ à condition que (v’, v’’) appartient à emb.

L’application de R à un graphe G pour fournir un graphe H est appelée une dérivation directe

depuis G vers H à travers R, elle est dénotée par G ⇒ H.

Plusieurs formalismes permettent de représenter les règles de transformation. Une

transformation visuelle est illustrée dans la figure 1.16.

Page 49: Une approche basée transformation de graphes pour la génération

37

Figure 1.16 : Application d’une règle de transformation

1.6.5. Système de transformation de graphes

On définit un système de transformation de graphes [Rozenberg99] comme un système de

réécriture de graphe qui applique les règles de la grammaire de graphe sur son graphe initial

de façon itérative jusqu’à ce que plus aucune règle ne soit plus applicable. La figure 1.17

illustre le principe du système de réécriture de graphes.

Figure 1.17 : Système de réécriture de graphe

Parmi les avantages de cette approche :

Les grammaires de graphes sont un formalisme visuel, formel et de haut-niveau pour

décrire les transformations.

Les fondements théoriques des systèmes de réécriture de graphes aident à vérifier

certaines propriétés des transformations telles que la terminaison ou la correction.

Output Input

Input

Application de R1

LHS RHS

R1

Règles de

transformation

Graphe source Graphe cible Système de

transformation

Page 50: Une approche basée transformation de graphes pour la génération

38

En donnant les notions de règles et de dérivations directes comme étant les concepts de base

de la transformation de graphes, nous pouvons définir les systèmes de transformation de

graphes, les grammaires de graphes et la notion de langages engendrés.

Un système de transformation de graphes : Un ensemble P de règles.

Une grammaire de graphe : Un ensemble P de règles muni d’un graphe initial

S et d’un ensemble T de symboles terminaux.

Langage engendré : Soit un ensemble donné de règles P et un graphe G0 : Une

séquence de transformations de graphe successive : G0⇒ G1⇒ … ⇒ Gn est une

dérivation de G0 vers Gn par les règles de P. G0 est le graphe initial et Gn est le

graphe dérivé de la séquence de transformation. L’ensemble des graphes

dérivés à partir d’un graphe initial S en appliquant les règles de P qui sont

étiquetées par les symboles de T, est dit langage engendré par P, S et T, noté L

(P, S, T).

1.6.6. Approches et outils de transformations de graphes

Actuellement, plusieurs approches et outils ont été développés pour la transformation de

graphes, nous citons : VIATRA, ATOM3, GreAT, UMLX, BOTL, plugins d’Eclipse, etc.

Elles permettent toutes la génération d'un graphe orienté étiqueté cible à partir d’un autre

graphe source en utilisant une grammaire bien définie.

AToM3

AToM3 (A Tool for Multi-formalism and Meta-Modelling) [DeLara02] est un outil de

transformation de modèles écrit en Python. Cet outil sert pour la modélisation, la

méta-modélisation et la transformation de modèles en utilisant les concepts des

grammaires de graphes. La spécification de formalisme présente des règles qui

construisent les modèles. Ces modèles sont représentés dans un éditeur graphique.

AToM3 [AToM3] possède donc une couche de méta-modélisation qui lui permet une

modélisation graphique des différents formalismes. À partir de la méta-spécification

(établie dans le modèle entité-association), AToM3 génère un outil pour la

manipulation des différents modèles décrits dans le formalisme spécifié.

PROGRES

PROGRES [Schürr99, Ranger08] (Programmed Graph Rewriting Systems) figure

parmi les premiers outils à avoir permis les transformations de graphes. Il a été

développé en Allemagne à l’université d’Aachen. Cet outil repose sur l’approche

orientée logique des grammaires de graphes. Les règles sont décrites de manière

visuelle par une partie gauche et une partie droite.

Page 51: Une approche basée transformation de graphes pour la génération

39

FUJABA

FUJABA [Burmester04], (From UML to Java and Back Again) utilise UML comme

langage de modélisation visuel, et a pour but de fournir un environnement de

génération de code Java et de rétro-conception. FUJABA s’est développé et est devenu

actuellement une base pour plusieurs activités de recherche, notamment dans le

domaine des applications distribuées, les systèmes de bases de données ainsi que dans

le domaine de la modélisation et de la simulation des systèmes mécaniques et

électriques.

VIATRA2

VIATRA2 (Visual Automated model TRAnsformations) [Varró06] est un plugin

Eclipse développé en 2005 à Budapest. Le logiciel utilise un langage de modélisation

particulier pour représenter les modèles appelé VPM [Varró03]. Le développeur utilise

des motifs récursifs et des motifs de négations représentant les conditions

d’application négatives pour définir les règles de transformation. Cet outil permet

l’ordonnancement dans l’application des règles à l’aide d’une machine à états.

GReAT

GReAT (Graph Rewriting and Transformation) [Balasubramanian06] utilise

principalement une notation graphique pour définir les règles de transformation. Ces

transformations sont unidirectionnelles de plusieurs modèles sources vers plusieurs

modèles cibles. Ces modèles sont conformes à des méta-modèles spécifiés, et peuvent

être créés avec l’outil de méta-modélisation GME.

Cependant, certaines parties sont spécifiées textuellement comme les expressions

d’initialisation des attributs et les conditions d’application.

AGG

AGG (Attributed Graph Grammar system) [AGG06, Taentzer03] est un outil réalisé à

l'Université Technique de Berlin (Technische Universität Berlin) et développé depuis

1997.C’est l’un des outils de transformation de graphes les plus aboutis et les plus

cités dans la littérature.

AGG est écrit en langage de programmation Java. Il offre une interface graphique

permettant de construire les graphes et les règles de transformation, et de réaliser des

simulations pas à pas et quelques vérifications élémentaires. Les graphes considérés

sont orientés et possèdent des nœuds et des arcs étiquetés par des objets Java.

Page 52: Une approche basée transformation de graphes pour la génération

40

GME (Generic Modeling Environment)

GME [GME] pour Environnement de Modélisation Générique est une suite d’outils

pour la création de langages de modélisation et de modèles. La configuration se fait à

travers des méta-modèles qui spécifient le paradigme de modélisation du domaine

d’application.

Le méta-modèle est basé sur le diagramme de classe UML et la notation OCL.

GME s’intègre à l’environnement de développement Visual Studio et .NET 2003 de

Microsoft. La définition de la sémantique des langages de modélisation, et donc la

sémantique des modèles manipulés, n’est pas supportée directement : l’interprétation

sémantique des modèles doit être réalisée dans une phase aval.

GMT (Generative Modeling Technologies)

Le but du projet « Technologies de modélisation générative » [GMT] d’Eclipse est de

produire un ensemble de prototypes dans le domaine de l'Ingénierie Dirigée par les

Modèles (IDM).

Le projet de modélisation Eclipse concentre son activité sur l'évolution et la promotion

des technologies de développement basées sur les modèles au sein de la communauté

Eclipse, en proposant un ensemble unifié de plateformes de modélisation, d’outils et

des contrôle des normes.

EMF (Eclipse Modeling Framework)

Le projet EMF [EMF] est un plugin Eclipse. C’est une plateforme de modélisation et

de génération de code pour la construction d’outils et d'applications basés sur un

modèle de données structurées. À partir d'un modèle décrit dans la spécification XMI,

EMF fournit des outils et un support d'exécution pour produire un ensemble de classes

Java pour le modèle, avec un ensemble de classes particulières qui permettent de

visualiser et commander l’édition du modèle, et un éditeur de base.

GEF (Graphical Editing Framework)

La plateforme d’édition graphique GEF [GEF] appartient à Eclipse. GEF fournit une

technologie pour créer des éditeurs graphiques riches et des vues pour l’interface

utilisateur Eclipse Workbench.

GMF (Graphical Modeling Framework)

Le Runtime GMF [GMF] est une plateforme d'application pour créer des éditeurs

graphiques en utilisant EMF et GEF.

Page 53: Une approche basée transformation de graphes pour la génération

41

Le Runtime GMF offre de nombreuses fonctionnalités que l'on aurait à coder à la main

si nous utilisions EMF et GMF directement.

Un ensemble de composants réutilisables pour les éditeurs graphiques, tels que

l'impression, l’exportation d'images, les actions et les barres d'outils, etc.

Un modèle standardisé pour décrire les éléments des diagrammes qui séparent la

sémantique (domaine) de la notation des éléments (diagrammes).

Une infrastructure de commande qui lie les différentes commandes de la

plateforme utilisée par les EMF et GEF.

Une plateforme extensible qui permet aux éditeurs graphiques d’être ouverts et

extensibles.

ATL (Langage de Transformation ATLAS)

ATL est un outil et un langage de transformation de modèles sous l’environnement

Eclipse. Dans le cadre de l’Ingénierie Dirigée par les Modèles (IDM), ATL propose

une méthode pour produire un ensemble de modèles cibles à partir d’un ensemble de

modèles sources. Le programme de transformation est composé de règles qui

définissent la manière dont les éléments du modèle source sont traités et analysés afin

d’obtenir des éléments du modèle cible.

Java et l’environnement Eclipse

Le langage de programmation Java est un langage orienté objet où les codes et les

données sont manipulés dans une même classe. Cette manière de programmer facilite

l’écriture et la maintenance du code. On peut développer une partie d’un programme

sans qu’il soit nécessaire de connaître les détails d’implémentation des autres parties.

La sémantique du langage Java est indépendante de la plateforme et donc un

programme écrit en Java fonctionne de manière indépendante de l’architecture

matérielle. Le compilateur Java, dans notre cas Eclipse, compile le code source à

moitié pour obtenir un code intermédiaire bytecode. Le bytecode sera compilé en

langage machine lors de l’exécution par la machine virtuelle JVM (Java Virtual

Machine).

Pour développer l’outil de notre approche, nous avons utilisé Eclipse qui est un

environnement de développement multi-langages, extensible et polyvalent. Cet outil

est défini comme un EDI (Environnement de Développement Intégré) ou comme une

plateforme.

La figure 1.18 présente un aperçu de l’environnement Eclipse.

Page 54: Une approche basée transformation de graphes pour la génération

42

Figure 1.18 : Environnement Eclipse

1.7. Conclusion

Ce chapitre nous place dans le contexte de cette thèse. Nous avons défini les principes de base

de l’IDM et le rôle central des modèles. Nous avons également discuté les difficultés

concernant leur manipulation, leur qualité et leur adaptation. Nous avons survolé les

techniques de transformation et de traitement de ces modèles. Nous avons également présenté

la méta-modélisation dans le domaine IDM et précisément l’approche ADM, avec ce qu’elle

apporte aux systèmes complexes. Dans la deuxième partie de ce chapitre, nous avons étudié

les concepts de la modélisation multi-paradigmes et les transformations de graphes. À la fin,

nous avons passé en revu quelque approches et outils pour la transformation de modèles.

Page 55: Une approche basée transformation de graphes pour la génération

43

Chapitre 2 :

Modélisation semi-formelle avec UML 2.0

Page 56: Une approche basée transformation de graphes pour la génération

44

Chapitre 2

Modélisation semi-formelle avec UML 2.0

2.1. Introduction

La tâche de conception des systèmes a toujours besoin d’un langage ou d’une méthode de

spécification et de modélisation pour créer et analyser des modèles et communiquer avec les

collaborateurs et les clients.

L’approche orientée objet considère le logiciel comme une collection d’objets dissociés et

identifiés, définis par des propriétés. Une propriété est soit un attribut soit une entité

élémentaire comportementale de l’objet. La fonctionnalité du système émerge alors de

l’interaction entre les différents objets qui le constituent. L’une des particularités de cette

approche est qu’elle encapsule les données et leurs traitements associés au sein d’un unique

objet. Un objet est caractérisé par plusieurs notions, et c’est dans ce contexte que nous

présentons quelques éléments du langage UML 2.0 (Unified Modeling Language) [UML2],

qui s’est imposé comme un standard que rencontrent tous les développeurs dans l’industrie du

génie logiciel.

2.2. Historique des méthodes de conception

De nombreuses méthodes de développement ou d’analyse de logiciel ont été développées

depuis les années 80. Ces méthodes apportent à chaque fois des progrès considérables et des

solutions à des problèmes ou des contraintes différentes.

Ces méthodes correspondent à un ou plusieurs moyens (plus ou moins formels) de notation ou

représentation des résultats. Ceux-ci peuvent être graphiques (diagrammes synoptique, plans

physique d’un réseau, organigrammes..) ou textuels (expressions d’un besoin en langage

naturel, listings du code source..).

Dans les années 90, un certain nombre de méthodes orientées objet ont émergé, en particulier

les méthodes :

– OMT de James RUMBAUGH [Rum96].

– BOOCH de Grady BOOCH [Boo94].

– OOSE (Object Oriented Software Engineering) de Ivar JACOBSON à qui on doit

les diagrammes de cas d’utilisation [JCJO92].

Page 57: Une approche basée transformation de graphes pour la génération

45

En 1994, on comptait plus de 50 méthodes orientées objet. C’est dans le but de remédier à

cette dispersion que les chercheurs de la méthode orientée objet ont décidé de se regrouper

autour d’un standard.

En octobre 1994, Grady Booch et James Rumbaugh se sont réunis au sein de la société

RATIONAL dans le but de travailler à l’élaboration d’une méthode commune qui intègre les

avantages de l’ensemble des méthodes reconnues, en corrigeant les défauts et en comblant les

manques. Lors de la conférence OOPSLA’95 (Object Oriented Programming Systems,

Languages and Applications, la grande conférence de la programmation orientée objet), ils

présentent UNIFIED METHOD V0.8. En 1996, Ivar Jacobson les rejoint. Leurs travaux ne

visent plus à constituer une méthode, mais un langage.

Leur initiative a été soutenue par de nombreuses sociétés, que ce soit des sociétés de

développement (dont Microsoft, Oracle, Hewlet-Packard, IBM – qui a apporté son langage de

contraintes OCL, etc.) ou des sociétés de conception d’ateliers logiciels.

Un projet a été déposé en janvier 1997 à l’OMG en vue de la normalisation d’un langage de

modélisation. Après amendement, celui-ci a été accepté en novembre 97 par l’OMG sous la

référence UML-1.1. La version d’UML en cours à la fin 2006 est UML 2.0 et les travaux

d’amélioration se poursuivent.

On ne peut donc considérer UML comme étant uniquement un outil intéressant, mais il est

également une norme et un standard en technologie à objets à laquelle se sont liés tous les

grands acteurs du domaine, qui ont d’ailleurs contribué à son élaboration.

La figure 2.1 montre l’historique de constitution du langage UML.

Figure 2.1 : Historique de constitution du langage UML

Fin 2004

Révision 9/97

Soumission à l’OMG 1/97

Version béta OOPSLA 96

OOPSLA95

Temps UML 2.0

UML 1.1

UML 1.0 OCL (IBM)

UML 0.9

Unified Method 0.8

OOSE OMT-2 Booch’93

OMT Booch

Page 58: Une approche basée transformation de graphes pour la génération

46

2.3. Méthode versus Langage de modélisation

Une méthode de conception est définie comme une démarche d’organisation qui a pour

objectif de résoudre un problème spécifique. La méthode de conception utilise un formalisme

ou un langage pour exprimer le résultat.

UML n’est pas une méthode, mais un langage. Il peut donc être utilisé sans prendre en compte

la méthode de conception adoptée par l’entreprise.

La société RATIONAL (principale actrice d’UML) propose son propre processus de

conception appelé OBJECTORY [JBR97a] qui est entièrement basé sur UML. UML facilite

donc la communication entre clients et développeurs, ainsi qu’entre équipes de développeurs.

De plus, sa sémantique semi-formelle accélère le développement des outils graphiques

d’atelier de génie logiciel, permettant ainsi d’aller de la spécification (haut-niveau) en UML

vers la génération de code (JAVA, C++, ADA, ...). Cela autorise l’échange électronique de

documents qui deviennent des spécifications exécutables en UML.

UML ne se contente pas de composer des formalismes déjà existants, mais apporte également

de nouvelles approches telles que la modélisation d’architectures distribuées ou la

modélisation d’applications temps-réel avec gestion du multitâches, etc.

2.4. Avantages de la modélisation Objet

La différence entre une approche fonctionnelle et une approche objet n’est pas d’ordre logique

mais d’ordre pratique. L’approche objet est une approche orientée donnée. Elle peut

également être vue comme fonctionnelle car les méthodes d’un objet sont des fonctions.

L’évolution des besoins dans une approche structurée engendre des situations chaotiques dans

le système. Une modification de données implique une modification d’un nombre important

de fonctions éparpillées et difficiles à identifier dans la hiérarchie de cette composition.

Contrairement à l’approche structurée, dans l’approche objet une évolution des besoins se

traduit par un changement de l’interaction des objets. S’il faut apporter des modifications aux

données, seul l’objet correspondant sera affecté avec ses méthodes.

Nous pouvons aussi citer d’autres avantages tels que :

-La qualité du système qu’offre l’aspect orienté objet et la modularisation qui permet de

maîtriser sa production et son évolution.

-La conception objet assure une continuité et une traçabilité entre les différents modèles. De

plus, la génération de code résulte de façon naturelle.

2.5. Langage de modélisation UML

UML est un langage de modélisation utilisant une représentation graphique basée sur les

diagrammes. L’usage d’une représentation graphique est un atout car les diagrammes effacent

les ambigüités dans les modèles. Un dessin exprime de manière plus naturelle et plus lisible

ce qu’un texte peine à réaliser même lorsqu’il est bien commenté. Cependant, UML souffre

Page 59: Une approche basée transformation de graphes pour la génération

47

d’un manque de sémantique formelle. Ceci empêche la vérification de la cohérence des

composants du système et du comportement de ce dernier.

2.5.1. Les vues du langage UML 2.0

Il est impossible de donner une représentation graphique complète d’un logiciel, ou de tout

autre système complexe, mais il est possible de donner sur un tel système des vues partielles,

comme montré dans la figure 2.2, pour avoir une idée utilisable en pratique sans risque

d’erreur grave.

Figure 2.2 : Les aspects d’un système

Les vues UML [FrB05] permettent de mettre en évidence les différents aspects d’un système

que nous souhaitons réaliser. UML 2.0 comporte ainsi treize types de diagrammes

représentant autant de vues distinctes mais complémentaires pour représenter des concepts

particuliers du système d’information. Ils se répartissent en trois grands groupes :

a - La vue structurelle, ou statique : Cette vue modélise la structure des différentes classes

d’une application orientée objet, elle réunit :

o Diagramme de classes.

o Diagramme d’objets.

o Diagramme de composants.

o Diagramme de déploiement.

o Diagramme de paquetages.

o Diagramme de structures composites.

Modèle temporel

Q

Séquencement des

actions dans le système

Modèle fonctionnel

Q

Que fait le système

Aspect fonctionnel :

Diagrammes de cas

d’utilisation

Modèle structurel (objet)

Q

Sur quoi agit le système

Aspect statique : Diagrammes de

classes et d’objets

Aspect dynamique :

Diagrammes d’interactions

Page 60: Une approche basée transformation de graphes pour la génération

48

b - La vue comportementale: Cette vue est fonctionnelle, elle est plus algorithmique et

orientée « traitement », et vise à décrire l’évolution (la dynamique) des objets complexes du

programme tout au long de leur cycle de vie. De leur création à leur destruction, les

changements d’états des objets sont guidés par les interactions avec les autres objets. Cette

vue est présentée avec les diagrammes suivants :

o Diagramme de cas d’utilisation.

o Diagramme d’activités.

o Diagramme d’états-transitions.

En général, les diagrammes d’états à eux seuls ne permettent pas de faire apparaître les

problèmes spécifiques posés par la synchronisation des processus en concurrence pour assurer

la cohérence du comportement et l’absence d’inter-blocage.

c- La vue dynamique ou d’interaction : Pour montrer l’interactivité, des diagrammes

traitent les interactions entre les différents acteurs/utilisateurs et le système sous forme

d’objectifs à atteindre d’un côté, et sous forme chronologique de scénarios d’interaction

typiques de l’autre. Ces diagrammes sont les suivants :

o Diagramme de séquence.

o Diagramme de communication.

o Diagramme global d’interactions.

o Diagramme de temps.

La figure 2.3 montre un concept UML 2.0 avec le lien entre les différentes vues et les

abstractions.

Figure 2.3 : Différentes vues dans un concept UML 2.0

Abstraction

Vues

Cohérence

Structure Comportement Fonctionnalités

Code

Page 61: Une approche basée transformation de graphes pour la génération

49

2.5.2. Interprétation de la conception et de l’analyse à travers la notation UML 2.0

UML 2.0 n’offre pas une méthode pour l’analyse et la conception, mais un langage qui permet

d’exprimer le résultat de ces étapes. Il est à noter que UML 2.0 ne doit pas être considéré

comme un outil graphique pour les applications Java ou autres, il doit au contraire être

considéré comme un langage à part entière, car il définit sa propre sémantique orientée objet.

Les différences entre l’analyse et la conception en UML 2.0 ne sont autres que les différences

de niveau de détails dans les diagrammes utilisés. Le tableau 2.1 présente ces différences.

Diagramme de classes de conception Diagramme de classes d’analyse

Nous trouvons les classes qui décrivent des

objets concrets du domaine modélisé, et aussi

toutes les classes utilitaires destinées à

assurer le fonctionnement du logiciel.

Les seules classes servent à décrire des objets

concrets du domaine modélisé.

Tous les attributs et toutes les méthodes

doivent apparaître de façon détaillée, avec

tous les types de paramètres et les types de

retour.

Nous pouvons nous contenter de faire

apparaître juste la dénomination des classes,

avec parfois le nom de quelques attributs et

méthodes quand ceux-ci découlent

naturellement du domaine modélisé.

Diagramme de séquence de conception Diagramme de séquence d’analyse

Les échanges entre classes sont exprimés

sous forme d’appels de méthodes dont les

signatures sont totalement explicites.

Les communications entre les principaux

objets sont écrites sous forme textuelle, sans

se soucier de la forme que prendront ces

échanges lors de la réalisation du logiciel.

Tableau 2.1 : Tableau comparatif entre diagrammes dans la conception et l’analyse

2.5.3. Diagrammes UML 2.0

UML 2.0 n’est pas une méthode mais un langage graphique qui permet de représenter et de

communiquer les divers aspects d’un système d’information par le biais de diagrammes et

commentaires. Pour une modélisation, ces diagrammes ne sont pas nécessairement tous

produits. Les plus utiles pour la maîtrise d’ouvrage sont les diagrammes d’activités, de cas

d’utilisation, de classes, d’objets, de séquence et d’états-transitions. Les diagrammes de

composants, de déploiement et de communication sont surtout utiles pour la maîtrise d’œuvre,

ils permettent de formaliser les contraintes de la réalisation et la solution technique.

Page 62: Une approche basée transformation de graphes pour la génération

50

Diagramme de cas d’utilisation

Ce diagramme a pour objectif d’assurer le lien entre l’utilisateur et les objets du système. Ce

diagramme représente la structure des grandes fonctionnalités nécessaires aux utilisateurs du

système.

Diagramme de classes

Ce diagramme est considéré comme le diagramme le plus important dans le développement, il

représente l’architecture conceptuelle du système : il décrit les classes que le système utilise,

ainsi que les liens d’héritage ou d’agrégation.

Diagramme d’objets

Le diagramme d’objets complète un diagramme de classes en le justifiant par des exemples

d’utilisation. Il est par exemple utilisé pour vérifier l’adéquation d’un diagramme de classes à

différents cas possibles.

Diagramme d’états-transitions

Le diagramme d’états-transitions représente l’évolution des objets appartenant à une même

classe. La modélisation du cycle de vie est essentielle pour représenter la dynamique du

système.

Diagramme d’activités

Le diagramme d’activités est un diagramme comportemental pour la représentation de

l’enchaînement et la modélisation du flot de contrôle entre les activités.

Diagramme de séquence et de communication

Les diagrammes de séquence sont la représentation graphique des interactions entre les

acteurs du système. Ils représentent le séquencement chronologique des opérations réalisées

en indiquant les objets que l’acteur va invoquer. On peut représenter les mêmes opérations par

un diagramme de communication. Un diagramme de séquence et un diagramme de

communication sont considérés comme deux vues différentes mais logiquement équivalentes

(on peut construire l’une à partir de l’autre) d’une même chronologie. Ce sont des

diagrammes d’interaction.

2.5.4. Diagrammes d’états-transitions

Le diagramme d’états-transitions décrit à travers un automate à états finis le comportement

interne d’un objet. Il présente les séquences possibles d’états et d’actions qu’une instance de

classe (objet) peut prendre au cours de son cycle de vie en réaction à des événements discrets

(de type signaux, invocations de méthode).

Le diagramme d’états-transitions est l’unique diagramme UML 2.0 qui offre une vision

complète et non-ambiguë de tous les comportements de l’élément qu’il représente. De ce fait,

Page 63: Une approche basée transformation de graphes pour la génération

51

on ne peut obtenir une vision globale du système à travers ce type de diagrammes car ils ne

s’intéressent qu’à un seul élément du système, indépendamment de son environnement.

Dans la figure 2.4, un exemple d’un diagramme d’états-transitions nous permet de visualiser

les différents états d’une partie de jeu vidéo.

Figure 2.4 : Diagramme d’états-transitions simplifié d’une partie d’un jeu vidéo

2.5.4.1. Caractéristiques d’un diagramme d’états-transitions

Un diagramme d’états-transition rassemble et organise des états et des transitions avec les

événements correspondants aux changements d’états.

Les états : Durant son cycle de vie, un objet passe par une série d’états. Un état peut

être vu comme une période dans laquelle l’objet attend un événement ou accomplit

une activité.

o Les états simples sont représentés comme suit (figure 2.5) :

Figure 2.5 : Syntaxe d’un état simple

Le nom de l’état est unique et doit être spécifié dans le rectangle.

o Les états initiaux et les états finaux : Les états initiaux et les états finaux sont

des pseudos états qui indiquent le début et la fin du diagramme d’état-

transition. Ils sont représentés comme suit (figures2.6 et2.7) :

État simple

Page 64: Une approche basée transformation de graphes pour la génération

52

Figure 2.6 : Syntaxe d’un état initial

Figure 2.7 : Syntaxe d’un état final

Les événements : L’événement est une tâche qui s’exécute dans le système. Les

réactions par rapport à cet événement doivent être modélisées dans le diagramme

d’états-transitions. Les événements sont classés en quatre types :

o Des événements de signal.

o Des événements d’appel (call).

o Des événements de changement (change).

o Des événements temporels.

Les transitions : Une transition traduit la réaction d’un objet à l’occurrence d’un

événement. Elle indique qu’un objet dans un état peut entrer dans un autre état et

exécuter des activités.

Le même événement peut être le déclencheur de plusieurs transitions quittant un même

état. Chaque transition avec le même événement doit avoir une condition de garde

différente (à cause de l’indéterminisme).

La figure 2.8 montre un exemple d’un diagramme d’états-transitions d’un objet

« Facture » avec tous les états et transitions provoquant le changement de ses états à

travers des événements.

Page 65: Une approche basée transformation de graphes pour la génération

53

Figure 2.8 : Diagramme d’états-transitions d’un objet « Facture »

2.5.4.2. Les diagrammes d’états-transitions de Harel

Les diagrammes d’états-transitions de Harel [Harel 85] permettent la modélisation des super-

états, régions orthogonales et les activités dans le cadre d’un état. Les diagrammes d’états-

transitions de Harel offrent un nouveau type d’états appelés les états composites ou les

superclasses.

Cette structure évite les situations d’explosions combinatoires du nombre d’états dans le cas

des systèmes complexes. Les diagrammes de Harel permettent de modéliser plusieurs

diagrammes d’états-transitions inter-fonctionnels. Chacune de ces machines peut avoir des

transitions internes sans impliquer la totalité du diagramme.

La figure 2.9 montre un exemple de diagramme d’états-transitions, où l’état S est un état

composite.

Figure 2.9 : Exemple d’un diagramme d’états-transitions de Harel

Imprimer_Facture()

Envoyer_Facture()

Paiement() Passer commande() Créée Réglée

Envoyée Imprimée

Page 66: Une approche basée transformation de graphes pour la génération

54

2.5.4.3. État composite dans un diagramme d’états-transitions

Un état composite contient plus d’une région, et c’est pour cela que nous l’appelons état

orthogonal. Un état composite ne contenant qu’une seule région et un état non orthogonal.

Lorsqu’un état orthogonal est actif, un sous-état de chaque région est automatiquement actif.

L’objectif de cette composition par états composites permet le développement d’une

spécification par raffinement. Nul besoin de représenter les états simples à chaque fois que

l’état composite est invoqué. Il existe une manière dans la notation pour indiquer que l’état est

composite, présentée dans la figure 2.10.

Figure 2.10 : Syntaxe d’un état composite

La figure 2.11 présente un exemple d’un état composite pour la modélisation de la

composition d’un numéro de téléphone.

Figure 2.11 : Exemple d’un état composite dans l’opération de composition d’un numéro de

téléphone

2.5.4.4. Les transitions dans un diagramme d’états-transitions

Une transition atteint un état composite en ciblant son état initial. Si la transition démarre d’un

état composite, elle implique automatiquement tous les états qu’elle contient. Cette relation

est transitive : la transition est franchissable depuis tous les états contenus dans l’état

composite, quelle que soit sa profondeur. Ceci n’empêche pas que des transitions ciblent des

états de différents niveaux d’imbrication, en traversant les limites des états composites.

Nous présentons dans la figure 2.12 un exemple de configuration complexe de transitions.

Depuis l’état ‘’ état1 ‘’, la réception de l’événement ‘’ event1 ‘’ produit la séquence

Composer

numéro

Composer numéro

Début Numéroter

Chiffrer(n) Numéro_valide()

Page 67: Une approche basée transformation de graphes pour la génération

55

d’activités :‘’QuitterE11, QuitterE1, action1, EntrerE2, EntrerE21, Initialiser(), EntrerE22 ‘’,

et place le système dans l’état ‘’ état22 ‘’.

Figure 2.12 : Exemple de transitions dans un diagramme d’états-transitions

2.5.4.5. La concurrence dans un diagramme d’états-transitions

Les diagrammes d’états-transitions permettent de décrire la concurrence d’une manière très

efficace grâce à l’utilisation des états orthogonaux (chaque région de l’état orthogonal

représente un flot d’exécution). Graphiquement, dans un état orthogonal, les différentes

régions sont séparées par un trait horizontal en pointillé dans l’état composite.

Chaque région peut posséder un état initial et un état final. Une transition qui atteint la limite

d’un état composite orthogonal est équivalente à une transition qui atteint les états initiaux de

toutes ses régions concurrentes.

Pour que l’état composite soit considéré comme terminé, toutes les régions concurrentes

doivent atteindre leurs états finaux.

La figure 2.13 montre un exemple de concurrence dans un état composite orthogonal. La

préparation de boissons dans un distributeur se fait en parallèle au rendu de monnaie.

Event/action1 Initialiser ()

Page 68: Une approche basée transformation de graphes pour la génération

56

Figure 2.13 : Exemple d’utilisation de transitions complexes et concurrence

2.5.5. Les diagrammes de séquence

Les diagrammes de séquence contiennent des informations concernant les messages échangés

entre les entités du système dans le temps. La notion de temps est représentée dans le

diagramme de séquence de manière explicite, sur des lignes verticales, s’écoulant du haut en

bas pour montrer l’ordre chronologique des échanges. Ces lignes sont appelées des lignes de

vie.

Une ligne de vie est représentée par un rectangle étiqueté par un nom de classe suivi d’une

ligne verticale. Les messages quant à eux, définissent la communication établie entre les

lignes de vie. Ils peuvent communiquer un envoi de signal, une invocation d’une opération ou

la création ou la destruction d’une instance d’une classe.

Les messages dans un diagramme de séquence sont par défaut asynchrone, mais ces

diagrammes permettent aussi de représenter des messages synchrones. Dans le cas synchrone,

l’émetteur reste bloqué le temps que dure l’opération.

Les messages synchrones et asynchrones sont représentés graphiquement comme montré dans

les figures 2.14 et 2.15.

Servir boisson et rendre monnaie

Préparer boisson et rendre monnaie

Préparer Terminer

Rendre monnaie

Goblet attente

Page 69: Une approche basée transformation de graphes pour la génération

57

Figure 2.14 : Syntaxe d’un message asynchrone

Figure 2.15 : Syntaxe d’un message synchrone

La réception d’un message est généralement suivie de l’exécution d’une méthode d’une

classe. La syntaxe du message permet de véhiculer un argument aux méthodes en cas de

besoin.

2.5.5.1. Opérateurs dans les diagrammes de séquence

Opérateur alt

L’opérateur alternative ou alt est un opérateur conditionnel à plusieurs opérandes.

Chaque opérande a une condition de garde, et l’absence de condition de garde

implique une condition vraie. La condition Sinon est vraie si aucune autre condition

n’est vraie. Lorsque plusieurs opérandes prennent une valeur « vrai », nous sommes

confrontés à une situation indéterministe.

La figure 2.16 montre un exemple d’un diagramme de séquence avec l’opérateur alt.

Figure 2.16 : Représentation d’un choix dans un diagramme de séquence

Obj1 : Obj2 :

Obj1 : Obj2 :

bank : Bank ob : Ob

else

alt

Login ()

Passwok

Deconnecte()

assert

NumCompte()

Compte>0

SD_banque

Page 70: Une approche basée transformation de graphes pour la génération

58

Opérateur opt

L’opérateur option, ou opt comporte un opérande et une condition de garde associée.

Le sous fragment ne s’exécute que si la condition de garde est vraie (true).

Opérateur loop

Un fragment étiqueté de loop contient un sous-fragment, une information sur la valeur

minimum et maximum des itérations, ainsi qu’une condition de garde. Dans la figure

2.17, nous montrons un exemple d’utilisation de l’opérateur de boucle dans un

diagramme de séquence.

Figure 2.17 : Représentation d’une boucle dans un diagramme de séquence

Opérateur par

L’opérateur parallèle dans un diagramme de séquence nécessite au moins deux sous-

fragments exécutés simultanément. La figure 2.18 illustre le parallélisme dans un

diagramme de séquence.

Fermer ()

Fermer_porte()

:Conducteur :Train Porte(i) :Porte

Loop(1,n)

SD_démarrer_train

Page 71: Une approche basée transformation de graphes pour la génération

59

Figure 2.18 : Exemple d’objet effectuant deux tâches en parallèle

Opérateur strict

L’opérateur strict sequencing ou strict implique au moins deux sous-fragments qui

s’exécutent selon leur ordre d’apparition dans un fragment combiné. Ceci est surtout

utile dans le cas de deux parties qui n’ont pas de ligne de vie commune dans un

diagramme.

La figure 2.19 montre un exemple de l’utilisation de l’opérateur strict.

Food()

CookFood()

Per1 :Personne open :MicrowaveOpen

Par

Cook()

Rotate()

SD_microwave

Page 72: Une approche basée transformation de graphes pour la génération

60

Figure 2.19 : Exemple de l’utilisation de l’opérateur strict dans un diagramme de

séquence

Remarque : On appelle « utilisation d’une interaction » le fait de référencer des

interactions déjà définies. Cela permet de réutiliser les définitions dans des contextes

différents.

2.6. Conclusion

Dans ce chapitre, nous avons parlé de la modélisation orientée objet comme une approche

ayant fait ses preuves. Nous avons rappelé les différences entre une méthode de conception et

un langage de modélisation en mettant l’accent sur UML 2.0 qui est souvent confondu avec

les méthodes de conception. Les vues UML 2.0 ont été montrées à travers les treize

diagrammes faisant d’UML 2.0 le langage de modélisation de référence. Les deux

diagrammes qui intéressent le sujet de cette thèse, et qui sont les diagrammes de séquence et

les diagrammes d’états-transitions, ont été détaillés dans la deuxième partie de ce chapitre.

:TourDeControle : Pilote : Avion

Contrôler check list

Procédure de décollage

Strict ref

ref

SD_décollage_avion

Page 73: Une approche basée transformation de graphes pour la génération

61

Chapitre 3 : Méthodes formelles et modèle

GSPN

Page 74: Une approche basée transformation de graphes pour la génération

62

Chapitre 3

Méthodes formelles et modèle GSPN

3.1. Introduction

La dernière décennie a été marquée par une percée technologique importante dans

l’informatique et dans les réseaux de communication. Elle a poussé à la mise en place

d’applications de plus en plus complexes et de plus en plus sophistiquées. Ces dernières se

basent sur des systèmes distribués qui prennent en compte des aspects "temps-réel", dont il est

important de garantir et le comportement, en termes de propriétés et de performances

fonctionnelles, mais également la sûreté de fonctionnement. L’obtention de cette garantie

passe inévitablement par l’utilisation de modèles formels qui permettent d’exprimer et

d’analyser les mécanismes fondamentaux des systèmes distribués (parallélisme,

synchronisation, choix, partage de ressource, etc.).

Maîtriser la complexité qui s'accroît au fur et à mesure de l’avancement du développement

des systèmes complexes n’est pas une tâche facile. Une modélisation inappropriée peut

engendrer des dysfonctionnements aux conséquences dangereuses sur la sûreté et sur le

fonctionnement du système. Les modèles devront, de ce fait, être vérifiés ensuite validés. La

modélisation par niveaux présente l’avantage de créer la séparation des différentes

préoccupations impliquées dans le cycle de développement et ainsi, pouvoir exprimer à

chaque niveau et selon les besoins relatifs à sa conception, autant d’informations que

nécessaires.

Avant de valider chaque modèle, le développeur se doit d’assurer des propriétés de sûreté du

fonctionnement du système, en particulier lors des premières phases de la conception. C’est

pour cette raison qu’il fait appel, pour l’analyse, aux techniques formelles afin de comparer

les résultats issus de ces modèles aux exigences émises par le client.

L’IDM introduit les méthodes formelles dans la conception des systèmes en définissant des

langages de méta-modélisation, ces derniers décrivent tous les aspects structurels du système

voulu. La transformation de modèles combine ces aspects pour générer des modèles formels.

Ce sont au final ces modèles qui serviront, par des techniques formelles, à la vérification et la

validation.

Ce chapitre est une introduction aux méthodes formelles employées pour prévenir des erreurs

de conception des systèmes complexes. Ici, l’utilisation des méthodes formelles est vivement

encouragée. Leur intégration à l’Ingénierie Dirigée par les Modèles (IDM) sera discutée plus

loin, en mettant l’accent sur les réseaux de Petri, une technique formelle couramment utilisée.

Page 75: Une approche basée transformation de graphes pour la génération

63

3.2. Méthodes formelles

Les méthodes formelles [Wing90] sont des techniques de raisonnement mathématique

utilisées pour démontrer la validité des systèmes. Ces méthodes sont basées sur des

descriptions mathématiques formelles, donc sur des sémantiques claires et rigoureuses.

L’avantage de ces méthodes réside dans le fait qu’elles permettent d’obtenir des niveaux

d’évaluation d’assurance élevés (absence d’incohérences, de contradictions et de failles). Ces

méthodes sont généralement coûteuses, en temps et en ressources, et c’est d’ailleurs pour cela

qu’elles sont réservées aux systèmes critiques où l’utilisation de tels outils est incontournable.

3.3. Langages formels

Pour définir une spécification d’un système, une méthode formelle utilise un langage formel

doté d’une sémantique mathématique rigoureuse [Petit99, Benzaken91], basée sur des règles

d’interprétation et des règles de déduction.

Les règles d’interprétation garantissent l’absence d’ambigüité d’interprétation (dans un

langage informel ou semi-formel, une description peut avoir plusieurs interprétations). Les

règles de déduction raisonnent sur des spécifications afin de détecter les manques et les

inconsistances, et aussi pour vérifier des propriétés attendues.

3.4. Techniques d’analyse

Il existe plusieurs méthodes d’analyse des systèmes complexes, elles permettent de garantir

leur bon fonctionnement ou alors limiter les risques liés à leur performance. Parmi ces

méthodes nous citons :

La vérification

La vérification comprend l’ensemble des activités d’inspection, de test, de simulation, de

preuve automatique ainsi que les autres techniques qui permettent d’affirmer ou non la

question «Le système a t-il été conçu correctement?». Elle est définie selon l’ISO comme "la

confirmation par examen et apport de preuves tangibles (informations dont la véracité peut

être démontrée, fondée sur des faits obtenus par observation, mesures, essais ou autres

moyens) que les exigences spécifiées ont été satisfaites" [ISO 8402].

La validation

La validation compare le système réalisé aux besoins exprimés par ses utilisateurs. Cette tâche

permet d’évaluer le système développé en répondant à la question : «Sommes-nous en train de

développer le bon système?». L’ISO définit la validation comme "La confirmation, par

examen et apport de preuves tangibles, que les exigences particulières pour un usage

spécifique prévu sont satisfaites. Plusieurs validations peuvent être effectuées s’il y a

différents usages prévus" [ISO 8402].

Page 76: Une approche basée transformation de graphes pour la génération

64

La qualification

La qualification assure que le modèle peut être utilisé dans la communication sans ambigüité

d’interprétation entre les activités du projet et les acteurs.

La certification

La certification nécessite l’intervention d’un organisme indépendant qui assurera le respect

des normes par le modèle, et qui reconnaîtra sa pertinence, sa rigueur et ses qualités pour une

éventuelle réutilisation, voire pour l’établissement d’un référentiel générique à son domaine.

3.5. Classification des méthodes formelles

Selon J.M. Wing [Wing90], les méthodes formelles peuvent être classées en trois types:

Méthodes orientées données: Ces méthodes décrivent les états du système.

Méthodes orientées opérations: Ces méthodes décrivent le fonctionnement et le

comportement du système par le biais d’axiomes.

Méthodes Hybrides: Ces méthodes combinent les deux premiers types de méthodes.

La figure 3.1 donne une classification des méthodes formelles selon le type d’approche

qu’elles utilisent, axiomatique, basée sur les états ou bien hybride.

Page 77: Une approche basée transformation de graphes pour la génération

65

Figure 3.1 : Classification des méthodes formelles

3.5.1. L’approche axiomatique

Cette approche traite de façon indirecte le comportement du système. Elle est basée sur la

construction d’une axiomatisation qui permet d’obtenir les propriétés comportementales.

Nous procédons à cette axiomatisation par approches algébriques ou logiques [Attiogbé07].

L’approche logique exprime des systèmes transformationnels avec la logique temporelle. Elle

exprime des propriétés dynamiques de sûreté et de vivacité des systèmes réactifs. Dans cette

approche, nous nous intéressons à la démonstration de programmes en utilisant les théories de

la démonstration automatique ou semi-automatique de théorèmes. Parmi les langages de

spécification logiques nous citons: PVS [owreg93], Isabelle/HOL [smith02] et Coq

[behrmann04].

L’approche algébrique définit des types abstraits de données en spécifiant pour chaque

opération le type de valeurs de ses paramètres et le type de résultat. Les expressions sont

précisées à l’aide de variables appelées termes, les propriétés des opérations sont décrites sous

forme d’équivalences entre ces termes (axiomes). L’application des axiomes à des termes

permet d’obtenir d’autres expressions d’équivalence [truong06]. Parmi les langages de

spécification algébrique connus, nous citons: OBJ [goguen96], LPG [Bert95] et Larch

[Guettag85].

PVS CSP

Les méthodes formelles

Approche axiomatique Approche basée sur

les états

Approche hybride

Approche

algébrique

Approche

logique Approche

par modèle

abstrait

Approche

dynamique

ACT ONE

CCS

LOTOS

Réseaux de Petri

Automate temporel

VDM

Z

B

Isabelle/HOL

Coq

OBJ

LPG

CASL

Page 78: Une approche basée transformation de graphes pour la génération

66

3.5.2. L’approche basée sur les états

Cette approche s’intéresse aux données du système. Elle construit un modèle en termes de

structures mathématiques tout en gardant les propriétés du système. Le modèle obtenu servira

à l’étude du fonctionnement du système, en lui appliquant des approches dynamiques et des

approches par modèle abstrait.

Les approches dynamiques sont basées sur le principe des processus. Elles utilisent les

automates, les réseaux de Petri et les algèbres de processus pour spécifier les systèmes de

transitions.

Les approches ensemblistes, ou approches par modèle abstrait fournissent une sémantique et

une syntaxe du modèle abstrait en utilisant la logique du premier ordre, la théorie des

ensembles ou la théorie des types. Parmi les langages de spécification ensemblistes nous

trouvons VDM [cliff86], Z [attiogbé07] et B [truong06].

La différence entre les approches ensemblistes et les approches algébriques réside dans

l’utilisation des types abstraits prédéfinis pour la modélisation des états dans l’approche

ensembliste. Chaque opération possède sa propre spécification et son impact sur le système.

3.5.3. L’approche hybride

L’approche hybride combine l’axiomatisation avec le modèle de données [attiogbé07].

LOTOS [Turner07] est un bon exemple de cette approche. LOTOS est un langage algébrique

car ses expressions de contrôle sont caractérisées par une algèbre dont les termes sont des

processus, en même temps, ses données sont caractérisées par une algèbre de type abstrait

dont les termes sont des expressions fonctionnelles [Truong06]. CCS [Milner 80] et ACT

ONE [Charles97] sont des prédécesseurs de LOTOS.

3.6. Techniques de vérification formelle

La validation et la vérification peuvent être réalisées à l’aide des preuves de théorèmes, la

vérification de modèles et les tests d’équivalence. Il est aussi possible de pratiquer des tests

sauf que ces derniers ne présentent pas une garantie d’exhaustivité.

3.6.1. Vérification de modèle ou Model-Checking

Tous les outils de modélisation des réseaux de Petri se basent sur la technique de vérification

de modèles. Le Model-Checking est une technique de vérification automatique des propriétés

d’exactitude dans un espace d’états fini. Les propriétés sont exprimées dans une logique

(généralement temporelle) ; le modèle est exprimé dans un langage formel ; et un algorithme

vérifie si un modèle ou une abstraction du système satisfait une spécification.

Page 79: Une approche basée transformation de graphes pour la génération

67

L’aspect automatique du Model-Checking facilite la décidabilité. La vérification de modèle se

termine par une réponse positive ou par une indication d’erreur. Le principal inconvénient du

Model-Checking est l’impossibilité de faire appel à cette technique dans le cas des systèmes

non-finis.

Les premiers travaux sur le Model-Checking de formules de logique temporelle ont été dirigés

par Edmund M. Clarke et E. Allen Emerson en 1981[EC82], et Jean-Pierre Queille et Joseph

Sifakis en 1982[QS82a].

3.6.2. Preuve de théorèmes

Dans cette technique, le développeur construit une partie de la preuve, au moins. Cette

technique exprime les spécifications en termes de logique ou de spécifications algébriques.

Cette logique est un système formel constitué d’axiomes et de règles de déduction. La preuve

de théorème vise à prouver certaines propriétés à partir des axiomes du système, des règles de

déduction et des lemmes qui ont été dérivés.

L’avantage de cette technique par rapport au Model-Checking réside dans sa prise en compte

des données complexes, ce qui lui permet d’être appliquée sur des espaces d’états non-finis.

L’inconvénient majeur est que la preuve de théorème reste une technique plus ou moins lente.

3.6.3. Vérification d’équivalence

Comme pour la technique du Model-checking, il est nécessaire que les systèmes soient finis

même si nous pouvons trouver des techniques où la vérification se fait en parallèle à la

conception du système.

Pour vérifier que deux modèles partagent une propriété donnée, les outils de test

d’équivalence utilisent des relations d’équivalence particulières. Il s’agit dans la plupart des

cas de prouver une propriété relativement abstraite sans avoir assez de données.

3.6.4. L’animation de spécifications

Dans le contexte des systèmes dynamiques, l’animation de spécifications permet de valider

une séquence. Pour les spécifications algébriques, elle permet de valider une construction.

L’animation de spécifications permet aussi d’avoir une sorte de prototype de la spécification

ou du système spécifié. Il existe de nombreux outils dédiés à l’animation de spécifications tels

que CPNTools pour les réseaux de Petri Colorés.

3.6.5. Les tests

Si le formalisme a une sémantique opérationnelle (interaction avec des outils d’animation), les

tests peuvent être effectués à un niveau abstrait ou à un niveau d’implémentation, c'est-à-dire

avec un prototype généré.

Page 80: Une approche basée transformation de graphes pour la génération

68

3.7. Intégration des méthodes formelles dans l’IDM

L’utilisation des méthodes formelles et de plus en plus courante dans le développement des

systèmes depuis que la complexité de ces derniers a évolué, surtout dans le cas des systèmes

critiques, là où aucune erreur n’est tolérée.

Depuis que l’IDM est devenue une démarche de conception qui couvre le cycle de

développement dans son intégralité, des études ont démontré que cette approche peut être

combinée avec les méthodes formelles, en minimisant les inconvénients de chacune et tirant

profit des avantages des deux [Gargantini09].

Les avantages des méthodes formelles

Il est aujourd’hui trivial pour un développeur de passer par les méthodes formelles pour la

validation des systèmes critiques. Un modèle formel sert de support pour l’analyse formelle

qui assurera ou non sa validité par rapport aux exigences du client, par simulation ou par tests.

Cette analyse formelle garantira certaines propriétés comportementales.

Les inconvénients des méthodes formelles

La difficulté de leur apprentissage et le manque de supports outillés pour assister les

développeurs dans la conception n’encourage pas ces derniers à adopter les méthodes

formelles facilement. Un autre inconvénient concerne les notations complexes comparées à

d’autres langages comme UML.

Les avantages de l’IDM

Cette approche concentre son activité sur l’automatisation du processus de développement par

l’utilisation des modèles comme abstraction du système. L’IDM applique à ces modèles, de

manière automatique, des opérations de maintenance, de raffinement et de transformation

dans le but de générer le code exécutable. Le concept de méta-modélisation permet de générer

l’éditeur du langage de modélisation grâce aux notations abstraites qu’il lui attribue. Cette

technique réduit considérablement la complexité et exprime tous les concepts du domaine.

Les inconvénients de l’IDM

Pour le moment, les environnements de méta-modélisation manquent de supports rigoureux

qui permettraient de fournir la sémantique des méta-modèles. La sémantique est exprimée en

langage naturel, ce qui empêche l’analyse formelle des modèles du langage défini par la méta-

modélisation.

L’IDM permet, grâce à la méta-modélisation et aux transformations de modèles, de mettre en

place des plateformes pour les méthodes formelles et de conserver leur interopérabilité.

Page 81: Une approche basée transformation de graphes pour la génération

69

3.8. Les réseaux de Petri

Les systèmes dynamiques sont caractérisés par leur comportement permanent. Ce

comportement est décrit par une séquence d’états qui peut être infinie. Pour cette raison, ces

systèmes ne peuvent être décrits que sur la base de leurs états initiaux et états finaux.

Différents paradigmes pour la description des systèmes dynamiques ont été développés mais

ils sont peu nombreux à intégrer des méthodes d’analyse dans leur propre description, comme

c’est le cas des réseaux de Petri.

Le réseau de Petri est un outil graphique pour la description formelle des systèmes dont la

dynamique est caractérisée par la concurrence, la synchronisation, l’exclusion mutuelle et le

conflit des choix multiples. Ces attributs sont propres aux environnements distribués. La

facilité des réseaux de Petri à s’adapter facilement élargit leur champ de pratique jusqu’aux

protocoles de communication, architectures des ordinateurs, etc. Leur aspect mathématique

leur permet l’analyse des propriétés comportementales et structurelles essentielles à la

validation du système.

L’étude d’un système par utilisation de réseau de Petri se fait suivant ces trois étapes :

Modéliser le système en termes de places et de transitions du réseau de Petri.

Analyser le modèle obtenu et déduire des propriétés dont les propriétés de sûreté et de

vivacité.

Révision des propriétés pour valider le système.

Cette analyse qualitative du système est une approche très importante pour obtenir une bonne

évaluation.

3.8.1. Historique

Les réseaux de Petri ont été introduits par Carl Adam Petri en 1962 [AD 68] dans sa thèse de

doctorat, intitulée « Communication avec des Automates », en Allemagne. Ce travail a ouvert

un champ d’étude et a été exploité par Anatol W. Holt, F. Commoner, M. Hack et leurs

collègues dans le groupe de recherche de Massachussetts Institute OF Technology (MIT) dans

les années 70. Le premier livre traitant des réseaux de Petri a été publié par J. Peterson.

3.8.2. Bases et définitions des réseaux de Petri

Un réseau de Petri est un graphe biparti orienté composé de places, de transitions et d’arcs.

Les places sont représentées graphiquement par des cercles et les transitions par des

rectangles. Un arc ne peut relier deux places ou deux transitions.

Page 82: Une approche basée transformation de graphes pour la génération

70

Les places décrivent les états possibles du système ou des conditions, et les transitions

permettent de modéliser les événements ou les actions qui font basculer le système d’un état à

un autre.

Les jetons sont des éléments ajoutés aux places pour le déroulement du système simulé par le

réseau de Petri. L’état du système est donné par son marquage qui est défini par la distribution

des jetons sur les différentes places du réseau de Petri.

Chaque place contient un nombre entier positif ou nul de marques ou jetons. Le marquage M

définit l'état du système décrit par le réseau à un instant donné. C’est un vecteur colonne de

dimension égale au nombre de places dans le réseau. Le iéme élément du vecteur correspond

au nombre de jetons contenus dans la place Pi. L’ensemble de changements d’états possibles

du système est conclu à partir de l’ensemble des transitions franchissables.

La figure 3.2 montre un exemple de réseaux de Petri.

Figure 3.2 : Exemple de réseau de Petri marqué

L’aspect dynamique du système est donné par les transitions. Une transition est franchissable

lorsque toutes les places qui lui sont juxtaposées (ou toutes les places d'entrée de la transition)

contiennent autant de jetons que nécessite la condition de franchissement.

Le franchissement consiste à retirer les jetons de chacune des places d'entrée et à ajouter les

jetons à chacune des places de sortie d’une transition. Une transition franchissable n'est pas

toujours franchie immédiatement.

Une transition sans place d'entrée est toujours franchissable : c'est une transition source. Le

franchissement d'une transition source consiste à ajouter un jeton à chacune de ses places de

sortie.

Une transition sans place de sortie est une transition puits. Le franchissement d'une transition

puits consiste à retirer un jeton de chacune de ses places d'entrée.

Page 83: Une approche basée transformation de graphes pour la génération

71

3.8.3. Avantages et inconvénients des réseaux de Petri

Le formalisme des réseaux de Petri présente les avantages suivants :

Définition formelle : Cette caractéristique efface toute ambigüité dans la

spécification, car chaque modèle possède une sémantique bien définie.

Les réseaux de Petri sont exécutables : Il existe des programmes construits sur la

définition formelle de la notation qui permettent d’interpréter les modèles en réseaux

de Petri et de simuler le fonctionnement du système en cours de spécification. Ceci

permet une vision dynamique du système.

Expression puissante : Les réseaux de Petri sont adaptés pour décrire des

comportements complexes, réactifs ou concurrents.

Support de vérification : Les réseaux de Petri disposent de nombreuses techniques

de vérification automatique des propriétés génériques du système, comme la vivacité,

ou des propriétés spécifique, comme l’existence d’invariants.

Représentation graphique : cette qualité facilite l’interprétation et la compréhension

des modèles.

Malgré ces multiples qualités, les réseaux de Petri souffrent de certains points négatifs :

Manque de structuration : Plus le système est complexe et plus la taille du modèle

produit est importante, et plus leur maîtrise est compliquée.

Structure de données : Les réseaux places/transitions ne permettent pas de décrire la

structure des données manipulées par le système.

Ces inconvénients ont été étudiés et commencent à se résoudre graduellement depuis le

développement de la théorie des réseaux de Petri de haut-niveau.

3.8.4. Utilisation des réseaux de Petri

Dans certains cas, les réseaux de Petri ordinaires ne peuvent exprimer toutes les propriétés

que nous voudrons modéliser, et de ce fait, des extensions s’avèrent utiles afin de pallier à ces

insuffisances. Parmi les extensions les plus utilisées, nous citons :

Les réseaux de Petri généralisés: Un réseau de Petri généralisé est un réseau de Petri

dans lequel des poids (nombres entiers strictement positifs) sont associés aux arcs.

Les réseaux de Petri temporisés : C’est une extension temporelle des réseaux de Petri.

Page 84: Une approche basée transformation de graphes pour la génération

72

Les réseaux de Petri colorés : Dans un réseau de Petri coloré, on associe une valeur à

chaque jeton.

Les réseaux de Petri continus : Le nombre de jetons dans un réseau de Petri continu est

un réel positif. Le franchissement s’effectue comme un flot continu en introduisant la

notion de vitesse traduite par le nombre de marques franchies pendant une unité de

temps.

Quelques utilisations des réseaux de Petri dans les différents domaines, non seulement

informatiques, ont été résumées dans le tableau 3.1:

Réseau de Petri ordinaire Modélisation des systèmes logiciels.

Modélisation des processus d’affaires.

Gestion des flux.

Programmation concurrente.

Génie de la qualité.

Diagnostic.

Réseau de Petri généralisé Gestion des flux complexes.

Modélisation de chaînes logistiques.

Utilisation pour les techniques quantitatives.

Réseau de Petri temporisé Gestion du temps.

Modélisation d’attentes.

Réseau de Petri coloré Modélisation des systèmes de collaboration.

Réseau de Petri continu Modélisation des réactions chimiques.

Tableau 3.1 : Exemples d’utilisation des réseaux de Petri

3.8.5. Outils de modélisation des réseaux de Petri

Il existe de nombreux outils de simulation et de vérification des réseaux de Petri selon la

technique de vérification de modèles, souvent libres, et développés dans le cadre de thèses ou

de recherches scientifiques.

Le tableau suivant (tableau 3.2) récapitule les plus importants parmi ces outils par rapport à :

o La présence d’un environnement graphique d’édition.

o La possibilité de simulation.

o La possibilité d’analyse des propriétés génériques.

o La possibilité de vérification des contraintes CTL (Logique Temporelle Arborescente)

et LTL (Logique Temporelle Linéaire).

o Possibilité de supporter le format d’échange XML.

Page 85: Une approche basée transformation de graphes pour la génération

73

Outils Interface

graphique

Simulation Analyse CTL LTL XML

CPNtools

[CPNtools]

Oui Oui Oui Oui Non Oui

CPNAMI

[CPNAMI]

Oui Oui Oui Oui Oui Non

PROD

[PROD]

Non Non Oui Oui Oui Non

JARP [JARP] Oui Non Oui Non Non Oui

MARIA

[MARIA]

Non Non Oui Oui Oui Non

LOLA

[LOLA]

Non Non Oui Oui Non Non

PetriNet

Kernel [PNK]

Oui Non Non Non Non Oui

GreatSPN

[GreatSPN]

Oui Non Oui Non Non Non

TINA[TINA] Oui Oui Oui Oui Oui Oui

Tableau 3.2 : Les plus importants outils de modélisation des réseaux de Petri

3.8.6 Définition formelle

Un réseau de Petri est défini par un 5-tuple M = {P, T, I, O, M0} où :

• P : Ensemble de places du réseau.

• T : Ensemble de transitions du réseau.

• I, O : sont des fonctions input, output respectivement.

• M0 est une application de P vers N (N : Ensemble des entiers naturels) appelée marquage

initial.

Les fonctions I, O décrivent les poids portés par arcs input, output des transitions.

Soit une transition t ∈ T : La notation •t = {p ∈ P : I(t,p) > 0} et t• = {p ∈ P : O(t,p) > 0}

expriment l’ensemble des inputs et outputs d’une transition t}.

La valeur de M0 (p), p∈ P, représente le nombre de jetons dans la place p à l’état initial.

Page 86: Une approche basée transformation de graphes pour la génération

74

3.8.7. Déroulement d’un réseau de Petri

Dans un réseau de Petri, le mécanisme de changements de places est animé par le

franchissement des transitions. Le calcul du réseau de Petri se fait à travers la distribution des

jetons dans les places.

3.8.7.1. Franchissement d’une transition

Une condition de franchissement doit être vérifiée pour permettre de franchir une transition.

La règle de franchissement définit le changement de marquage provoqué par le

franchissement de la transition.

Une transition t est tirée si et seulement si toutes les places inputs (place d’entrée) contiennent

un nombre de jetons supérieur ou égal au seuil donné. Ces seuils sont définis par le poids des

arcs correspondants à la transition.

Figure 3.3 : Franchissement d’une transition t

Dans l’exemple de la figure 3.3, la transition t est tirée si le nombre de jetons dans la place p1

est supérieur ou égal à n, et le nombre de jetons dans la place p2 est supérieur ou égal à m.

Nous pouvons adopter la définition suivante [Ajmone95] :

Une transition t est tirée dans un marquage M si et seulement si :

P3

k

n m

P1 P2

t

Page 87: Une approche basée transformation de graphes pour la génération

75

∀ p ∈ •t, M(p) ≥ O(t, p)

Lorsqu’une transition t est franchie, elle supprime de chaque place de son ensemble •t autant

de jetons indiqués dans le poids de l’arc reliant la place à t, et ajoute à chaque place de son

ensemble t• autant de jetons indiqués dans l’arc reliant t à cette place.

Le franchissement de la transition t tirée dans le marquage M, produit le marquage M’ tel

que :

M’ = M + O(t) – I(t)

Cette formule est généralement écrite de la manière suivante : M[t>M’, ce qui veut dire que

M’ est directement accessible à partir de M.

Dans la figure 3.3 le franchissement de la transition t change le marquage en supprimant n

jetons de la place p1, et m jetons de la place p2 et en ajoutant k jetons à la place p3. Pour que t

réussisse à supprimer n jetons de la place p1, au moins n jetons doivent s’y trouver, et la

même chose pour la place p2. Ceci est considéré comme une condition de tir de transition.

3.8.7.2. Séquences de franchissement

Une séquence de franchissement S est une suite de transitions Ti, Tj…Tk qui peuvent être

franchies successivement à partir d'un marquage donné. Une seule transition peut être

franchie à la fois.

La notation : Mi [S -> Mj ou Mi [S > Mj exprime que le franchissement de la séquence S à

partir du marquage Mi conduit au marquage Mj.

3.8.7.3. Marquages accessibles

L'ensemble des marquages accessibles est l'ensemble des marquages Mi qui peuvent être

atteints par le franchissement d'une séquence S à partir du marquage initial M0, Noté *M0.

3.8.8. Propriétés des réseaux de Petri

Les propriétés génériques informent le développeur sur le comportement général du réseau de

Petri. Celles-ci doivent être complétées par l’analyse des propriétés spécifiques du système

modélisé. Ces propriétés sont souvent spécifiées par des formules logiques telles que la

logique temporelle linéaire (LTL) et la logique temporelle arborescente (CTL). La vérification

des propriétés nécessite la construction du graphe d’accessibilité.

Page 88: Une approche basée transformation de graphes pour la génération

76

3.8.8.1. Propriétés génériques

La vivacité, le caractère borné et la réinitialisabilité sont les principales propriétés génériques

qui peuvent être automatiquement vérifiées dans un réseau de Petri.

Vivacité et blocage

Un réseau de Petri est vivant si et seulement si toutes ses transitions sont vivantes.

Une transition t d’un réseau de Petri ayant M0 comme marquage initial est dite vivante

si pour tout marquage M du réseau de Petri atteignable à partir de M0, nous pouvons

toujours trouver une séquence franchissable de transitions dans laquelle la transition t

figure. La vivacité d’un réseau de Petri dépend de son marquage initial M0.

Un réseau de Petri vivant garantit l’absence de blocages et de parties mortes (non

atteintes) dans la structure du réseau. Il garantit ainsi la possibilité de toujours

atteindre les services du système modélisé dans le réseau.

Réseau borné, Réseau Sauf

Un réseau de Petri est borné si et seulement si toutes ses places sont bornées.

Une place p est bornée si pour tout marquage M, le nombre de jetons dans la place est

inférieur à une constante k : ∀ M, M(p) < k.

Le caractère borné d’un réseau de Petri renseigne sur les valeurs limites des ressources

demandées par le système. Si un réseau est borné, et la borne est égale à 1, alors il est

dit sauf.

Conflit

Un conflit structurel correspond à un ensemble d’au moins deux transitions t1 et t2

avec une place d’entrée en commun. Ceci est noté comme suit :

k = < p , {t1,t2,…,tn} >

Un conflit effectif est l’existence d’un conflit structurel k, et d’un marquage M, tel que

le nombre de marques dans p est inférieur au nombre de transitions de sortie de p qui

sont validées par M.

Réinitialisabilité

Un réseau de Petri est réinitialisable si et seulement si pour tout marquage M, il existe

une séquence de transitions qui permet de revenir au marquage initial M0.

Page 89: Une approche basée transformation de graphes pour la génération

77

Cette propriété renseigne sur le fonctionnement répétitif, ce qui est pertinent pour la

majorité des systèmes interactifs.

3.8.8.2. Propriétés spécifiques

Les propriétés spécifiques sont regroupées en quatre types: Les propriétés d’accessibilité, de

sûreté, de vivacité et d’équité.

L’accessibilité (reachability) : détermine si une situation est accessible ou non à partir

du graphe d’accessibilité.

La sûreté (safety) : certaines situations ne devront jamais être atteintes.

La vivacité (liveness) : une situation finira tôt ou tard par avoir lieu.

L’équité (fairness) : une situation aura lieu une infinité de fois.

3.8.8.3. Graphes des marquages

Le graphe des marquages accessibles de N depuis M0, noté G(N,M0) est le graphe dont les

états sont les marquages accessibles tel qu’il existe un arc entre deux sommets M1 et M2 si et

seulement si M1 [ t>M2.

La figure 3.4 montre un exemple du graphe des marquages du réseau de Petri (a).

Figure 3.4 : Graphe des marquages du réseau de Petri (a)

t2 t1

t1

t2

t1

P1 P2

t1

t2 (1,0)

(0,1)

(1,0)

(1,0)

(0,1)

(a) (b) (c)

Page 90: Une approche basée transformation de graphes pour la génération

78

3.8.9. Évolution des réseaux de Petri

Malgré les facilités qu’il offre, le formalisme des réseaux de Petri classique souffre d’un

certain manque de structuration et d’expressivité lorsqu’il s’agit de distinction entre les jetons,

ou l’expression de dimension temporelle. Dans ce cas, l’utilisation des réseaux de Petri tels

qu’ils ont été définis par Adam Petri produirait des modèles de taille significative, qui

croissent rapidement avec la complexité du système. De ce fait, la manipulation et l’analyse

de ces grands modèles devient très difficile, voire impossible.

Pour y remédier et ainsi augmenter le niveau d’expressivité, les réseaux de Petri ont connu

plusieurs extensions. Les plus connues sont les réseaux de Petri colorés [Jensen 97, Jensen98],

les ECATNets [Bettaz92, Bettaz93], les réseaux de Petri algébriques, les réseaux de Petri

Prédicats/Transitions [Genrich81], les G-Nets [Deng93] et les GSPN [Ajmone95] qui seront

présentés et étudiés par la suite.

3.8.10. Modélisation des systèmes concurrents

L’avantage des réseaux de Petri réside dans leur capacité à modéliser un grand nombre de

comportements dans les systèmes complexes. Parmi ces comportements, nous trouvons le

parallélisme, la synchronisation, le partage de ressources, la mémorisation, la lecture

d’informations, la limitation de capacité de stockage, etc.

Le parallélisme

Le parallélisme est défini comme l’évolution simultanée de plusieurs processus dans un même

système. Dans un réseau de Petri, le parallélisme est déclenché avec une transition ayant

plusieurs places de sortie, comme présenté dans la figure 3.5.

P1

t1

p2 p3

Figure 3.5 : Réseau de Petri avec parallélisme

Processus1 Processus2 Processus1

Page 91: Une approche basée transformation de graphes pour la génération

79

Le franchissement de la transition t1 met un jeton dans la place P2, et un jeton dans la place

P3, ce qui marque le déclenchement du processus 1 et du processus 2 en parallèle.

La synchronisation

Il existe deux types de synchronisation : la synchronisation mutuelle (rendez-vous) et la

synchronisation par signal (sémaphores).

Synchronisation mutuelle : Cette synchronisation permet de synchroniser les

opérations de deux processus comme le montre la figure 3.6.

t1

Figure 3.6 : Réseau de Petri avec synchronisation mutuelle

Pour que la transition t1franchisse, il faut que la place P1 qui correspond au processus1

et la place P2 qui correspond au processus 2 contiennent chacune au moins un jeton.

Autrement, si par exemple la place P1 ne contient pas de jetons, le processus2 reste

bloqué sur la place P2; il attend que le processus 1 réussisse à obtenir un jeton dans la

place p1 au cours de son évolution.

Synchronisation par signal : Les opérations du processus 2 se poursuivent à condition

que le processus 1 ait atteint un certain niveau dans son évolution. Ceci n’est pas le cas

du processus 1 qui ne dépend pas de l’avancement des opérations du processus 2. Un

exemple est illustré dans la figure 3.7.

Attente

Signal

P2 P1

P3 P4

Processus1 Processus2

Processus1 Processus2

Page 92: Une approche basée transformation de graphes pour la génération

80

Figure 3.7 : Réseau de Petri avec synchronisation par signal

Lorsque la place "Signal" est marquée et la place "Attente" ne l’est pas, ceci se traduit

par un processus 1 qui a envoyé le signal que le processus 2 n’a pas encore reçu. Si, à

l’inverse, la place "Signal" n’est pas marquée et la place "Attente" est marquée, cela

signifie que le processus 2 est en attente du signal.

Le partage de ressources

Il s’agit de modéliser le cas de plusieurs processus se partageant une même ressource

dans un même système, en utilisant l’exclusion mutuelle.

Figure 3.8 : Réseau de Petri avec partage de ressource

Dans la figure 3.8, le jeton dans la place P0 représente une ressource commune entre le

processus 1 et le processus 2. Après le franchissement de la transition t1 lors de

l’évolution du processus 1, le jeton de la place P0 est alors consommé. La ressource

que constitue ce jeton n’est alors plus disponible pour l’évolution du processus 2. Lors

du franchissement de la transition t4, un jeton est placé dans la place P0, et la ressource

est de nouveau disponible.

La mémorisation

Une place sans entrée ou sans sortie peut être utilisée dans tous les modèles pour compter

le nombre de tirs d’une transition. Dans la figure 3.9, les places "Attente" et "Compteur"

peuvent indiquer combien d’instances d’un processus sont en attente.

P0

t4

t2 t1

t3

Processus1 Processus2

P1 P2

Page 93: Une approche basée transformation de graphes pour la génération

81

Figure 3.9 : Réseau de Petri illustrant le cas de la mémorisation

3.8.11. Méthodes d’analyse des réseaux de Petri

Analyse par graphes des marquages

Le plus simple pour analyser les propriétés d’un réseau de Petri est de construire son graphe

des marquages accessibles. Dans ce graphe, chaque sommet correspond à un marquage

accessible et chaque arc correspond au franchissement d’une transition permettant de passer

d’un marquage à un autre. Nous pouvons distinguer deux situations :

-Le graphe est fini : dans ce cas toutes les propriétés peuvent être déduites simplement en

analysant ce graphe. La situation d’un graphe fini est certainement la situation la plus

favorable.

- Le graphe est infini : dans ce cas, il faudra construire le graphe de couverture qui permettra

de déduire certaines propriétés.

Analyse par algèbre linéaire

Cette idée permet d’étudier les propriétés d’un réseau de Petri indépendamment du marquage

initial. Nous parlons alors de propriétés structurelles du réseau.

Un réseau est structurellement borné s’il est borné pour tout marquage initial fini, et si pour

tout marquage initial le réseau est vivant, nous déduiront que le réseau est structurellement

vivant.

Analyse par réduction

Lorsque la taille du réseau de Petri devient importante, l’analyse de ses propriétés s’avère

compliquée avec l’utilisation du graphe des marquages. La réduction permet d’obtenir un

Compteur

Attente

Page 94: Une approche basée transformation de graphes pour la génération

82

réseau de Petri simplifié à partir d’un réseau de Petri marqué, en appliquant des règles de

réduction. Ces règles réduisent le nombre de places et de transitions.

:

Pour les propriétés étudiées, le réseau de Petri simplifié doit être équivalent au premier

réseau de Petri marqué.

Le réseau de Petri simplifié doit être suffisamment simple pour que l’analyse de ses

propriétés soit simple.

En général, le réseau de Petri simplifié ne peut pas s’interpréter comme le modèle d’un

système.

3.9. Les Réseaux de Petri Généralisés Stochastiques (GSPN)

Lorsque Carl Adam Petri a introduit les réseaux de Petri dans sa thèse pour la première fois,

ils avaient servi pour décrire un comportement concurrent dans un système en termes de

relations causes/effets, sans considérer la notion du temps.

L’introduction du temps dans le réseau de Petri a été proposée des années plus tard par les

scientifiques C.Ramchandi, P.M.Merlin, D.J.Farber et J.Sifakis avec différentes approches.

Plusieurs propositions basées sur l’utilisation d’une distribution de temps déterministe ont été

alors présentées, mais les premières à avoir introduit le temps stochastique dans les réseaux de

Petri sont F.Symons, G.Florin, S.Natkin et M.Molloy.

Ces propositions ont ouvert la possibilité de lier les réseaux de Petri aux techniques de

l’évaluation des performances et l’analyse généralement basées sur des approches de

modélisation stochastiques. Ces modèles sont appelés aujourd’hui les SPN (Stochastic Petri

Net). Une extension de cette approche a été donnée par M.Molloy où la temporisation

stochastique est mixée avec les délais nuls déterministes. De ce fait, une analyse temporelle et

logique du système peut être réalisée sur un modèle. Ce formalisme de modélisation est

appelé les GSPN [Ajmone95] (Generalized Stochastic Petri Nets).

Le franchissement d’une transition est le résultat soit d’une condition logique basculée à

« vrai » dans le système, soit de la terminaison d’une activité. Cette dernière interprétation est

la raison qui incite à associer le temps aux transitions.

3.9.1. Les motivations de l’introduction du temps dans les réseaux de Petri

Dans l’histoire de la modélisation et l’analyse des systèmes, nous constatons qu’il y a eu

d’une manière générale des modèles strictement qualitatifs comme les réseaux de Petri, et des

modèles strictement quantitatifs comme les files d’attente ou les chaînes de Markov. Plus tard,

des études ont été lancées pour l’étude d’un système avec le lien entre ce qui est évalué et ce

qui est vérifié, et donc voir apparaitre des modèles qui intègrent à la fois des éléments

qualitatifs et des éléments quantitatifs, avec des caractéristiques temporelles en particulier.

Page 95: Une approche basée transformation de graphes pour la génération

83

Les réseaux de Petri ont été reconnus comme modèles pratiques pour la modélisation des

systèmes concurrents, capables de faire face à tous les aspects du parallélisme et les conflits

dans les activités asynchrones. Le temps n’est pas important pour visualiser les relations entre

les entités du système, mais il est d’une importance primordiale lorsqu’il est question de la

dynamique du système, notamment dans les domaines de l’architecture des ordinateurs ou les

protocoles de communication.

Carl Adam Petri a intentionnellement évité l’idée d’introduire le temps dans les réseaux de

Petri à cause des conséquences que cela pourrait provoquer sur le comportement du système

réel. En effet, associer le temps aux activités représentées dans les réseaux de Petri peut

bloquer certaines transitions, ce qui remettrait en cause la possibilité de la structure des

réseaux de Petri à représenter tous les comportements d’un système.

L’introduction du concept du temps dans les réseaux de Petri rend ces derniers très puissants,

mais reste incompatible avec la philosophie de base de ces réseaux. Cette attitude est due au

fait que les réseaux de Petri ont été considérés à leurs débuts comme des automates formels

avec des propriétés de base, appliqués à des tâches qui ne nécessitent pas forcément

d’informations sur le temps.

Les réseaux de Petri stochastiques [Ajmone95] sont des extensions temporelles et

stochastiques des réseaux de Petri qui permettent l’analyse qualitative et quantitative des

systèmes. Le temps peut être attribué aux places, aux arcs ou aux transitions.

La façon la plus naturelle pour l’introduction du temps est la suivante : étant donné un

marquage M, une quantité de temps doit se consommer depuis l’entrée dans ce marquage

avant qu’un événement (tir d’une transition) ne se produise et bascule l’état du système dans

un marquage M’, et donc associer le temps aux transitions.

L'ajout des spécifications temporelles ne doit pas modifier la façon d'exprimer le parallélisme

et la synchronisation dans les réseaux de Petri. Le GSPN satisfait cela et fournit un

formalisme qui permet la construction de modèles qui peuvent être utilisés à la fois pour des

analyses comportementales basées sur la théorie classique des réseaux de Petri, et également

pour les études de performance basées sur les spécifications temporelles et les modèles

probabilistes.

Les GSPNs représentent une sorte de compromis entre les deux besoins de l’analyse

qualitative et l’analyse quantitative des systèmes, car ils incluent des extensions qui sont très

utiles dans la modélisation pratique.

3.9.2. Réseaux de Petri stochastiques

Le processus stochastique (ou fonction aléatoire) est une famille {Xt} tT de variables

aléatoires définie dans le temps t. Un modèle d’évolution dynamique dans lequel on fait

Page 96: Une approche basée transformation de graphes pour la génération

84

dépendre l’évolution future de l’état présent et du hasard est une chaîne de Markov. C’est un

processus stochastique construit sur la philosophie suivante : « conditionnellement au présent,

le futur ne dépend pas du passé.».

Les réseaux de Petri stochastiques sont des réseaux de Petri étendus temporellement dans

lesquels la notion de trajectoire temporisée [JuaGal97] a été introduite. La trajectoire

temporisée ∑t est une séquence de marquages avec la séquence de transitions et les dates

d’entrée dans les marquages :

∑ t = { (tm(0), M(0)) ; (t1, tm(1), M(1)) ; …. ; (ti , tm(i) , M(i)) ; (ti+1 , tm(i+1) , M(i+1))}

Pour chaque i, M(i) est le marquage atteint ; ti est la transition i ; tm(i) est la date d’entrée

dans le marquage. La durée de séjour dans le marquage M(i) est donnée par tm(i+1) – tm(i).

Le déroulement depuis tm(0) jusqu’à tm(i) constitue l’histoire (mémoire temporelle) notée

Z(i).

L’ensemble de trajectoires temporisées est muni d’une mesure de probabilité telle que le

couple (marquage, instant d’entrée dans le marquage) constitue un processus stochastique.

L’étude de ce processus stochastique suppose que pour tout i, Z(i) et M(i), et pour toutes les

transitions sensibilisées en M(i), nous pouvons définir de manière unique la probabilité ou le

noyau suivant :

Dk (x/Z(i), M(i)) = Prob {tk tirée, tm(i+1) – tm(i) x/Z(i), M(i)}

Le noyau exprime la probabilité que la transition tk soit la prochaine transition tirée (limite de

Dk (x/Z(i), M(i)) lorsque x → ∞ ) ainsi que la distribution du temps de séjour dans M(i) (∑ Dk

(x/Z(i), M(i)) la somme portant sur l’ensemble des transitions sensibilisées en M(i)).

Donc, dans un réseau de Petri stochastique, d’une part nous associons à toute transition tk, une

variable temporelle aléatoire yk caractérisée par une fonction de répartition Fk(x/M(i)), et

d’autre part, nous définissons une politique d’exécution qui permet de calculer le noyau

Dk(x/Z(i), M(i)) et donc de caractériser le processus stochastique du marquage.

3.9.3. Politique d’exécution et processus stochastique

La politique d’exécution concerne la sélection de la transition à tirer dans un marquage, et la

prise en compte dès l’instant d’entrée dans un marquage de l’histoire ou mémoire temporelle.

En ce qui concerne la sélection de la transition à tirer, nous distinguons deux techniques :

La compétition : Consiste à tirer la transition dont la variable temporelle aléatoire est

statistiquement la plus petite. Cette technique n’est pas applicable dans le cas de

transitions sensibilisées simultanément avec des distributions déterministes identiques.

Page 97: Une approche basée transformation de graphes pour la génération

85

La présélection : Il s’agit d’attribuer aux transitions des probabilités de

franchissement.

Pour ce qui est de la prise en compte de la mémoire temporelle, nous distinguons trois

techniques :

La réinitialisation : Il s’agit de remettre à zéro la mémoire temporelle. Après le tir

d’une transition, la fonction de répartition de toutes les transitions simultanément

sensibilisées avec cette dernière est réinitialisée.

La mémoire de toutes les périodes de sensibilisation : La mémoire temporelle d’une

transition débute dès que cette transition est sensibilisée pour la première fois, et se

maintient jusqu’à ce qu’elle soit effectivement tirée.

La mémoire de la dernière période de sensibilisation : Considère que la mémoire

est opérationnelle uniquement tant que la transition est sensibilisée.

Nous pouvons combiner les techniques de la sélection avec les techniques de prise en compte

de la mémoire temporelle de la manière suivante :

Combinaison de la présélection avec la réinitialisation : pour la modélisation des

activités conflictuelles qui ne peuvent se dérouler en parallèle. La combinaison de la

présélection avec les techniques de la mémoire temporelle n’est pas envisageable, cela

aboutirait, suivant la présélection, à des situations où plusieurs activités se déroulent

en parallèle, et où l’activité présélectionnée a la durée la plus longue, ce qui

empêcherait des activités plus courtes d’induire un changement de marquage.

Combinaison de la compétition avec la mémoire de toutes les périodes de

sensibilisation : pour la modélisation de la préemption (ordonnancement, sûreté de

fonctionnement).

Combinaison de la compétition avec la mémoire de la dernière sensibilisation :

pour modéliser des mécanismes de « time-out ».

La nature du processus stochastique de marquage dépend de la technique de prise en compte

de la mémoire temporelle.

Pour la réinitialisation, le processus stochastique de marquage est un processus semi-

markovien car le noyau ne dépend plus de l’histoire quelles que soient les fonctions de

répartition des variables temporelles aléatoires (chaque marquage est un point de

régénération).

Dans le cas de la mémoire de toutes les périodes de sensibilisation ou de la dernière

sensibilisation où seule la technique de compétition peut être envisagée, le noyau dépendra de

Page 98: Une approche basée transformation de graphes pour la génération

86

l’histoire. Nous ne pouvons donc émettre une conclusion à ce niveau sur le type du processus

stochastique.

3.9.4. Le modèle SPN

Les réseaux de Petri de type SPN sont des réseaux dans lesquels une variable aléatoire est

associée à chaque transition. Cette variable spécifie la durée qui sépare l’instant de

sensibilisation d’une transition et l’instant de tir de celle-ci.

La politique de choix de la transition à tirer est la politique de compétition (la mémoire

temporelle n’est plus envisageable). Les fonctions de répartitions des variables aléatoires

associés aux transitions étant toutes exponentielles, nous pouvons constater que :

-Le processus de marquage est un processus markovien, et donc nous pouvons appliquer

toutes les méthodes de calcul markovien (le graphe de marquage est isomorphe à une chaîne

de Markov).

-Puisqu’il n’y a pas de mémoire temporelle de la loi exponentielle, il y a perte, à chaque

instant, de la mémoire des travaux cumulés. Cela implique que lors du tir d’une transition, les

attributs temporels des transitions en parallèle ne sont pas modifiés.

3.9.5. Le modèle GSPN

Afin d’obtenir une représentation réelle du système, nous avons besoin de modéliser son

aspect stochastique imposé par les retards aléatoires, et donc attribuer des variables aléatoires

dans la modélisation de certaines transitions. En même temps, toutes les transitions dans un

système ne modélisent pas une durée dans le temps, comme c’est le cas d’une vérification

d’une condition ou autre actions logiques. Pour cette raison, et dans le but d’avoir une vue

globale du système, le modèle GSPN (Generalized Stochastic Petri Nets) considère à la fois

des transitions avec une distribution exponentielle des durées, dites temporisées, et des

transitions avec des durées nulles, dites immédiates.

Le processus stochastique fait qu’à chaque nouvelle mesure pour un marquage M, nous

obtenons de nouvelles valeurs pour les variables aléatoires qui modélisent les retards liés à

l’exécution des activités dans les transitions temporisées. Les transitions immédiates quant à

elles modélisent les actions logiques qui ne consomment pas de temps, ou bien des durées

négligeables.

3.9.5.1. Transitions temporisées

Le franchissement d’une transition dans un réseau de Petri correspond à l’événement qui

change l’état du système. Ce changement est dû à l’une des raisons : soit la vérification d’une

condition logique dans le système, soit la terminaison d’une activité. Dans le second cas où

les transitions sont utilisées pour modéliser des activités, les temps de ces transitions

Page 99: Une approche basée transformation de graphes pour la génération

87

correspondent aux temps nécessaires pour l’exécution des activités, et les franchissements à la

fin de ces activités.

Les transitions temporisées sont représentées comme suit (figure 3.10) :

Figure 3.10 : Syntaxe d’une transition temporisée

La figure ci-dessus montre une transition t« temporisée ». Lorsqu’un jeton est généré dans la

place p1, t devient franchissable et le chronomètre est initialisé. Le chronomètre est ensuite

décrémenté à une vitesse constante, et la transition est franchie lorsque le chronomètre atteint

la valeur zéro. Le chronomètre associé à la transition peut alors servir pour modéliser la durée

d’une activité dont la terminaison implique le changement d’état. Ce dernier est représenté par

le changement de marquage provoqué par la transition t.

Cette activité représentée par la transition t dépend du système modélisé, elle peut

correspondre par exemple à l’exécution d’une tâche par le processeur, la transmission d’un

message dans un protocole de communication, etc. Il est à noter qu’une activité est considérée

en cours d’exécution tant que la transition est active. Une interruption d’une activité peut

survenir si la transition perd sa condition de tir avant son franchissement. L’activité peut se

réactiver plus tard, et se répéter jusqu’à ce que le chronomètre atteigne la valeur zéro, et la

transition est alors franchie.

3.9.5.2. Transitions immédiates

Comme il a été vu précédemment, tous les événements qui surviennent dans un modèle de

système ne correspondent pas à la terminaison d’activités ayant consommé des unités de

temps. Prenons le cas d’un multiprocesseur modélisé à un haut niveau d’abstraction, dans ce

modèle, nous négligeons les durées des tâches de switch qui sont considérées comme

insignifiantes devant les autres tâches d’exécution. Il est donc important d’introduire ce

t

P2

P1

02 :00

Temps

Page 100: Une approche basée transformation de graphes pour la génération

88

second type de transitions, dites immédiates, franchissables aussitôt qu’elles sont tirées, avec

aucun retard.

Les transitions immédiates peuvent également modéliser des actions logiques lorsque le

système se retrouve dans une situation de choix entre deux alternatives. Dans le modèle SPN,

ces actions sont modélisées de façon à ce qu’elles prennent une certaine quantité de temps, ce

qui n’est pas naturel dans le système réel.

Cet ensemble de transitions immédiates combinées aux transitions temporisées sont

exprimées dans les GSPN, et il a été convenu de leur attribuer la priorité par rapport aux

transitions temporisées.

Les transitions immédiates et temporisées sont représentées comme le montre la figure 3.11.

Figure 3.11 : Transition temporisée (a) et transition immédiate (b)

3.9.6. Définition formelle du modèle GSPN

Formellement [Ajmone95], un réseau GSPN est défini comme un 6-tuple :

MGSPN = (P, T, I, O, M0, Π, W)

Où:

M = (P, T, I, O, M0) est un réseau de Petri, W: T → R est une fonction sur l’ensemble des

transitions qui permet de définir le processus stochastique associé au modèle.

Π: T → N est une fonction qui associe un niveau de priorité à chaque transition.

Nous pouvons définir deux types de marquages :

-Les marquages tangibles dans lesquels seules des transitions temporisées sont sensibilisées.

La politique de sélection est la politique de compétition sont utilisées. La mémoire temporelle

n’est pas précisée puisque la distribution exponentielle n’a pas de mémoire temporelle.

(a) (b)

Page 101: Une approche basée transformation de graphes pour la génération

89

-Les marquages évanescents dans lesquels au moins une transition immédiate est sensibilisée,

et dans ce cas la manière de choisir une transition à tirer est complexe, et basée sur une

politique de présélection.

Prenons l’exemple d’un GSPN [Ajmone95] illustré dans la figure 3.12 :

La transition Tnewdata décrit une activité de lecture d’une nouvelle information (avec retard

aléatoire) qui déclenche aussitôt deux processus parallèles.

Les transitions Tnewdata, Tpar1, Tpar2, Ti/o et Tcheck sont temporisées, contrairement aux

transitions tstart, tsyn, tok, et tko qui sont immédiates.

Tnewdata décrit l’activité par laquelle une suite d’informations passe en lecture, et est

temporisée à λ=0.1. Dès qu’une nouvelle information est disponible, deux processus

parallèles débutent avec l’opération décrite dans la transition Tstart dont le poids est égal à 1.

L’exécution de deux processus consomme des quantités de temps aléatoires. Lorsque les deux

processus se terminent, une synchronisation prend place dans l’opération décrite par la

transition immédiate tsync, dont le poids est aussi égal à 1.

Les deux transitions immédiates tok et tko forment un conflit de choix multiples. Si la

probabilité d’avoir un résultat inconsistant est égale à 0.1, un poids de 1 est assigné à la

transition tko et un poids de 9 est assigné à la transition tok. Si les résultats ne sont pas

consistants (tko franchit), l’exécution parallèle est répétée après un contrôle par la transition

temporisée Tcheck. Autrement, l’exécution atteint la transition Ti/o qui est temporisée.

Il est important de savoir que les valeurs des poids associés avec tstart et tsync sont

insignifiantes car ces deux transitions ne sont jamais tirées dans une situation conflictuelle

avec d’autres transitions immédiates. Dans le cas contraire, le poids de ces deux transitions est

important car elles définissent la probabilité de l’inconsistance du résultat après l’exécution

parallèle.

Page 102: Une approche basée transformation de graphes pour la génération

90

Figure 3.12 : Exemple d’un GSPN avec des transitions immédiates et des transitions

temporisées

3.10. Les analyses effectuées

Ce sont des analyses orientées performances, c'est-à-dire elles exploitent l’attribut

stochastique du modèle. La plus grande partie des analyses sont supportées par des réseaux de

Petri stochastiques semi-markoviens bornés dont le graphe des marquages est fortement

Tcheck

Ti/o

tko

tok

tsyn

Tpar1

tstart

Tpar2

Tnewdata

Page 103: Une approche basée transformation de graphes pour la génération

91

connexe. Les analyses basées sur les graphes des marquages (états) consistent en des analyses

en régime permanent (probabilité des marquages, fréquences moyennes de tir de transitions,

temps de séjour dans un marquage, …) et en régime transitoire (temps moyen de premier

passage dans un marquage). Dans le cas de graphe des marquages acycliques, nous pouvons

faire des analyses en régimes transitoire (temps moyen pour atteindre un marquage puits).

Notons que dans le cas des systèmes complexes, nous obtenons des graphes de marquages de

très grande taille, donc difficiles à analyser, ce qui a induit à des travaux pour développer des

techniques de modélisation afin de maîtriser la dimension des graphes et donc gérer la

difficulté de l’analyse.

3.11. Conclusion

Dans ce chapitre, nous avons défini les concepts de base des méthodes et langages formels et

leurs techniques d’utilisation, notamment dans le contexte IDM. Nous nous sommes

intéressés aux avantages et inconvénients qui émergent de leur combinaison. Nous avons

également présenté les réseaux de Petri de façon générale en mettant l’accent sur leur aptitude

à décrire les aspects dynamiques d’un système. Des concepts tels que la concurrence ou la

synchronisation entre interactions s’expriment aisément dans ce cadre. Les GSPN qui sont

une manière d’introduire la notion du temps dans les réseaux de Petri ont été introduits à la fin

de ce chapitre.

Page 104: Une approche basée transformation de graphes pour la génération

92

Chapitre 4 : Une approche de

transformation des diagrammes de

séquence et des diagrammes d’états-

transitions en réseaux de Petri GSPN à

l’aide des transformations de graphes

Page 105: Une approche basée transformation de graphes pour la génération

93

Chapitre 4

Une approche de transformation des diagrammes de

séquence et des diagrammes d’états-transitions en réseaux

de Petri GSPN à l’aide des transformations de graphes

4.1. Introduction

Dans ce chapitre, nous proposons une approche et un outil pour la transformation des

diagrammes d’états-transitions et des diagrammes de séquence vers les GSPN. Notre

approche est basée sur la transformation de modèles. Un diagramme d’états-transitions est

utilisé pour modéliser un objet, et un diagramme de séquence est utilisé pour modéliser les

interactions entre les objets d’un système. Le résultat de la transformation (modèle GSPN)

sera ensuite l’entrée de l’outil TINA [TINA] pour vérifier les propriétés telles que l’inter-

blocage, l’équité, etc.

Notre approche suit le schéma suivant : (Figure 4.1)

Figure 4.1 : Schéma de notre approche

Le passage des diagrammes UML 2.0 vers leurs équivalents en GSPN a été réalisé par une

transformation de graphes. Cette transformation est réalisée sous l’environnement de

Diagramme

d’états-

transitions

Notre outil de

transformation GSPN TINA

Analyse des

propriétés

Diagramme de

séquence

Page 106: Une approche basée transformation de graphes pour la génération

94

programmation Java Eclipse. Les diagrammes de séquence et les diagrammes d’états-

transitions sont réalisés en conformité avec leurs méta-modèles respectifs. Le scénario de la

transformation est représenté dans la figure 4.2.

Figure 4.2 : Scénario de notre transformation

4.2. Réalisation dans Eclipse

Ce que nous avons réalisé sous Eclipse consiste en la création de trois librairies de méta-

modèles et une librairie de grammaire agissant comme moteur de transformation. Il est à noter

que cet outil ne rentre pas dans le cadre des plugins Eclipse, car le moteur de transformation

ne dépend pas de l’environnement Eclipse, mais peut également s’exécuter sur le shell ou sur

n’importe quel ordinateur doté de Java. D’ailleurs, c’est pour cette raison que nous avons

intentionnellement évité l’utilisation des environnements dédiés d’Eclipse afin de permettre à

notre approche d’être générique et indépendante de l’environnement.

La figure 4.3 est une représentation de l’ensemble des librairies créées dans Eclipse.

Conforme à Exécute

Lit Ecrit

Réfère à Réfère à

Méta-modèle UML 2.0 Méta-modèle GSPN

Modèles UML 2.0 Modèle GSPN

Définition de la

transformation

Moteur de

transformation

Conforme à

Page 107: Une approche basée transformation de graphes pour la génération

95

Figure 4.3 : Les librairies de notre approche dans Eclipse

4.3. Les méta-modèles de notre approche

Comme nous l’avons dit précédemment, pour définir un langage de modélisation, il est

nécessaire de définir sa syntaxe abstraite et sa syntaxe concrète. Les méta-modèles

représentent pour notre approche la base de la transformation. Pour chacune de ces

transformations, chaque modèle est défini dans son propre méta-modèle. Nous avons

développé des librairies de méta-modèles pour les diagrammes de séquence, les diagrammes

d’états-transitions et les réseaux de Petri GSPN en Java sous Eclipse.

4.3.1. Méta-modèle des diagrammes de séquence

Le méta-modèle des diagrammes de séquence est composé de trois classes:

« SequenceDiagram », « Objet » et « Message ».

Objet

Cette classe représente les objets du diagramme de séquence. Ces objets envoient et

reçoivent des messages dans un ordre chronologique. Chaque objet est désigné par son

nom.

Message

Cette classe représente les messages échangés entre les objets. Chaque message est

étiqueté par le nom de l'opération qui lui correspond, l’objet qui l’envoie et celui qui le

reçoit. Ces messages sont testés dans cette classe, ils peuvent être synchrones ou

asynchrones, retardés ou non-retardés.

Invoque les classes

Invoque les classes

Invoque les classes

Librairie de

modélisation

des

Diagrammes de

séquence

Librairie de

modélisation

des

Diagrammes

D’états-

transitions

Librairies de

grammaire de

transformation

Librairie de

modélisation

des réseaux

GSPN

Page 108: Une approche basée transformation de graphes pour la génération

96

SequenceDiagram

Cette classe a pour fonction d’associer les messages aux objets qui communiquent, et

ainsi construire le diagramme de séquence final.

La figure 4.4 montre le méta-modèle des diagrammes de séquence que nous avons

implémenté en Java.

Figure 4.4 : Méta-modèle des diagrammes de séquence

4.3.2. Méta-modèle des diagrammes d’états-transitions

Le méta-modèle des diagrammes d’états-transitions comporte essentiellement trois classes,

« State », « Transition » et « Statechart » :

State

Cette superclasse représente les états du diagramme d’états-transitions. Chaque état

possède un nom, et peut avoir ou non des activités associées. Deux classes héritent de

cette classe :

CompState : Représente les états composites.

SimpState : Représente les états simples.

Transition

Cette classe représente les actions lors du changement d’états à travers les transitions.

Chaque transition est étiquetée par l’événement «event» et le nom de l’action.

Source

Target

-Operation

-Ordre

-Async

-Delayed

-name

+toString()

+toString()

Page 109: Une approche basée transformation de graphes pour la génération

97

Statechart

Cette classe associe les transitions aux états et construit le modèle final.

La figure 4.5 montre le méta-modèle des diagrammes d’états-transitions que nous avons

implémenté en Java.

Figure 4.5 : Méta-modèle des diagrammes d’états-transitions

4.3.3. Méta-modèle des réseaux de Petri GSPN

Notre méta-modèle comprend trois classes « Place », « Transition » et « GSPN ». La place

initiale est la première place du GSPN dont le nom est préfixé par ‘’ini_’’ elle contient par

défaut un jeton. Nous avons implémenté en Java une contrainte qui empêche la liaison de

deux transitions ou deux places par un seul arc. Autrement dit, l’input d’une transition est

toujours une place, et l’input d’une place est toujours une transition.

Source

Target

-action -event -async

-name

+ToString() +ToString()

+display()

Page 110: Une approche basée transformation de graphes pour la génération

98

Place

Cette classe décrit les places du GSPN. Chaque place possède un nom et un nombre de

jetons. Une place ne peut pas être reliée à une autre place ou à elle-même comme cela

a été exprimé par la contrainte.

Transition

Deux classes héritent de cette superclasse : Transition_i qui représente les transitions

immédiates prenant 0 unité de temps, et Transition_t qui représente les transitions

temporisées prenant une valeur aléatoire d’unités de temps. Les transitions sont

étiquetées par des noms d’actions.

GSPN

Cette classe construit le modèle GSPN final en reliant les places aux transitions, et en

prenant en compte les contraintes sur le modèle.

La figure 4.6 montre le méta-modèle des réseaux GSPN que nous avons implémenté

en Java.

Figure 4.6 : Méta-modèle du GSPN

input

output -name -tokens

-name

+stoch()

+display()

T

Page 111: Une approche basée transformation de graphes pour la génération

99

4.4. Transformations dans Eclipse

Nous avons choisi Java pour implémenter les méta-modèles et la grammaire pour des raisons

de compatibilité avec les concepts orientés objet d'UML 2.0 d'un côté, et pour ses multiples

caractéristiques de simplicité, robustesse et sécurité d’un autre. Java est un langage standard et

dynamique. Le développement que nous avons réalisé permet une certaine souplesse pour des

éventuels changements ou améliorations des méta-modèles ou la grammaire. Pour ça, il suffit

de changer les classes correspondantes.

Dans un système, les objets sont caractérisés par leurs comportements. Ce comportement est

exprimé à travers un ensemble d’états que les objets peuvent adopter au cours de leurs

évolutions. Nous modélisons généralement les états d’un objet à l’aide des diagrammes

d’états-transitions [Harel85].

Par ailleurs, la dynamique d’un système est définie par l’interaction entre les objets de ce

dernier. Cette interaction est permanente. Pour notre cas, nous avons choisi les diagrammes de

séquence pour modéliser cette interaction puisqu’elle exprime le temps. Les objets du

diagramme de séquence sont eux-mêmes des diagrammes d’états-transitions. De ce fait,

modéliser cette communication revient à relier les diagrammes d’états-transitions

correspondants aux objets du diagramme de séquence, en créant des liens entre les GSPN

correspondants. Nous pourrons par la suite appliquer des outils d’analyse et de vérification au

modèle GSPN.

La figure 4.7 illustre la relation entre le diagramme de séquence, les diagrammes d’états-

transitions et le GSPN.

Page 112: Une approche basée transformation de graphes pour la génération

100

Figure 4.7 : Relation entre diagramme de séquence et diagrammes d’états-transitions

Pour chaque objet o1, o2, o3, o4 correspond le diagramme d’états-transitions qui modélise

son ensemble d’états. Ces objets s’échangent des messages M1, M2 et M3 dans le diagramme

de séquence.

Pour automatiser la transformation, nous avons créé des librairies de grammaires de

transformations dont l’une pour la transformation des diagrammes de séquence vers les

GSPN, et la seconde pour la transformation des diagrammes d’états-transitions vers les

GSPN. Chaque grammaire est composée d’un ensemble de classes avec des méthodes pour

convertir chacun des diagrammes UML 2.0 vers son équivalent en GSPN. La figure 4.8

illustre les étapes de transformations entre les modèles.

M3

M2

M1

:o1 :o2 :o3 :o4

Page 113: Une approche basée transformation de graphes pour la génération

101

Transformation 1 : diagramme de séquence vers GSPN

Transformation 2 : diagramme d’états-transitions vers GSPN

SC1 SC2

Figure 4.8 : Transformations en GSPN

La transformation des diagrammes de séquence en GSPN consiste en la transformation des

messages échangés entre les objets du système en leurs équivalents de transitions dans le

réseau GSPN suivant la grammaire. En considérant que les objets sont modélisés en

diagrammes d’états-transitions, ces diagrammes d’états-transitions sont transformés en

diagrammes GSPN, en faisant correspondre les transitions dans un diagramme d’états-

Op :m1

Op :m1

M3 M1

Diagramme d’états-

transitions SC4

M2

Diagramme d’états-

transitions SC3

Diagramme d’états-

transitions SC2

Diagramme d’états-

transitions SC1

Page 114: Une approche basée transformation de graphes pour la génération

102

transitions aux transitions dans un GSPN. Le GSPN final sera soumis à l’outil TINA pour

l’analyse et la vérification.

a- Transformation 1 : Diagrammes de séquence vers GSPN

Il s’agit de transformer un message M (figure 4.9) échangé entre deux objets

o1 et o2. Les objets o1 et o2 sont en réalité deux diagrammes d’états-

transitions, mais dans une première transformation, on fait abstraction des

diagrammes d’états-transitions représentants les états des objets qui

communiquent, et on ne s’intéresse qu’au message échangé M. Le message M

sera transformé suivant la grammaire « DS vers GSPN » qui transforme les

diagrammes de séquence en modèle GSPN, suivant si les messages sont

synchrones ou non, retardés ou non. Les places dans le GSPN représentent les

messages prédécesseurs et successeurs, ceci pour maintenir l’enchainement et

l’ordre des messages dans le diagramme de séquence.

« DS vers GSPN »

Figure 4.9 : Schéma de la première transformation des diagrammes de séquence vers les

GSPN

M

:o1 :o2 :o2

M m1,m2

Page 115: Une approche basée transformation de graphes pour la génération

103

b- Transformation 2 : Diagrammes d’états-transitions vers GSPN

Puisque les objets o1 et o2 sont des diagrammes d’états-transitions (figure

4.10), la deuxième étape consiste en la transformation des diagrammes d’états-

transitions relatifs aux objets o1 et o2 en leurs équivalents en modèle GSPN

suivant la grammaire « SC vers GSPN ».

« SC vers GSPN »

Figure 4.10 : Schéma de la deuxième transformation des diagrammes d’états-transitions vers

les GSPN

M

:o1 :o2

:o2

M

:o2

:o1 :o2

Page 116: Une approche basée transformation de graphes pour la génération

104

c- Combinaison de transformations et raffinement

Les actions sont ce qui lie le diagramme d’états-transitions aux messages du

diagramme de séquence. L’achèvement d’un message représente la

terminaison d’une action relative à l’envoi du message et accomplie par l’objet

émetteur. Prenons un message M échangé entre deux objets o1 et o2. Dans le

diagramme d’états-transitions de l’objet émetteur du message (o1), il existe au

moins une action qui cause l’envoi de ce message, et dans le diagramme

d’états-transition de l’objet récepteur de M (o2), il existe au moins une

transition qui modélise la réponse à l’événement qui représente la réception du

message. Le GSPN du diagramme d’états-transitions complet sera construit en

reliant les places des événements et les places « ack_ » de l’ensemble des

diagrammes d’états-transitions, en se basant sur la nature de la communication

représentée dans le GSPN du diagramme de séquence.

Figure 4.11 : Combinaison des deux transformations

L’aspect stochastique intervient dans ces transformations pour attribuer un temps aléatoire

aux transitions temporisées. Nous aurons besoin de modéliser également des transitions

immédiates prenant zéro unité de temps. Cette propriété de coexistence entre les deux types

de transitions représente l’aspect dit « Généralisé » dans les réseaux GSPN.

:o2 :o1

e_event

ack_event

Page 117: Une approche basée transformation de graphes pour la génération

105

4.4.1. Grammaire de transformation des diagrammes de séquence vers les réseaux de

Petri GSPN « DS vers GSPN »

Cette transformation est le résultat de l’exécution d’une grammaire de graphe, exprimée en

Java dans Eclipse. Cette grammaire comporte un ensemble de règles, se déroulant dans un

ordre défini par des priorités, et de manière itérative.

La transformation des diagrammes de séquence en réseaux de Petri GSPN suit l’ensemble de

règles suivant (figure 4.12) :

Figure 4.12 : Grammaire de transformation des diagrammes de séquence vers le modèle

GSPN

Les places dans le GSPN représentent les messages prédécesseurs et les messages

successeurs.

La première règle concerne les messages asynchrones non-retardés (Asynchronous=True et

Delayed=False). Quand les conditions de l’application de cette règle sont vérifiées, la

grammaire génère un sous-diagramme GSPN de deux états et une transition immédiate

étiquetée par le nom de l’opération du message.

La deuxième règle concerne les messages synchrones et non-retardés (Asynchronous=False et

Delayed=False). Lorsque cette règle est appliquée, la grammaire génère deux transitions

immédiates pour le début et la fin de l’opération du message synchrone (Start_op et End_op)

respectivement.

La troisième règle transforme les messages asynchrones et retardés du diagramme de

séquence. Cette règle nous montre l’intervention de l’aspect stochastique dans le formalisme

Page 118: Une approche basée transformation de graphes pour la génération

106

GSPN lorsque la règle génère une transition temporisée, avec un temps aléatoire pour

l’exception. La règle génère aussi une transition immédiate pour l’opération. Ce mélange de

transitions immédiates et temporisées constitue la force du formalisme GSPN.

La quatrième règle concerne les messages synchrone et retardés (Asynchrone=False et

Delayed=True). Cette règle créé trois transitions, deux transitions immédiates pour le début et

la fin de l’opération du message, et entre ces deux transitions une transition temporisée pour

l’exception. Cette règle fait intervenir l’aspect généralisé et stochastique du formalisme GSPN

puisqu’elle créé deux transitions immédiates et une transition temporisée avec un temps

aléatoire.

Chacune des règles possède une priorité et un ordre d’exécution. La grammaire commence

son exécution du haut des lignes de vie des objets, jusqu’au dernier message à la fin des lignes

de vie. Dans cette grammaire on n’applique qu’une seule règle sur chaque message.

4.4.2. Grammaire de transformation des diagrammes d’états-transitions vers les réseaux

de Petri GSPN « SC vers GSPN »

Nous avons implémenté une grammaire de graphe qui contient 10 règles divisées en trois

ensembles :

Le premier ensemble de la figure 4.13 est composé de quatre règles (1, 3, 5, 9), et traite des

cas de transitions où les actions sont asynchrones. L’état input dans les règles 1 et 3 contient

des activités qui sont transformées en transitions temporisées en GSPN. Lorsque les actions

sont provoquées par des événements « e_event », elles l’utilisent et placent un jeton « evw »

dans une place « ack_event ».

Page 119: Une approche basée transformation de graphes pour la génération

107

Figure 4.13 : Premier ensemble de la grammaire de transformation des diagrammes d’états-

transitions vers les GSPN

Le second ensemble de la figure 4.14 traite des cas où les actions sont synchrones avec 4

règles (2, 4, 6, 10). Dans chacune de ces règles, les actions des transitions sont synchrones,

avec ou sans événement. Les actions synchrones sont modélisées par deux transitions

immédiates en GSPN, l’une pour le début de l’action et l’autre pour sa terminaison. Quand

l’action débute, un jeton est placé dans la place « e_start_action », et l’action se termine

lorsqu’un jeton est retiré de la place « ack_start_action ».

Page 120: Une approche basée transformation de graphes pour la génération

108

Figure 4.14 : Deuxième ensemble de la grammaire de transformation des diagrammes d’états-

transitions vers les GSPN

Le troisième ensemble de la figure 4.15 est consacré aux règles où il n’y a ni action ni

événement (9, 10), et donc les transitions franchissent immédiatement.

Page 121: Une approche basée transformation de graphes pour la génération

109

Figure 4.15 : Troisième ensemble de la grammaire de transformation des diagrammes d’états-

transitions vers les GSPN

Les transitions temporisées relatives aux états possédant des activités renvoient vers la

propriété stochastique des GSPN puisque ces transitions temporisées modélisent un temps

aléatoire, ainsi qu’avec les transitions immédiates, le réseau est généralisé puisqu’il contient

les deux types de transitions.

4.5. Conclusion

Dans ce chapitre, nous avons proposé une approche et un outil Java pour la modélisation et la

transformation des modèles de diagrammes de séquence et de diagrammes d’états-transitions

vers les réseaux GSPN en utilisant les techniques de transformation de graphes sur Eclipse.

Pour cela, nous avons proposé trois méta-modèles, deux pour les modèles inputs (diagrammes

de séquence et diagrammes d’états-transitions) et un autre pour le modèle output (GSPN). En

nous basant sur ces trois méta-modèles, nous avons proposé deux grammaires de graphes qui

effectuent les transformations.

Page 122: Une approche basée transformation de graphes pour la génération

110

Chapitre 5 :

Cas d’utilisation

Page 123: Une approche basée transformation de graphes pour la génération

111

Chapitre 5

Cas d’utilisation

5.1. Introduction

Dans ce chapitre, nous allons appliquer notre outil présenté dans le chapitre précédent sur un

exemple de diagramme de séquence et un diagramme d’états-transitions. Le diagramme de

séquence montre l’échange de messages entre un internaute qui souhaite s’inscrire à une

formation en ligne et le serveur. Les états de l’utilisateur sont ensuite modélisés dans un

diagramme d’états-transitions. La transformation des deux diagrammes se déroulera sous

l’environnement de développement Eclipse.

5.2. Diagramme de séquence pour inscription à une formation E-learning

La figure 5.1 montre un diagramme de séquence d’un utilisateur (internaute) souhaitant

s’inscrire à une formation en ligne suivant les étapes :

1. L’utilisateur se connecte au serveur puis procède à une demande de formation.

2. Le serveur communique avec sa base de données pour obtenir la liste des

formations disponibles.

3. La base de données fournit au serveur la liste des formations disponibles, et ce

dernier doit l’afficher à l’utilisateur.

4. L’utilisateur fait son choix et l’envoie au serveur.

5. Le serveur demande un questionnaire qu’il renvoi à l’utilisateur.

6. Au final, l’utilisateur répond au questionnaire et le serveur, selon le résultat du

test, accepte ou refuse de l’inscrire.

Page 124: Une approche basée transformation de graphes pour la génération

112

Figure 5.1 : Diagramme de séquence d’une demande de formation e-learning

confirmer()

Envoyer_résultat()

Test_aptitude()

Envoyer_réponses()

Envoyer_questionnaire()

Demander_questionnaire()

Choix_formation()

Liste_formations()

Retourner_liste_formations_dispo()

Demander_liste_formations_dispo()

Login()

:Internaute :Serveur :Questionnaire :BD

Page 125: Une approche basée transformation de graphes pour la génération

113

5.3. Diagramme d’états-transitions de l’objet « Internaute » dans le diagramme de

séquence

Nous avons pris une instance de la classe « Internaute » pour modéliser les états par lesquels

l’internaute passe pour s’inscrire.

Après s’être connecté, l’internaute reçoit le questionnaire auquel il devra répondre. L’état

composite « Test_aptitude » fait passer les niveaux de l’internaute de 1 à 4. Une fois le test

terminé, l’internaute est soit admis dans la formation, soit refusé.

La figure 5.2 présente le diagramme d’états-transitions de l’internaute.

Figure 5.2 : Diagramme d’états-transitions d’une instance de la classe « Internaute »

/confirmer /confirmer

/inscrire /refuser

notif /recep_quest

Deconnecté

Connecté

Do :

choisir_formation

Test_aptitude

Niveau1 Niveau2

Niveau3 Niveau4

Admis Refusé

Login()

Page 126: Une approche basée transformation de graphes pour la génération

114

5.4. Implémentation du diagramme de séquence et génération du modèle

Nous avons modélisé le diagramme de séquence de l’exemple précédent sous Eclipse de la

façon suivante (figure 5.3) :

Figure 5.3 : Diagramme de séquence dans Eclipse

Page 127: Une approche basée transformation de graphes pour la génération

115

5.4.1. Application de la transformation sur le diagramme de séquence

Après avoir lancé la grammaire de transformation sur le modèle de diagramme de séquence,

le déroulement des règles s’est fait dans l’ordre suivant (figure 5.4) :

Figure 5.4 : Grammaire appliquée au diagramme de séquence dans Eclipse

Page 128: Une approche basée transformation de graphes pour la génération

116

5.4.2. Diagramme GSPN après la transformation du diagramme de séquence

Le moteur de transformation nous a présenté le résultat en GSPN comme montré dans la

figure 5.5 (et représentation graphique dans la figure 5.6):

Remarque : Les transitions dénotées par des crochets ‘’ [ ] ‘’ dans le GSPN représentent les

transitions temporisées avec les valeurs aléatoires du temps.

Figure 5.5 : GSPN après transformation du diagramme de séquence dans Eclipse

Figure 5.6 : Représentation graphique du GSPN

Login()

Demander

_liste

m1,m2

retourner

_liste

ExcepReto

urner_list

e

m3,m4

ExcepEnvoyer_

résul

Liste_form

ations

Choix_for

mations

Demande

_quest

Envoyer

_quest

Envoyer_rép

onse

(e_notif) Start_test_

apti

End_test

_apti

Start_envo

_resultat

End_envo_

resultat

Confirmer

m2,m3 m4,m5 m5,m6 m6,m7 m7,m8 m8,m9

m9,m10

m10,m11 m11,m12

Page 129: Une approche basée transformation de graphes pour la génération

117

5.5. Implémentation du diagramme d’états-transitions et génération du modèle

La transcription du modèle de diagramme d’états-transitions dans Eclipse s’est faite de la

manière suivante (figure 5.7) :

Figure 5.7 : Diagramme d’états-transitions dans Eclipse

5.5.1. Application de la transformation sur le diagramme d’états-transitions

Les règles de transformation ont suivi l’ordre présenté dans la figure 5.8.

Figure 5.8 : Grammaire appliquée au diagramme d’états-transitions dans Eclipse

Page 130: Une approche basée transformation de graphes pour la génération

118

5.5.2. Diagramme GSPN après la transformation du diagramme d’états-transitions

Le résultat GSPN après la terminaison de la transformation du diagramme d’états-transitions

est donné par la figure 5.9 (et représentation graphique dans la figure 5.10).

Figure 5.9 : GSPN après transformation du diagramme d’états-transitions

Pour des raisons de lisibilité, nous n’avons pas fait la représentation graphique dans la figure

5.10 des transitions internes de l’état composite [Test_aptitude].

Page 131: Une approche basée transformation de graphes pour la génération

119

Figure 5.10 : Représentation graphique du GSPN

5.6. Vérification du GSPN

Pour analyser les propriétés du GSPN de la partie illustrée dans la figure 5.11, nous avons

appliqué l’analyseur TINA dans la figure 5.12.

Figure 5.11 Partie du GSPN du système modélisé à vérifier

Refusé.exit

Login()

:User :Server :Questionnaire :BD

32

6 7 8 9

28

33

29

Ini_déco

Déco.entry login

e_notif Ack_notif e_start ack_start

Test_aptitude.entry

inscrire refuser

Ini_admis Ini_refusé

Déco.exit Ini.connec

choisir_form eventnotif Start_recep end_recep

Connecté.exit

Test_aptitude.exit

40 36

Admis.entry

confirmer

37

Admis.exit

Etat_final

Refusé.entry

41

Envoyer_questionnaire()

Page 132: Une approche basée transformation de graphes pour la génération

120

Remarque : Dans l’outil TINA, les transitions immédiates sont modélisées par des transitions

où la valeur du temps est dans l’intervalle [0,0].

La figure 5.12 montre la représentation du GSPN dans l’outil TINA en faisant le lien entre la

transition dans le diagramme d’états-transition de l’objet « internaute » et l’objet

questionnaire.

Figure 5.12 : GSPN dans TINA

Après le lancement de l’outil d’analyse, nous avons obtenu le résultat dans la figure 5.13

Page 133: Une approche basée transformation de graphes pour la génération

121

Figure 5.13 : Analyse du GSPN

5.6.1. Interprétation des résultats

D’après les résultats :

Bounded = Y : Le réseau est borné.

Live = N : Le réseau n’est pas vivant.

À partir de la colonne « dead » nous déduisons qu’il existe un état mort et 10

transitions infranchissables.

Nous pouvons à présent conclure que le système contient une situation d’inter-blocage.

Page 134: Une approche basée transformation de graphes pour la génération

122

5.7. Conclusion

Dans ce chapitre, nous avons présenté une étude de cas où nous avons appliqué les outils de

transformations sous Eclipse aux diagrammes de séquence et d’états-transitions d’un système

d’inscription à une formation e-learning. Le GSPN a été exploité par TINA qui nous a donné

le résultat de l’analyse.

Page 135: Une approche basée transformation de graphes pour la génération

123

Conclusion générale

Le travail que nous avons présenté est situé dans le cadre de la modélisation et la vérification

multi-paradigmes basée principalement sur les principes de l’IDM. Cette thèse combine deux

langages de modélisation : le premier, UML 2.0, qui est considéré de nos jours comme le

langage standard de modélisation dans l'industrie du logiciel, le second est le formalisme des

réseaux de Petri GSPN, qui permet la modélisation et l’analyse du comportement des

systèmes complexes.

Dans le présent travail, nous avons montré l’intérêt ainsi que la faisabilité de l’utilisation

conjointe des diagrammes de séquence et diagrammes d’états-transitions d’UML 2.0 et les

réseaux de Petri GSPN.

Nous avons proposé une approche et un outil sous Eclipse. Ce support est un ensemble de

librairies de classes Java. La création de ces librairies constitue l’étape de méta-modélisation.

Le support qu’offrent ces librairies permet de modéliser des diagrammes de séquence et des

diagrammes d’états-transitions d’un côté, et supporter le formalisme GSPN de l’autre.

Dans Eclipse, nous avons implémenté un moteur de transformation qui effectue les différentes

transformations de graphes des diagrammes de séquence et des diagrammes d’états-transitions

en modèles GSPN. Ce moteur de transformation repose sur une grammaire de graphe

constituée d’un ensemble de règles ayant chacune une priorité préétablie. Chaque

transformation possède sa propre grammaire, nous avons implémenté une grammaire pour la

transformation des diagrammes de séquence vers le modèle GSPN, et une autre pour la

transformation des diagrammes d’états-transitions en GSPN. Les modèles GSPN résultants

ont été interprétés par l’outil d’analyse TINA.

Dans de futurs travaux, nous envisageons de transformer d’autres diagrammes d’UML 2.0

vers les réseaux de Petri stochastiques, et automatiser la génération des GSPN sous la forme

syntaxique acceptée par l’outil TINA à partir de la représentation Java des GSPN. Nous

envisageons aussi de valider notre approche par des études de cas réelles.

Page 136: Une approche basée transformation de graphes pour la génération

124

Bibliographie

[AD 68] D.A. Adams : A computational model with data-flow sequencing, Computer science

dept.. Technical report CS-117, Stanford University, California, Dec 1968.

[AFIS] AFIS: L’Ingénierie Système. http://www.afis.fr/praout/ingsys/ingsys.htm.

[AGG06] AGG home page. http ://tfs.cs.tu-berlin.de/agg, Last Consultation : October 2006.

[Ajmone95] M. Ajmone Marsan, G. Balbo, G. Conte, S. Donatelli and G.

Franceschinis Modelling with Generalized Stochastic Petri Nets Wiley Series in Parallel

Computing John Wiley and Sons ISBN: 0 471 93059 8

[Andries99] Marc Andries, Gregor Engels, Annegret Habel, Berthold Hoffmann, Hans-Jorg

Kreowski, Sabine Kuske, Detlef Pump, Andy Schürr and Gabriele Taentzer, "Graph

transformation for specification and programming", Science of Computer programming, vol

34, NO°1, pages 1-54, Avril 1999.

[AToM3] AToM3 (2006). Home page: http://atom3.cs.mcgill.ca/

[Attiogbé07] J. Christian Attiogbé, "Contributions aux approches formelles de

développement de logiciels : Intégration de méthodes formelles et analyse multifacette", In

HDR, Université de Nantes, Nantes Atlantique Université, 13 septembre 2007.

[Balasubramanian06] Daniel Balasubramanian, Anantha Narayanan, Chris vanBuskirk and

Gabor Karsai, "The Graph Rewriting and Transformation Language: GReAT", In A. Zündorf

and D. Varró, editors, Proceedings of the Third International Workshop on Graph Based

Tools (GraBaTs 2006), volume 1 of ECEASST, 2006.

[BBJ07] Bezivin, J., M. Barbero, and F. Jouault:On the applicability scope of model driven

engineering. In Proceedings of the 4th International Workshop on Model-based

Methodologies for Pervasive and Embedded Software (MOMPES 2007), at the Eu-ropean

Joint Conferences on Theory and Practice of Software (ETAPS 2007), pages 3–7. IEEE

Computer Society, March 2007.

[BDM02] Bernardi S, Donatelli S, and Merseguer J, "From UML 2.0 sequence diagrams and

statecharts to analyzable petri net models". In Proceedings of the 3rd International workshop

on software and performance (WOSP), 2002.

[Behrmann04] Gerd Behrmann, Alexandre David and Kim G. Larsen, " A tutorial on

UPPAAL", In Proceedings on the International School on Formal Methods for the Design of

Computer, Communication, and Software Systems, volume 3185 of Lecture Notes in

Computer Science, pages 200-236, Bertinora, Italy, Springer-Verlag.2004.

Page 137: Une approche basée transformation de graphes pour la génération

125

[Benzaken91] Claude Benzaken, "Systèmes Formels: Introduction à la logique et à la théorie

des langages", Editions Masson, 1991.

[Bernot91] Gilles Bernot, Marie-Claude Gaudel, and Bruno Marre, "Software testing

based on formal specifications: a theory and a tool", Software Engineering Journal,

6(6):387–405, ISSN 0268-6961, November 1991.

[Bert95] Didier Bert, Rachid Echahed, Paul Jacquet, Marie-Laure Potet and Jean-Claude

Reynaud, "Spécification, généricité, prototypage : aspects du langage LPG", In Technique et

Science Informatiques, 14(9): pages 1097-1129, Hermes 1995.

[Bettaz92] Mohamed Bettaz and Mourad Maouche, "How to specify Non Determinism and

True Concurrency with Algebraic Term Nets", Lecture Notes in Computer Science, N 655,

Spring Verlag, Berlin, pages 11-30, 1992.

[Bettaz93] Mohamed Bettaz, Mourad Maouche, Moussa Soualmi and Madani Boukebeche.

"Protocol Specification Using ECATNets", Networking and Distributed Computing, pp 7-35,

1993.

[Bézivin 04] Jean Bézivin, "Sur les principes de base de l’ingénierie des modèles", RSTI-

L'Objet,. 10(4) :145–157, 2004.

[Boo94]Grady Booch (Author), Robert A. Maksimchuk (Author),Michael W.

Engel (Author), Bobbi J. Young (Author), Jim Conallen(Author), Kelli A.

Houston (Author)Object-Oriented Analysis and Design with Applications 1994.

[Burmester04] Sven Burmester, Holger Giese, Jorg Niere, Matthias Tichy, Jorg P. Wadsack,

Robert Wagner, Lothar Wendehals and Albert Zundorf, "Tool Integration at the Meta-Model

Level within the FUJABA Tool Suite", International Journal on Software Tools for

Technology Transfer (STTT), vol. 6, n° 3, p. 203-218, 2004.

[Charles97] Nathan Charles, Howard Bowman and Simon J. Thompson, "From Act-one to

Miranda, a Translation Experiment", In Computer Standards and Interfaces Journal, 19(1),

May 1997.

[Cliff86] Jones Cliff, "Systematic Software Development Using VDM", Prentice-Hall ISBN

978-0138807252, 1986

[CPNAMI] home page : http://move.lip6.fr/software/CPNAMI/

[CPNtools] home page : http://cpntools.org/

[Czarnecki03] Krzysztof Czarnecki and Simon Helsen, "Classification of Model

Transformation Approaches", OOPSLA’03 Workshop on Generative Techniques in the

Context of Model-Driven Architecture, 2003.

Page 138: Une approche basée transformation de graphes pour la génération

126

[Czarnecki06] Krzysztof Czarnecki and Simon Helsen, "Feature-based survey of model

transformation approaches", IBM Syst. J., 45(3):621–645, ISSN 0018-8670, 2006..

[Davis03] James Davis, "GME: the generic modeling environment", In OOPSLA ’03:

Companion of the 18th annual ACM SIGPLAN conference on Object-oriented

programming, systems, languages, and applications, pages 82–83, New York, NY, USA,

ACM, ISBN 1-58113-751-6, 2003.

[De Lara02] Juan De Lara and Hans Vangheluwe, "AToM3: A Tool for Multi-Formalism

Modelling and Meta-Modelling", In Proceedings of Fundamental Approaches to Software

Engineering, FASE'02, Vol. 2306. LNCS. Grenoble, France, pages 174-188, 2002.

[Deng93] Yi Deng, Shi-Kuo Chang, Jorge C. A. de Figueired and Angelo Psrkusich, "

Integrating Software Engineering Methods and Petri Nets for the Specification and

Prototyping of Complex Information Systems", In Proceedings of the 14th International

Conference on Application and Theory of Petri Nets, Chicago, 206-223, 1993.

[EC82] E. Allen Emerson and Edmund M. Clarke. Using Branching Time Temporal Logic to

Synthesize Synchronization Skeletons. Science of Computer Programming 2(3): Pages 241-

266.

[Ehrig05] Karsten Ehrig, Claudia Ermel and Stefan Hansen, "Towards Model transformation

in Generated Eclipse Editor Plug-ins", Preliminary Version, GraMoT - International

Workshop on Graph and Model Transformation, Institut f¨ur Softwaretechnik und

Theoretische Informatik Technische Universit¨at Berlin, 2005.

[Engels00] Gregor Engels, Jan Hendrik Hausmann, Reiko Heckel and Stefan Sauer,

"Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral

Diagrams in UML", In Proceedings of the 3rd International Conference on the UML 2000,

YORK, ROYAUMEUNI, Octobre 2000.

[EMF] Eclipse Modeling Framework Home Page : http://www.eclipse.org/modeling/emf/

[Favre 06] Jean-Marie Favre , Jacky Estublier and Mireille Blay-Fornarino, " L’Ingénierie

Dirigée par les Modèles: au-delà du MDA", Traité IC2 – Information – Commande –

Communication, Hermès – Lavoisier, 2006.

[FrB05] Franck BarbierUml 2 et MDE ingénieriedes modèles avec études de cas

Etude (broché). Paru en 11/2005.

[FUJABA] FUJABA Home page, http://www.fujaba.de/

[Gargantini09] Angelo Gargantini, Elvinia Riccobene and Patrizia Scandurra, " Integrating

Formal Methods with Model-driven Engineering ", In Proceedings of the Fourth International

Page 139: Une approche basée transformation de graphes pour la génération

127

Conference on Software Engineering Advances, Porto, Portugal , ISBN: 978-0-7695-3777-1,

2009.

[GEF] Graphical Editing Framework Home Page : http://www.eclipse.org/gef/

[Genrich81] Hartmann J. Genrich and Kurt Lautenbach, "System Modelling with High-Level

Petri Nets", In Proceedings of the Theoretical Computer Science, vol. 13, 1981.

[GME] Generic Modeling Environment Home Page : http://www.eclipse.org/modeling/

[GMF] Graphical Modeling Frameworkhttp://www.eclipse.org/modeling/gmp/

[GMT] Generative Modeling Technologies Home Page : http://www.eclipse.org/gmt/

[Goguen96] Joseph A. Goguen and Malcolm Grant, "Algebraic Semantics of Imperative

Programs", The MIT Press, ISBN 978-0262071727, May 22, 1996.

[GreatSPN] home page : http://www.di.unito.it/~greatspn/index.html

[Greenfield04] Jack Greenfield, Keith Short, Steve Cook, Stuart Kent and John Crupi, "

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and

Tools", Wiley & Sons, 2004.

[Guangyu09] Guangyu Li and Shuzhen Yao, "Research on Mapping Algorithm of UML

Sequence Diagrams to Object Petri Nets", In Proceedings of the 2009 WRI Global Congress

on Intelligent Systems. V(4), pages 285 – 289,19-21 May 2009.

[Guerra03] Esther Guerra and Juan de Lara, "A Framework for the Verification of UML

Models. Examples using Petri Nets", Escuela Politecnica Superior, Ingeniera Informatica,

Universidad Autonoma de Madrid, 2003.

[Guttag85] John V. Guttag, James J. Horning and Jeannette M. Wing, "The Larch Family of

Specification Languages", In Software, IEEE , ISSN 0740-7459 vol 2 . pp. 24-36. Sept. 1985.

[Harel 85] David Harel and Amir Pnueli, "Logics and models of concurrent systems", volume

13 of Nato Asi Series F: Computer And Systems Sciences, chapter On the

development of reactive systems, pages 477–498. Springer-Verlag New York, ISBN 0-

387-15181-8, New York, NY, USA, 1985.

[Holland 98] John .H Holland, "Emergence: From Chaos to Order", Helix Books Addison-

Wesley, 1998.

[Holscher06] Karsten Holscher, Paul Ziemann and Martin Gogolla, "On translating UML

models into graph transformation systems", Journal of Visual Languages and Computing,

pages 78-105, ELSEVIER, 2006.

Page 140: Une approche basée transformation de graphes pour la génération

128

[INA] INA home page : www2.informatik.hu-berlin.de/~starke/ina.html

[INCOSE] INCOSE: A Consensus of the INCOSE Fellows.

http://www.incose.org/practice/fellowsconsensus.aspx.

[ISO 8402] ISO 8402 Qualité: Concepts et Terminologie. Partie 1: Termes génériques et

Définitions.

[JARP] home page : http://jarp.sourceforge.net/

[JBR97a] I. Jacobson, G. Booch, and J. Rumbaugh. The Objectory Software Development

Process. Addison Wesley, 1997.

[JCJO92] Ivar JACOBSONObject-Oriented Software Engineering (OOSE) 1992

http://cs-exhibitions.uni-klu.ac.at/index.php?id=448

[Jensen97] Kurt Jensen, "A Brief Introduction to Coloured Petri Nets", Lecture Notes in

Computer Science, No 1217, Springer-Verlag, 1997, pp 203-208.

[Jensen98] Kurt Jensen, "An Introduction to the Practical Use of Coloured Petri Nets",

Lecture

[JuaGal97 ] Guy JUANOLE et Laurent GALLON : Analyses qualitatives et quantitatives

basées sur des réseaux de Petri Stochastriques et concept d’automate quotient quantifié 1997.

Notes in Computer Science, No 1492, Springer-Verlag, pp 237-292, 1998.

[Karsai04] Gabor Karsai and Aditya Agrawal, "Graph Transformations in OMG’s Model-

Driven Architecture", Lecture Notes in Computer Science, Vol 3062, 243-259, Springer

Berlin /Heidelberg, juillet 2004.

[Kent02] Stuart Kent, "Model driven engineering", In Butler, Michael J., Luigia Petre, and

Kaisa Sere (editors): Third International Conference on Integrated Formal Methods (IFM),

volume 2335 of Lecture Notes in Computer Science, pages 286–298, Turku, Finland,

Springer, May 2002.

[Kerkouche08] Elhillali Kerkouche and Alloua Chaoui, "On the use of Meta-Modelling and

Graph Grammars to process and simulate ECATNets model", In proceedings of MS'2008,

Port Said, EGYPT, April 8-10, 2008.

[Kerkouche09a] Elhillali Kerkouche and Alloua Chaoui. "A Graphical Tool Support to

Process and Simulate ECATNets Models Based on Meta-Modelling and Graph Grammars",

INFOCOMP Journal of Computer Science, Vol. 8, N° 4, pp. 37-44, 2009.

[Kerkouche10]Elhillali Kerkouche, Allaoua Chaoui, El Bay Bourennane, Ouassila Labbani

On the Use of Graph Transformation in the Modeling and Verification of Dynamic Behavior

in UML Models 2010.

Page 141: Une approche basée transformation de graphes pour la génération

129

[Kerkouche11] Elhilali Kerkouche , Thèse de doctorat : Modélisation Multi-Paradigme: Une

Approche Basée sur la Transformation de Graphes

[kuske02] Sabin kuske, Martin Gogolla, Ralf Kollman and Hans-Jorg Krewoski, "An

integrated sementics for UML Class, Object and state diagrams based on graph

transformation", In Proceedings of Third International Conference on Integrated Formal

Methods (IFM’02), Lecture Notes in Computer Science, M. Butler, K. Sere (Eds.), vol. 2335,

pages 11-28, Springer, Berlin, 2002.

[Lavagno03] Luciano Lavagno, Grant Martin and Bran V. Selic, "UML for real:

design of embedded real-time systems", Kluwer Academic Publishers, Norwell, MA,

USA, 2003, ISBN 1-4020-7501-4.

[LoLa] home page : http://www.informatik.uni-rostock.de/tpp/lola/

[MARIA] home page : http://www.informatik.uni-

hamburg.de/TGI/PetriNets/tools/db/maria.html

[Marvin 68] Marvin Minsky, "Matter, mind, and models", Semantic Information Processing,

pages 425–432, 1968.

[MetaEdit] Model-based development toolMetaEdit+ http://www.metacase.com/

[Milner80] Robin Milner, "A calculus of communicating systems", in Lecture Notes in

Computer Science, vol.92, Springer-Verlag, Berlin, 1980.

[Milner93] Robin Milner, "Elements of interaction: Turing Award Lecture", Communications

of the ACM, 36(1):78–89, CODEN CACMA2. ISSN 0001-0782, January 1993.

[OMG03a] “Object Management Group: OMG Unified Modeling Language

pecification”, Version 1.5, mars 2003.

[OMG04] “Object Management Group (OMG), Model Driven Architecture (MDA)”, site

Internet, http://www.omg.org/mda,2004.

[OMGb] OMG: MetaObject Facility (MOF), version 2.0. http://www.omg.org/mof/.

[OMGc] OMG: Common Warehouse Metamodel (CWM), version 1.1. http://www.omg.

org/technology/documents/formal/cwm.htm.

[OMGd] OMG: Object Constraint Language (OCL), version 2.0. http://www.omg.org/ocl/.

[OMGe] OMG: XML Metadata Interchange (XMI), version 2.0. http://www.omg.org/xml/.

[OMGedc] UML Profile For Enterprise Distributed Object Computing (EDOC)

[OMGm] MOFM2T Model-to-Text language http://www.omg.org/spec/MOFM2T/1.0/

[OMGs] OMG : Software Process Engineering Metamodel 2.2

http://www.omg.org/spec/SPEM/2.0/

Page 142: Une approche basée transformation de graphes pour la génération

130

[OPMSE] The Modeling and Simulation Environment based on Object Petri Net for Discrete

Event Systems, Luo Xueshan (National University of Defense Technology, C3I Systems

Research Center, 410073)

[Owre93] Sam Owre, John Rushby and Natarajan Shnkar, "The PVS Specification

Languages", In http:// www.csl.sri.sri.com/pvs-language/ 1993.

[Petit99] Michaël Petit, "Formal requirements engineering of manufacturing systems: a

multiformalism and component-based approach", Thèse de doctorat de l'Université de Namur,

Belgique, Octobre 1999.

[PNK] home page : http://page.mi.fu-berlin.de/trieglaf/PNK2e/index.html

[PROD] home page : http://www.informatik.uni-

hamburg.de/TGI/PetriNets/tools/db/prod.html

[PROGRES] PROGRES Home page, http://www-

i3.informatik.rwthaachen.de/research/projects/progres/main.html

[QS82a] JEAN-PIERRE QUEILLE AND JOSEPH SIFAKIS. A Temporal Logic to Deal with Fairness

in Transition Systems. In Proceedings of the 23rd Annual Symposium on Foundations of

Computer Science (FOCS'82), pages 217-255. IEEE Comp. Soc. Press, 1982. (BibTex).

[QVT] Query/View/Transformation http://www.omg.org/spec/QVT/1.0/

[Ranger08] Ulrike Ranger and ErhardWeinell, "The graph rewriting language and

environment PROGRES", Applications of Graph Transformations with Industrial Relevance,

LNCS, 5088, 2008.

[Roques 00] Pascal Roques and Franck Vallée, "UML en action : De l’analyse des

besoins à la conception en Java", Eyrolles, 2000.

[Rozenberg99] Grzegorz Rozenberg, "Handbook of Graph Grammars and Computing by

Graph Transformation", Vol.1. World Scientific, 1999.

[Rum96] James Rumbaugh (Auteur), William Premerlani (Auteur),Frédérick

Eddy (Auteur), William Lorensen (Auteur) OMT, tome 1 : Modélisation et conception

orientées objet 1996.

[Schürr99] Andy Schürr, Andreas J. Winter and Albert Zündorf, "The PROGRES approach :

language and environment", World Scientific Publishing Co., Inc., River Edge, NJ, USA,

pages 487–550, 1999.

[Smith02] Graeme Smith, Florian Kammuller and Thomas Santen, "Encoding Object-Z in

Isabelle/HOL", In la revue Lecture Notes in Computer Science, vol.2272, pp.82-99, 2002.

Page 143: Une approche basée transformation de graphes pour la génération

131

[Staines07] Tony Spiteri Staines, "Supporting UML Sequence Diagrams with a Processor Net

Approach", Journal of Software, VOL. 2, NO. 2, AUGUST 2007.

[Taentzer03] Gabriele Taentzer, "AGG : A graph transformation environment for modeling

and validation of software", In Proceedings of Applications of Graph Transformations with

Industrial Relevance : Second International Workshop, AGTIVE 2003,LNCS 3062, pages

446_453, Charlottesville, VA, USA, September-October, 2003.

[TINA] (TIme petri Net Analyzer) http://projects.laas.fr/tina//

[Truong06] Ninh Thuan Truong, "Utilisation de B pour la vérification de spécifications UML

et le développement formel orienté objets", Dans la thèse de doctorat en Informatique de

l’Université Nancy2, au LORIA à Vandoeuvre, 2006.

[Turner07] Kenneth J. Turner, "Representing and analysing composed web services using

CRESS", in Journal of network and computer applications, ISSN 1084-8045 vol. 30, n°2, pp.

541-562, 2007.

[UML2.0] Unified Modeling Language UML 2.0 http://www.uml.org/

[Vangheluwe02] Hans Vangheluwe, Juan de Lara and Pieter J. Mosterman, "An Introduction

to Multi-Paradigm Modelling and Simulation", Tutorial, In Proceedings AI Simulation and

Planning AIS-2002. Pages 9-20. Lisbone. Avril 2002.

[Varró03] Dániel Varró and András Pataricza, "Vpm : A visual, precise and multilevel

metamodeling framework for describing mathematical domains and uml (the mathematics of

metamodeling is metamodeling mathematics)", Software and System Modeling, 2(3) :187–

210, 2003.

[Varró06] Daniel Varró, András Balogh and András Pataricza, "The viatra2 transformation

framework - model transformation by graph transformation", Eclipse Modeling Symposium,

2006.

[Wing90] Jeannette M. Wing, "A Specifier's Introduction to Formal Methods", Computer,

vol. 23(9):8-23, 1990.