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

Transcription

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 :
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
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
Dédicace
À mes parents…
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.
‫ملخص‪:‬‬
‫العمل المنجز في هذه المذكرة يعتبر مساهمة في مجال الهندسة بواسطة النماذج‪ .‬الهدف‬
‫األول من هذه المبادرة هو استعمال قواعد التصميم متعددة النماذج عبر طرق تحويل النماذج‬
‫لتمكين استخدام تقنيات التحليل أثناء دورة تطوير النظم المعقدة‪ .‬األعمال المنجزة في هذا‬
‫النطاق تتعلق باقتراح أدوات وبرامج تصميم تمكن من مساعدة مطوري النظم المعقدة‪ .‬يتم‬
‫تقديم أداة تمكن من استنتاج آليا الوصف الموافق في لغة ‪ UML 2.0‬انطالقا من نماذج‪ GSPN ,‬و‬
‫أداة‬
‫بواسطة‬
‫النماذج‬
‫هذه‬
‫تحليل‬
‫أخيرا‬
‫‪.TINA‬‬
‫كلمات مفتاح‪ :‬هندسة البرامج بواسطة النماذج‪ ,‬التصميم المتعدد النماذج‪ ,‬تحويل البينات‪ ,‬قواعد البينات‪,‬‬
‫الطرقالتحليلية‪ ,‬نماذج‬
‫‪.GSPN‬‬
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.
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, Metamodeling, Graph Transformation, Graph Grammar, Formal Methods, Petri Nets,
GSPN, Sequence Diagram, Statechart.
Table des matières
Introduction générale
Chapitre 1 : Ingénierie Dirigée par les Modèles et Modélisation multiparadigmes
1.1 Introduction
1.2 Les systèmes
1.3 L’ingénierie système
1.3.1 Notion de qualité pour un système
1.3.2 Ingénierie Dirigée par les Modèles (IDM)
1.3.2.1.Une méthode orientée modèles
1.3.2.2.Modèles, formalismes de modélisation et méta-modèles
1.3.2.3.Transformations de modèles
1.3.2.4.Types de transformations de modèles
1.3.2.5.Propriétés d’une transformation
1.3.2.6.Manipulation des modèles
1.3.2.7.Les approches de l’Ingénierie Dirigée par les modèles
(IDM)
1.3.3. L’Architecture Dirigée par les Modèles (ADM)
1.3.3.1.Typologie des modèles dans l’approche ADM
1.3.3.2.Transformations de modèles en ADM
1.3.3.3.Quelques standards de l’ADM
1.3.3.4.Couches de l’architecture ADM
1.3.3.5.Méta-modélisation et MOF
1.3.4. Autres approches basées sur les modèles
1.4 Systèmes complexes
1.5 Modélisation multi-paradigmes
1.5.1. Techniques de modélisation multi-paradigmes
1.5.2. Axes de la modélisation multi-paradigmes
1.6 Les transformations de graphes
1.6.1. Définitions et propriétés des graphes
1.6.2. Les relations entre les graphes
1.6.3. Principe de transformation de graphes
1.6.4. Grammaire de graphe
1.6.4.1.Principe de déroulement de règles
1.6.5. Système de transformation de graphes
1.6.6. Approches et outils de transformations de graphes
1.7. Conclusion
Chapitre 2 : Modélisation semi-formelle avec UML 2.0
2.1.Introduction
2.2.Historique des méthodes de conception
2.3.Méthode versus Langage de modélisation
2.4.Avantages de la modélisation Objet
2.5.Langage de modélisation UML
2.5.1. Les vues du langage UML 2.0
2.5.2. Interprétation de la conception et de l’analyse à travers la notation
UML2.0
1
5
6
6
7
7
8
9
9
10
11
13
15
16
16
17
18
19
20
20
22
22
24
26
28
31
32
33
34
35
36
37
38
42
43
44
44
46
46
46
47
49
2.5.3. Diagrammes UML 2.0
2.5.4. Diagrammes d’états-transitions
2.5.4.1.Caractéristiques d’un diagramme d’états-transitions
2.5.4.2.Les diagrammes d’états-transitions de Harel
2.5.4.3.État composite dans un diagramme d’états-transitions
2.5.4.4.Les transitions dans un diagramme d’états-transitions
2.5.4.5.La concurrence dans un diagramme d’états-transitions
2.5.5. Les diagrammes de séquence
2.5.5.1.Opérateurs dans les diagrammes de séquence
2.6.Conclusion
Chapitre 3 : Méthodes formelles et modèle GSPN
3.1.Introduction
3.2.Méthodes formelles
3.3.Langages formels
3.4.Techniques d’analyse
3.5.Classification des méthodes formelles
3.5.1. L’approche axiomatique
3.5.2. L’approche basée sur les états
3.5.3. L’approche hybride
3.6.Techniques de vérification formelle
3.6.1. Vérification de modèle ou Model-Checking
3.6.2. Preuve de théorèmes
3.6.3. Test d’équivalence
3.6.4. L’animation de spécifications
3.6.5. Les tests
3.7.Intégration des méthodes formelles dans l’IDM
3.8.Les réseaux de Petri
3.8.1. Historique
3.8.2. Bases et définitions des réseaux de Petri
3.8.3. Avantages et inconvénients des réseaux de Petri
3.8.4. Utilisation des réseaux de Petri
3.8.5. Outils de modélisation des réseaux de Petri
3.8.6. Définition formelle
3.8.7. Déroulement d’un réseau de Petri
3.8.7.1.Franchissement d’une transition
3.8.7.2.Séquences de franchissement
3.8.7.3.Marquages accessibles
3.8.8. Propriétés des réseaux de Petri
3.8.8.1.Propriétés génériques
3.8.8.2.Propriétés spécifiques
3.8.8.3.Graphes des marquages
3.8.9. Évolution des réseaux de Petri
3.8.10. Modélisation des systèmes complexes
3.8.11. Méthodes d’analyse des réseaux de Petri
3.9.Les réseaux de Petri Généralisés Stochastiques (GSPN)
3.9.1. Les motivations de l’introduction du temps dans les réseaux de
Petri
3.9.2. Réseaux de Petri Stochastiques
49
50
51
53
54
54
55
56
57
60
61
62
63
63
63
64
65
66
66
66
66
67
67
67
67
68
69
69
69
71
71
72
73
74
74
75
75
75
76
77
77
78
78
81
82
82
83
3.9.3. Politique d’exécution et processus stochastique
3.9.4. Le modèle SPN
3.9.5. Le modèle GSPN
3.9.5.1.Transitions temporisées
3.9.5.2.Transitions immédiates
3.9.6. Définition formelle du modèle GSPN
3.10. Les analyses effectuées
3.11. Conclusion
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
4.2. Réalisation dans Eclipse
4.3.Les méta-modèles de notre approche
4.3.1. Méta-modèle des diagrammes de séquence
4.3.2. Méta-modèle des diagrammes d’états-transitions
4.3.3. Méta-modèle des réseaux de Petri GSPN
4.4.Transformations dans Eclipse
4.4.1. Grammaire de transformation des diagrammes de séquence vers
les réseaux GSPN (DS vers GSPN)
4.4.2. Grammaire de transformation des diagrammes d’états-transitions
vers les réseaux GSPN (SC vers GSPN)
4.5.Conclusion
84
86
86
86
87
88
90
91
92
93
94
95
95
96
97
99
105
106
109
Chapitre 5 : Cas d’utilisation
5.1.Introduction
5.2.Diagramme de séquence pour inscription à une formation E-learning
5.3. Diagramme d’états-transitions de l’objet « internaute » dans le
digramme de séquence
5.4.Implémentation du diagramme de séquence et génération du modèle
5.4.1. Application de la transformation sur le diagramme de séquence
5.4.2. Diagramme GSPN après la transformation du diagramme de
séquence
5.5.Implémentation du diagramme d’états-transitions et génération du
modèle
5.5.1. Application de la transformation sur le diagramme d’étatstransitions
5.5.2. Diagramme GSPN après la transformation du diagramme d’étatstransitions
5.6.Vérification du GSPN
5.6.1. Interprétation des résultats
5.7.Conclusion
110
111
111
113
Conclusion générale
123
Bibliographie
124
114
115
116
117
117
118
119
121
122
Table des Figures
Figure 1.1: Phases de réalisation d’un système
Figure 1.2 : Scénario d’une transformation de modèle [OMG04]
Figure 1.3 : Processus en Y d’une architecture ADM
Figure 1.4 : Transformations de modèles en ADM
Figure 1.5 : Standards de l’architecture ADM
Figure 1.6 : MOF et architecture à « 3+1 » niveaux
Figure 1.7 : Aperçu d’une partie des activités à réaliser durant la construction d’un système
Figure 1.8 : Les trois axes de la modélisation multi-paradigmes
Figure 1.9 : Abstraction et raffinement dans la modélisation multi-paradigmes
Figure 1.10 : Transformation de modèle dans la modélisation multi-paradigmes
Figure 1.11 : Graphe non orienté
Figure 1.12 : Graphe (a) et sous-graphe (b)
Figure 1.13 : Exemple de graphe orienté
Figure 1.14 : Exemple de graphe orienté et étiqueté
Figure 1.15 : Principe d’exécution des règles
Figure 1.16 : Application d’une règle de transformation
Figure 1.17 : Système de réécriture de graphe
Figure 1.18 : Environnement Eclipse
Figure 2.1 : Historique de constitution du langage UML
Figure 2.2 : Les aspects d’un système
Figure 2.3 : Différentes vues dans un concept UML 2.0
Figure 2.4 : Diagramme d’états-transitions simplifié d’une partie de jeu vidéo
Figure 2.5 : Syntaxe d’un état simple
Figure 2.6 : Syntaxe d’un état initial
Figure 2.7 : Syntaxe d’un état final
Figure 2.8 : Diagramme d’états-transitions d’un objet « Facture »
Figure 2.9 : Exemple d’un diagramme d’états-transitions de Harel
Figure 2.10 : Syntaxe d’un état composite
Figure 2.11 : Exemple d’un état composite dans l’opération de composition d’un
numéro de téléphone
Figure 2.12 : Exemple de transitions dans un diagramme d’états-transitions
Figure 2.13 : Exemple d’utilisation de transitions complexes et concurrence
Figure 2.14 : Syntaxe d’un message asynchrone
Figure 2.15 : Syntaxe d’un message synchrone
Figure 2.16 : Représentation d’un choix dans un diagramme de séquence
Figure 2.17 : Représentation d’une boucle dans un diagramme de séquence
Figure 2.18 : Exemple d’objet effectuant deux tâches en parallèle
Figure 2.19 : Exemple de l’utilisation de l’opérateur strict dans un diagramme de
séquence
Figure 3.1 : Classification des méthodes formelles
9
11
17
19
20
22
24
28
30
31
32
32
33
33
35
37
37
42
45
47
48
51
51
52
52
53
53
54
54
55
56
57
57
57
58
59
60
Figure 3.3 : Franchissement d’une transition t
65
70
74
Figure 3.4 : Graphe des marquages du réseau de Petri (a)
Figure 3.5 : Réseau de Petri avec parallélisme
77
78
Figure 3.2 : Exemple de réseau de Petri marqué
Figure 3.6 : Réseau de Petri avec synchronisation mutuelle
Figure 3.7 : Réseau de Petri avec synchronisation par signal
Figure 3.8 : Réseau de Petri avec partage de ressource
Figure 3.9 : Réseau de Petri illustrant le cas de la mémorisation
Figure 3.10 : Syntaxe d’une transition temporisée
Figure 3.11 : Transition temporisée (a) et transition immédiate (b)
Figure 3.12 : Exemple d’un GSPN avec des transitions immédiates et des transitions
temporisées
Figure 4.1 : Schéma de notre approche
Figure 4.2 : Scénario de notre transformation
Figure 4.3 : Les librairies de notre approche dans Eclipse
Figure 4.4 : Méta-modèle des diagrammes de séquence
Figure 4.5 : Méta-modèle des diagrammes d’états-transitions
Figure 4.6 : Méta-modèle du GSPN
Figure 4.7 : Relation entre diagramme de séquence et diagrammes d’états-transitions
Figure 4.8 : Transformations en GSPN
Figure 4.9 : Schéma de la première transformation des diagrammes de séquence vers
les GSPN
Figure 4.10 : Schéma de la deuxième transformation des diagrammes d’étatstransitions vers les GSPN
Figure 4.11 : Combinaison des deux transformations
Figure 4.12 : Grammaire de transformation des diagrammes de séquence vers le
modèle GSPN
Figure 4.13 : Premier ensemble de la grammaire de transformation des diagrammes
d’états-transitions vers les GSPN
Figure 4.14 : Deuxième ensemble de la grammaire de transformation des diagrammes
d’états-transitions vers les GSPN
Figure 4.15 : Troisième ensemble de la grammaire de transformation des diagrammes
d’états-transitions vers les GSPN
Figure 5.1 : Diagramme de séquence d’une demande de formation e-learning
Figure 5.2 : Diagramme d’états-transitions d’une instance de la classe « Internaute »
Figure 5.3 : Diagramme de séquence dans Eclipse
Figure 5.4 : Grammaire appliquée au diagramme de séquence dans Eclipse
Figure 5.5 : GSPN après transformation du diagramme de séquence dans Eclipse
Figure 5.6 : Représentation graphique du GSPN
Figure 5.7 : Diagramme d’états-transitions dans Eclipse
Figure 5.8 : Grammaire appliquée au diagramme d’états-transitions dans Eclipse
Figure 5.9 : GSPN après transformation du diagramme d’états-transitions
Figure 5.10 : Représentation graphique du GSPN
Figure 5.11 Partie du GSPN du système modélisé à vérifier
Figure 5.12 : GSPN dans TINA
Figure 5.13 : Analyse du GSPN
79
79
80
81
87
88
90
93
94
95
96
97
98
100
101
102
103
104
105
107
108
109
112
113
114
115
116
116
117
117
118
119
119
120
121
Tableaux
Tableau 1.1 : Les quatre niveaux de l’architecture ADM
Tableau 2.1 : Tableau comparatif entre diagrammes dans la conception et l’analyse
Tableau 3.1 : Exemples d’utilisation des réseaux de Petri
Tableau 3.2 : Les plus importants outils de modélisation des réseaux de Petri
21
49
72
73
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 à
1
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.
2
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.
3
-
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.
4
Chapitre 1 : Ingénierie Dirigée par les
Modèles et Modélisation multiparadigmes
5
Chapitre 1
Ingénierie Dirigée par les Modèles et Modélisation multiparadigmes
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 tempsré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.
6
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.
7
 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.
