2. Problématique
• Conception des systèmes
o Complexe
o Beaucoup d’acteurs
• 1989 : Consortium d’industriels, création de l’OMG
o Définition des standards de modélisation
o Forte participation des entreprises
• En parallèle, émergence du Model-Checking
o Vérification de modèles
o Analyse formelle
4. Plan
• Introduction & Problématique
• Langages de haut niveau
o UML
o SysML
o AADL
• Analyse formelle
o Fiacre
o Tina
o Chaîne globale de vérification
• Conclusion
7. Unified Modeling Language
• Objectif :
Fournir des outils d’analyse, de conception
et d’implémentation pour les systèmes à
dominante logicielle ou similaires
9. Unified Modeling Language
• Pour faire simple
o Langage facile à lire…
o mais dur à écrire !
• Différence théorie / pratique
o Peu de diagrammes sont réellement employés en entreprise
o En théorie, tous sont nécessaires pour modéliser un système
• Problèmes
o Trop orienté ingénierie logicielle
o Manque de formalisme
o Bases solides adaptées à chaque entreprise
10. Systems Modeling Language
• Créé en 2001 par l’OMG et l’INCOSE
• Validé par l’OMG en 2006 comme Profil UML
• Objectif :
Etendre la modélisation UML à des
systèmes génériques à composantes
physiques
12. Systems Modeling Language
• Premier pas vers de la vérification de propriétés
• Plus simple à adopter qu’UML
o Moins de diagrammes
o Langage orienté métier
• Manque encore de formalisme (héritage d’UML)
13. Architecture Analysis and Design Language
• Débuté en 1999 par Peter Feiler
• Publié en 2004 avec SAE comme profil UML
14. Architecture Analysis and Design Language
• Objectif :
Modélisation des interactions
logiciel/matériel pour les systèmes
embarqués
• Langage de description d’architecture
o ≠ langage de modélisation !
18. Architecture Analysis and Design Language
• Principe :
Composant 2
Composant 1
Instance Comp2
Instance Comp1
Instance Comp1
19. Architecture Analysis and Design Language
• Principe :
Composant 2
Composant 1
Instance Comp2
Instance Comp1
Système
Instance Comp1
20. Architecture Analysis and Design Language
• Sémantique forte, étape clé vers Model Checking
• Long à mettre en place
o Création des bibliothèques de composants de base
o Nécessite d’apprendre un nouveau langage textuel
• Réutilisation efficace
o Plus simple une fois la base de composants classiques définie
o Equivalence langages textuel et graphique
o Véritable ciment entre UML et SysML
22. Format Intermédiaire pour les Architectures de Composants Répartis
• Article fondateur de Bernard Berthomieu en 2008
• Transforme un ensemble de langages de
modélisation distincts en un langage intermédiaire
unique
• Conserve les propriétés définies dans chaque
langage
23. Format Intermédiaire pour les Architectures de Composants Répartis
• Langage fortement typé (robustesse)
• Agit en « Back-End » pour l’utilisateur
• Ne sera donc pas plus développé ici
24. Time Petri Net Analyzer
• Article fondateur de Bernard Berthomieu en 2004
• Boîte à outil pour l’édition et l’analyse de RDP et
RDP temporels.
• Contient :
o Editeur graphique
o Construction de comportements
o Analyse et vérification formelle
25. Time Petri Net Analyzer
• Analyse formelle
o Basée sur l’outil « selt » (2006)
• Extension de la LTL : S/E LTL
o State/Event Linear Temporal Logic
o => Analyse LTL sur les états et les transitions !
26. Time Petri Net Analyzer
• Syntaxe
o – p négation de p
o p / q conjonction de p et q
o () p p vérifiée à l’état suivant (Next)
o [] p p vérifiée dans tout état du chemin (Always)
o <> p p vérifiée dans un état futur du chemin étudié (Eventually)
o p U q vérifiée si p vérifiée jusqu’à q vérifiée (Until)
27. Chaîne globale de vérification
• Utilisation de Tina avec Fiacre
• Fonctionnement de Fiacre
o Processus communiquant avec des ports typés (entiers, booléens…)
o Pour faire simple : programmation fonctionnelle fortement typée
• 1 processus = 1 fonction
let square x = x *. x;;
Illustration avec Caml
square : float -> float = <fun>
let int_square x = int_of_float (square (float_of_int x));;
int_square : int -> int = <fun>
28. Chaîne globale de vérification
• Utilisation de Tina avec Fiacre
• Avec Fiacre :
o 2 processus : process1 et process2
o Ajout d’états sur ces processus :
• cs_* (entrée en zone critique)
• w_* (mode attente)
• Objectif : non-famine
o w_process1 doit donc entraîner cs_process1
o De même pour process2
29. Chaîne globale de vérification
• Utilisation de Tina avec Fiacre
• Avec Tina :
o Utilisation de S/E-LTL avec selt
• Analyse formelle :
o [](
(w_process 1 => <> cs_process 1)
/
(w_process 2 => <> cs_process 2)
)
33. Analyse de la chaîne
• 2 outils à utiliser
o Eclipse (UML/SysML/AADL et conversion vers Fiacre) + Tina
o Chaîne simple en termes de logistique
• Courbe d’apprentissage élevée
o Logique temporelle
o Syntaxes des différents langages à maîtriser
• Améliorations possibles
o Analyse formelle graphique : suppression des prérequis en LTL (Tina)
o Problèmes de représentation des architectures paramétriques (Fiacre)
35. Bibliographie
• UML
o [1] Allison June Barlow Chaney. Object management group.
http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Object_Managemen_Group.html. [En ligne ; dernier accès
04 Février 2013].
o [2] Armin Biere. Tutorial on model checking modelling and verification in computer science.
http://fmv.jku.at/papers/Biere-AB08.pdf, 2008.
o [3] Omg unified modeling language tm (omg uml), superstructure version 2.4.1, 2011.
o [4] P.A. Muller and N. Gaertner. Modélisation objet avec UML, volume 514. Eyrolles, 2000.
o [5] Lispy. Why uml fails to add value to the design and development process.
http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/. [En ligne
; dernier accès 04 Février 2013].
o [6] Yohann Poiron. Les raisons d’utiliser ou non l’uml dans vos phases de conception pour un développeur.
http://www.blog-nouvelles-technologies.fr/archives/1038/les-raisons-dutiliser-ou-non-luml-dans-vos-phases-de-
conception-pour-un-developpeur/. [En ligne ; dernier accès 04 Février 2013].
• SysML
o [7] T. Weilkiens. Systems engineering with SysML/UML : modeling, analysis, design. Morgan Kaufmann, 2008.
o [8] Pascal Roques. Comparatif des diagrammes uml et sysml. http://www.uml-sysml.org/sysml. [En ligne ; dernier accès
09 Décembre 2012].
o [9] Hélène Mollère Youssef Srour Raphaël Sudre Karen Lavignasse, Nathalie Lépine. Génération de fichiers de
paramétrage. 2007.
• AADL
o [10] Peter H. Feiler and David P. Gluch. Model-Based Engineering with AADL - An Introduction to the SAE Architecture
Analysis and Design Language. SEI series in software engineering. Addison-Wesley, 2012.
36. Bibliographie
• Fiacre & Tina
o [11] Bernard Berthomieu, Jean-Paul Bodeveix, Patrick Farail, Mamoun Filali, Hubert Garavel, Pierre Gaufillet, Frederic
Lang, and François Vernadat. Fiacre : an Intermediate Language for Model Verification in the Topcased Environment.
In ERTS 2008, Toulouse, France, 2008.
o [12] Bernard Berthomieu, Jean-Paul Bodeveix, Christelle Chaudet, Silvano Zilio, Mamoun Filali, and François Vernadat.
Formal verification of aadl specifications in the topcased environment. In Proceedings of the 14th Ada-Europe
International Conference on Reliable Software Technologies , Ada-Europe ’09, pages 207–221, Berlin, Heidelberg, 2009.
Springer-Verlag.
o [13] B. Berthomieu, P.-O. Ribet, and F. Vernadat. The tool tina – construction of abstract state spaces for petri nets and
time petri nets. Journal of Production Research, 42(14) :2741–2756, 2004.
o [14] Bernard Berthomieu. The tina toolbox home page. http://projects.laas.fr/tina//news.php. [En ligne ; dernier accès
09 Décembre 2012].
o [15] S. Chaki, E. Clarke, J. Ouaknine, N. Sharygina, and N. Sinha. State/event based software model checking. In
Integrated Formal Methods, pages 128–147. Springer, 2004.