8
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.
Cahier des charges
Expression des besoins
Décrire les besoins du système
Analyse
Conception
Comment le système doit-il être construit ?
Codage du résultat de la conception
Implémentation
Test
Ce qui doit être fait dans le système
Le système est-il conforme au cahier des charges ?
Code exécutable livré
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]:
9
 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.
10
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.
Définition de la
transformation
Méta-modèle source
Réfère à
Conforme à
Méta-modèle cible
Réfère à
Conforme à
Exécute
Modèle source
Lit
Moteur de
transformation
Modèle cible
Ecrit
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.
11
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
12
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.
13
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.
14
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.
15
 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
16
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.
Branche technique
Branche fonctionnelle
CIM
Modèle de
plateforme
PIM
PSM
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.
17
 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.
18
PDM
Transformation
PIM - PSM
PIM
Raffinement de PIM
PSM
Transformation
PSM - code
Code
Raffinement de PSM
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étamodé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é.
19
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.).
Finance
E-commerce
Industrie
Espace
Télécommunication
Transport
Santé
Plus..
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.
20
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
Système réel
Abstraction du système.
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étamodè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étamodè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.
21
M3 : Méta-méta-modèle
MOF
M2 : Méta-modèle
Méta-Modèle (en UML)
M1 : Modèle
Modèle (en UML)
M0 : Monde réel
Système 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 soussystè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.
22
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é.
23
Besoin
Réutilisation
Analyse
Evolution
Architecture
Séparation du
développement
Impact
Réalisation
Test de montée
en charge
Intégration
Maintenance
Solution
Mise en pré-production
Tests
Mise en production
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.
24
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: superformalisme 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
25
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.
26

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étamodè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.
27
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.
Niveaux Métas
Méta-méta- modèle
MétaMéta-modèle
modèle
Modèle
Bas
Haut
Niveaux d’abstraction
Formalisme1
Formalisme2
Formalismes
Figure 1.8 : Les trois axes de la modélisation multi-paradigmes
28

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étamodélisation multi-paradigmes.
29
Niveaux Métas
Méta-méta-modèle
Méta- modèle
Modèle
Formalisme1
Bas
Haut
Niveaux d’abstraction
Abstraction
Raffinement
Formalismes
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.
30
Niveaux Métas
Méta-méta-modèle
Méta- modèle
Modèle
Formalisme1
Bas
Haut
Niveaux d’abstraction
Transformation
Formalisme2
Formalismes
Formalisme2
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étamodè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.
31
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).
a
c
c
b
e
d
f
f
(a)
e
d
(b)
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é.
32
1
3
2
4
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).
33

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 à
34
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.
Règle1
1
Règle2
2
Action initiale
Déroulement
Action finale
Règle n
N
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.
35
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.
36
R1
LHS
RHS
Application de R1
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.
Règles de
transformation
Input
Graphe source
Input
Système de
transformation
Output
Graphe cible
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.
37
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.
38

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.
39

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.
40
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.
41
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.
42
Chapitre 2 :
Modélisation semi-formelle avec UML 2.0
43
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].
44
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.
Temps
Fin 2004
UML 2.0
Révision 9/97
UML 1.1
Soumission à l’OMG 1/97
UML 1.0
Version béta OOPSLA 96
UML 0.9
OOPSLA95
OCL (IBM)
Unified Method 0.8
…
Booch’93
OMT-2
Booch
OMT
OOSE
Figure 2.1 : Historique de constitution du langage UML
45
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
46
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.
Modèle fonctionnel
Q
Que fait le système
Aspect fonctionnel :
Diagrammes de cas
d’utilisation
Aspect dynamique :
Diagrammes d’interactions
Séquencement des
actions dans le système
Modèle structurel (objet)
Q
Modèle temporel
Sur quoi agit le système
Aspect statique : Diagrammes de
classes et d’objets
Q
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
o
o
o
o
o
Diagramme de classes.
Diagramme d’objets.
Diagramme de composants.
Diagramme de déploiement.
Diagramme de paquetages.
Diagramme de structures composites.
47
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
o
o
o
Diagramme de séquence.
Diagramme de communication.
Diagramme global d’interactions.
Diagramme de temps.
La figure 2.3 montre un concept UML 2.0 avec le lien entre les différentes vues et les
abstractions.
Vues
Structure
Comportement
Fonctionnalités
Cohérence
Abstraction
Code
Figure 2.3 : Différentes vues dans un concept UML 2.0
48
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 Les seules classes servent à décrire des objets
objets concrets du domaine modélisé, et aussi concrets du domaine modélisé.
toutes les classes utilitaires destinées à
assurer le fonctionnement du logiciel.
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 Les communications entre les principaux
sous forme d’appels de méthodes dont les objets sont écrites sous forme textuelle, sans
signatures sont totalement explicites.
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.
49
 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,
50
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) :
État simple
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’étattransition. Ils sont représentés comme suit (figures2.6 et2.7) :
51
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
o
o
o
Des événements de signal.
Des événements d’appel (call).
Des événements de changement (change).
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.
52
Passer commande()
Créée
Paiement()
Réglée
Envoyer_Facture()
Imprimée
Envoyée
Imprimer_Facture()
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’étatstransitions 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
53
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.
Composer
numéro
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.
Composer numéro
Début
Numéroter
Chiffrer(n)
Numéro_valide()
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
54
d’activités :‘’QuitterE11, QuitterE1, action1, EntrerE2, EntrerE21, Initialiser(), EntrerE22 ‘’,
et place le système dans l’état ‘’ état22 ‘’.
Event/action1
Initialiser ()
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.
55
Servir boisson et rendre monnaie
Préparer boisson et rendre monnaie
Préparer
Terminer
Goblet attente
Rendre monnaie
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.
56
Obj1 :
Obj2 :
Figure 2.14 : Syntaxe d’un message asynchrone
Obj1 :
Obj2 :
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.
SD_banque
bank : Bank
ob : Ob
Login ()
alt
Deconnecte()
Passwok
else
assert
Compte>0
NumCompte()
Figure 2.16 : Représentation d’un choix dans un diagramme de séquence
57
 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.
SD_démarrer_train
:Conducteur
:Train
Porte(i) :Porte
Fermer_porte()
Loop(1,n)
Fermer ()
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 sousfragments exécutés simultanément. La figure 2.18 illustre le parallélisme dans un
diagramme de séquence.
58
SD_microwave
Per1 :Personne
open :MicrowaveOpen
CookFood()
Par
Cook()
Rotate()
Food()
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.
59
SD_décollage_avion
:TourDeControle
Strict
: Pilote
: Avion
ref
Contrôler check list
ref
Procédure de décollage
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.
60
Chapitre 3 : Méthodes formelles et modèle
GSPN
61
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.
62
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].
63
 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.
64
Les méthodes formelles
Approche basée sur
les états
Approche axiomatique
Approche
algébrique
Approche
logique
Approche
par modèle
abstrait
Approche hybride
ACT ONE
Approche
dynamique
CCS
LOTOS
OBJ
PVS
LPG
Isabelle/HOL
VDM
Réseaux de Petri
CASL
Coq
Z
Automate temporel
…
…
B
CSP
…
…
…
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].
65
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.
66
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é.
67
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étamodé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é.
68
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.
69
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.
70
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.
71


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 à :
La présence d’un environnement graphique d’édition.
La possibilité de simulation.
La possibilité d’analyse des propriétés génériques.
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.
o
o
o
o
72
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.
73
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.
P1
P2
n
m
t
k
P3
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 :
74
∀ 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é.
75
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.
76
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).
(1,0)
(1,0)
t2
t1
(0,1)
t1
t2
P2
P1
t2
(1,0)
(0,1)
t1
(a)
t1
(b)
(c)
Figure 3.4 : Graphe des marquages du réseau de Petri (a)
77
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
Processus1 Processus2
Figure 3.5 : Réseau de Petri avec parallélisme
78
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.
P2
P1
t1
P4
P3
Processus1
Processus2
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
Processus1
Processus2
79
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.
P1
P2
t2
t1
P0
t4
Processus1
t3
Processus2
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.
80
Attente
Compteur
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
81
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.
82
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} tT de variables
aléatoires définie dans le temps t. Un modèle d’évolution dynamique dans lequel on fait
83
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.
84
 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 semimarkovien 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
85
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
86
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) :
P1
Temps
t
02 :00
P2
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
87
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.
(a)
(b)
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.
88
-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.
89
Tnewdata
tstart
Tpar1
Tpar2
Tcheck
tsyn
tko
tok
Ti/o
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
90
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.
91
Chapitre 4 : Une approche de
transformation des diagrammes de
séquence et des diagrammes d’étatstransitions en réseaux de Petri GSPN à
l’aide des transformations de graphes
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
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’interblocage, l’équité, etc.
Notre approche suit le schéma suivant : (Figure 4.1)
Diagramme
d’étatstransitions
Notre outil de
transformation
GSPN
Diagramme de
séquence
TINA
Analyse des
propriétés
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
93
programmation Java Eclipse. Les diagrammes de séquence et les diagrammes d’étatstransitions 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.
Définition de la
transformation
Méta-modèle UML 2.0
Réfère à
Conforme à
Méta-modèle GSPN
Réfère à
Conforme à
Exécute
Modèles UML 2.0
Lit
Moteur de
transformation
Modèle GSPN
Ecrit
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étamodè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.
94
Librairie de
modélisation
des
Diagrammes de
séquence
Invoque les classes
Librairies de
grammaire de
transformation
Librairie de
modélisation
des réseaux
GSPN
Invoque les classes
Librairie de
modélisation
des
Diagrammes
D’étatstransitions
Invoque les classes
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
« SequenceDiagram », « Objet » et « Message ».
est
composé
de
trois
classes:
 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.
95
 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.
Source
-name
+toString()
Target
-Operation
-Ordre
-Async
-Delayed
+toString()
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.
96
 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.
+display()
Source
-name
+ToString()
Target
-action
-event
-async
+ToString()
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.
97
 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.
+display()
-name
-tokens
input
output
-name
T
+stoch()
Figure 4.6 : Méta-modèle du GSPN
98
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’étatstransitions et le GSPN.
99
:o1
:o2
:o3
:o4
M1
M2
M3
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.
100
Diagramme d’étatstransitions SC1
Diagramme d’étatstransitions SC2
M1
Diagramme d’étatstransitions SC4
Diagramme d’étatstransitions SC3
M3
M2
Transformation 1 : diagramme de séquence vers GSPN
Op :m1
Transformation 2 : diagramme d’états-transitions vers GSPN
Op :m1
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-
101
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’étatstransitions, 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.
:o1
:o2
M
« DS vers GSPN »
M
m1,m2
Figure 4.9 : Schéma de la première transformation des diagrammes de séquence vers les
GSPN
102
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’étatstransitions relatifs aux objets o1 et o2 en leurs équivalents en modèle GSPN
suivant la grammaire « SC vers GSPN ».
:o1
:o2
:o2
M
« SC vers GSPN »
:o2
:o1
:o2
M
Figure 4.10 : Schéma de la deuxième transformation des diagrammes d’états-transitions vers
les GSPN
103
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.
:o1
:o2
e_event
ack_event
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.
104
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
105
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 ».
106
Figure 4.13 : Premier ensemble de la grammaire de transformation des diagrammes d’étatstransitions 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 ».
107
Figure 4.14 : Deuxième ensemble de la grammaire de transformation des diagrammes d’étatstransitions 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.
108
Figure 4.15 : Troisième ensemble de la grammaire de transformation des diagrammes d’étatstransitions 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.
109
Chapitre 5 :
Cas d’utilisation
110
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.
111
:Internaute
:Serveur
:Questionnaire
:BD
Login()
Demander_liste_formations_dispo()
Retourner_liste_formations_dispo()
Liste_formations()
Choix_formation()
Demander_questionnaire()
Envoyer_questionnaire()
Envoyer_réponses()
Test_aptitude()
Envoyer_résultat()
confirmer()
Figure 5.1 : Diagramme de séquence d’une demande de formation e-learning
112
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.
Test_aptitude
Deconnecté
Niveau1
Niveau2
Niveau4
Niveau3
Login()
Connecté
Do :
choisir_formation
notif /recep_quest
/refuser
Refusé
/confirmer
/inscrire
Admis
/confirmer
Figure 5.2 : Diagramme d’états-transitions d’une instance de la classe « Internaute »
113
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
114
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
115
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
Login()
Demander
_liste
m1,m2
retourner
_liste
m2,m3
ExcepReto Liste_form
urner_list ations
e
m3,m4
Choix_for
mations
m4,m5
Demande
_quest
m5,m6
Envoyer
_quest
m6,m7
m11,m12 m10,m11
Envoyer_rép
onse
Start_test_
(e_notif)
apti
m7,m8
m8,m9
End_test
_apti
m9,m10
Confirmer End_envo_
ExcepEnvoyer_ Start_envo
resultat
_resultat
résul
Figure 5.6 : Représentation graphique du GSPN
116
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
117
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].
118
e_notif
Ack_notif e_start
ack_start
Ini_déco
Connecté.exit
6
Déco.entry
login
Déco.exit
7
9
8
Ini.connec choisir_form eventnotif Start_recep end_recep
té
Test_aptitude.entry
32
28
refuser
inscrire
33
29
Test_aptitude.exit
Ini_refusé
Ini_admis
Refusé.entry
Admis.entry
40
36
confirmer
41
Refusé.exit
37
Admis.exit
Etat_final
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.
:User
:Server
:Questionnaire
:BD
Login()
Envoyer_questionnaire()
Figure 5.11 Partie du GSPN du système modélisé à vérifier
119
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
120
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.
121
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.
122
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.
123
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.
124
[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", RSTIL'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.
125
[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 241266.
[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
126
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 0387-15181-8, New York, NY, USA, 1985.
[Holland 98] John .H Holland, "Emergence: From Chaos to Order", Helix Books AddisonWesley, 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.
127
[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 ModelDriven 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.
128
[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.unihamburg.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/
129
[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.unihamburg.de/TGI/PetriNets/tools/db/prod.html
[PROGRES] PROGRES Home page, http://wwwi3.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.
130
[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.
131