Université de Monastir
Institut Supérieur d’Informatique et de Mathématiques
Département Informatique
Chapitre 2.
Langages de modélisation
Cours IDM‐ MP1 GL
Année Universitaire: 2024‐2025
Qu'est‐ce qu'un langage de modélisation?
Dans le cadre des langages de modélisation, comme dans les langages de
programmation, on distingue souvent deux concepts importants : la syntaxe
concrète et la syntaxe abstraite. Ces deux types de syntaxe sont essentiels pour
comprendre comment un langage de modélisation est défini et utilisé.
Langage de
modélisation Syntaxe concrète
Syntaxe abstraite
Elle déclare les concepts et les relations qui Elle définit comment ces concepts et relations
existent dans un modèle sans détailler sont écrits ou illustrés dans des fichiers ou des
comment ceux‐ci sont représentés diagrammes => Notations
=> Méta‐modèle Elle est souvent plus proche de la manière
dont les utilisateurs interagissent avec les
outils de modélisation.
MME SAMEH HBAIEB‐ COURS IDM 2
Exemples pratiques de langages de
modélisation
Langage UML :
Syntaxe abstraite : Définit des concepts comme les classes, objets, relations
d'héritage, associations et compositions, mais sans se soucier de la manière
dont elles sont présentées.
Syntaxe concrète : Spécifie que les classes sont représentées par des
rectangles, les associations par des lignes, les héritages par des flèches avec un
triangle, etc.
MME SAMEH HBAIEB‐ COURS IDM 3
Exemples pratiques de langages de
modélisation
Langage BPMN (Business Process Model and Notation) :
Syntaxe abstraite : Décrit les processus, les événements, les activités, et les
décisions d'une manière logique et conceptuelle.
Syntaxe concrète : Spécifie que les événements sont des cercles, les activités
sont des rectangles, et les flux de contrôle sont des flèches entre les éléments,
etc.
MME SAMEH HBAIEB‐ COURS IDM 4
Langage de méta‐modélisation
Un langage de méta‐modélisation est un langage utilisé pour définir la
structure, les règles et les relations d'un modèle à un niveau abstrait, autrement
dit, un langage qui sert à décrire la structure des modèles (aussi appelés modèles
de modèles).
Un méta‐modèle est un modèle qui décrit un autre modèle. Il permet de décrire
la syntaxe et les concepts d'un langage de modélisation.
MME SAMEH HBAIEB‐ COURS IDM 5
Langage de méta‐modélisation
Un langage de méta‐modélisation permet de créer des langages de
modélisation spécifiques (appelés Domain‐Specific Languages (DSL)), qui sont
adaptés à un domaine particulier (comme la modélisation des processus métiers,
des systèmes embarqués, etc.).
Le méta‐modèle joue un rôle clé dans MDE, où l’on génère des modèles à partir
d’autres modèles via des règles bien définies.
MME SAMEH HBAIEB‐ COURS IDM 6
Langages de méta‐modélisation
populaires
Meta‐Object Facility (MOF) : MOF est un standard de l'Object Management
Group (OMG) pour la définition de méta‐modèles. Il est largement utilisé pour
définir des méta‐modèles dans des systèmes de modélisation tels que UML.
Ecore (dans Eclipse Modeling Framework ‐ EMF) : Ecore est utilisé pour créer
des méta‐modèles et générer des modèles EMF à partir de ceux‐ci. Les modèles
générés peuvent ensuite être utilisés pour produire des instances (des modèles
spécifiques).
MME SAMEH HBAIEB‐ COURS IDM 7
Langages de méta‐modélisation
populaires
XMI (XML Metadata Interchange) : XMI est un standard XML pour l’échange de
métadonnées et est souvent utilisé pour échanger des modèles de métamodèles
entre différents outils.
Ce n’est pas un langage de méta‐modélisation en soi, mais il est utilisé pour
sérialiser et échanger des modèles basés sur des métamodèles comme MOF.
XMI permet l’interopérabilité entre différents outils et frameworks basés sur des
métamodèles communs (par exemple, UML ou EMF).
MME SAMEH HBAIEB‐ COURS IDM 8
Exemple 1: Spécification MOF de l'OMG
Il est possible de définir un méta‐modèle par instanciation des éléments du
langage de méta‐modélisation (i.e., décrit dans le métamétamodèle)
MME SAMEH HBAIEB‐ COURS IDM 9
Exemple 2: Ecore de EMF
EMF (Eclipse Modeling Framework) est un plugin eclipse:
contient un méta‐méta‐modèle (Ecore), noyau réflexif simple (s’appuie sur EMOF)
construction de méta‐modèles : édition graphique ou édition arborescente ou édition via
code java annoté
génération d’une API Java permettant la manipulation d’instances de ce méta‐modèle
génération d’un éditeur arborescent
intègre un framework de vérifications de contraintes (soit OCL, soit Java)
production de code sous forme de plugins Eclipse
et bien d’autres plugins associes (OCL, GMF, Acceleo, . . . )
MME SAMEH HBAIEB‐ COURS IDM 10
Exemple 2: Ecore de EMF
MME SAMEH HBAIEB‐ COURS IDM 11
Langage de modélisation UML
UML (Unified Modeling Language) est un langage de modélisation graphique
standardisé utilisé pour spécifier, visualiser, construire et documenter les
artefacts d'un système logiciel. Il est largement utilisé dans le développement de
logiciels et la conception de systèmes pour représenter des aspects structurels,
comportementaux et interactifs du système à différents niveaux d'abstraction.
UML est indépendant de la technologie, du langage de programmation, et du
domaine d'application. Son but principal est d'aider les équipes de
développement à mieux comprendre les systèmes complexes et à faciliter la
communication entre les différents intervenants (développeurs, analystes,
architectes, etc.).
MME SAMEH HBAIEB‐ COURS IDM 12
Les différentes vues d'un système dans
UML dans le cadre de MDE
Les modèles UML peuvent être utilisés pour représenter des vues
différentes du système, qui correspondent à des perspectives spécifiques sur
le système global.
Ces vues sont essentielles dans l'ingénierie dirigée par les modèles (MDE)
car elles aident à abstraire et à modulariser les différents aspects d'un
système.
MME SAMEH HBAIEB‐ COURS IDM 13
Les différentes vues d'un système dans
UML dans le cadre de MDE
La vue logique
Décrit les aspects statiques et dynamiques d’un système en termes de classes et
d’objets
Principaux éléments :
Les objets
Les classes
Les collaborations
Les interactions
Les paquetages
MME SAMEH HBAIEB‐ COURS IDM 14
Les différentes vues d'un système dans
UML dans le cadre de MDE
La vue de réalisation
Organisation des modules dans l’environnement de développement, allocation des
classes dans les modules, et des modules dans les sous‐systèmes ;
Principaux éléments
Les modules
Les sous‐ programmes
Les tâches (unités de programme, comme en ADA)
Les paquetages (en tant que sous‐système)
MME SAMEH HBAIEB‐ COURS IDM 15
Les différentes vues d'un système dans
UML dans le cadre de MDE
La vue des processus
Décomposition en flots d’exécution et leur synchronisation + allocation des objets et
des classes au sein des différents flots ;
Très important dans les environnements multi‐tâches
Principaux éléments
Les tâches
Les threads
Les processus
Les interactions
MME SAMEH HBAIEB‐ COURS IDM 16
Les différentes vues d'un système dans
UML dans le cadre de MDE
La vue de déploiement
Les ressources matérielles et l’implantation du logiciel dans ces ressources : besoins
en puissance de calcul, contraintes géographiques, tolérance aux fautes et aux pannes,
temps de réponse, etc.
Les éléments
Les nœuds
Les modules
Les programmes principaux
MME SAMEH HBAIEB‐ COURS IDM 17
Les différentes vues d'un système dans
UML dans le cadre de MDE
La vue des cas d’utilisation
La base des quatre autres vues
Principaux éléments
Les acteurs
Les cas d’utilisation
Les classes
Les objets
Les collaborations
MME SAMEH HBAIEB‐ COURS IDM 18
Outils UML
Exemples d'outils UML :
Enterprise Architect
Lucidchart
Visual Paradigm
StarUML
ArgoUML
MME SAMEH HBAIEB‐ COURS IDM 19
Domain‐Specific Modeling Languages
(DSML)
Les langages de modélisation spécifiques au domaine (ou Domain‐Specific
Modeling Languages, DSML) sont des langages spécialement conçus pour
représenter, analyser et concevoir des modèles dans des domaines d'application
spécifiques.
Contrairement aux langages de programmation généraux qui sont utilisés pour
une large variété de tâches, les DSML sont créés pour capturer la complexité des
problèmes dans des domaines particuliers de manière plus intuitive et plus
précise.
Les DSML peuvent être de différents types, tels que des langages graphiques
(utilisant des diagrammes) ou textuels (basés sur du texte).
MME SAMEH HBAIEB‐ COURS IDM 20
Exemples de DSML
SysML (Systems Modeling Language)
Domaine : Ingénierie des systèmes.
Description : SysML est une extension de UML spécifiquement adaptée pour la
modélisation des systèmes complexes qui incluent à la fois des composants
logiciels, matériels et humains. Il permet de modéliser des exigences, des
structures, des comportements, des flux d'information et des interactions entre
systèmes.
Utilisation : SysML est utilisé dans des domaines comme l'aviation, l'automobile,
la robotique, et l'aérospatiale pour la modélisation de systèmes intégrés.
MME SAMEH HBAIEB‐ COURS IDM 21
Exemples de DSML
DSL pour la modélisation des processus métiers (BPMN)
Domaine : Gestion des processus métiers.
Description : BPMN (Business Process Model and Notation) est un langage
graphique utilisé pour modéliser les processus métiers. Il permet de créer des
diagrammes représentant les différentes étapes d’un processus ainsi que les rôles
et les flux d'informations entre eux.
Utilisation : Principalement utilisé dans la gestion des processus d'affaires,
l'automatisation et l'optimisation des workflows dans des entreprises.
MME SAMEH HBAIEB‐ COURS IDM 22
Exemples de DSML
DSL pour la conception de circuits électroniques (VHDL, Verilog)
Domaine : Conception de circuits électroniques et systèmes embarqués.
Description : VHDL et Verilog sont des langages de modélisation utilisés pour
décrire le comportement de circuits numériques et pour la simulation de systèmes
matériels. Ces langages permettent de spécifier le comportement des circuits à un
niveau très détaillé.
Utilisation : Utilisés dans le domaine de la conception électronique pour des
applications comme les FPGA (Field‐Programmable Gate Arrays) ou les ASIC
(Application‐Specific Integrated Circuits).
MME SAMEH HBAIEB‐ COURS IDM 23
Exemples de DSML
DSL pour la modélisation de données (ERD ‐ Entity Relationship Diagram)
Domaine : Modélisation des bases de données.
Description : Les diagrammes de relation entité (ERD) sont utilisés pour modéliser
les structures de données dans une base de données. Ils montrent comment les
entités (comme des tables ou des objets) sont reliées entre elles.
Utilisation : Ce langage est utilisé principalement pour concevoir des bases de
données relationnelles avant leur implémentation.
MME SAMEH HBAIEB‐ COURS IDM 24
Exemples de DSML
DSL pour la simulation (Petri Nets)
Domaine : Simulation et analyse de systèmes.
Description : Les réseaux de Petri sont un formalisme graphique utilisé pour
modéliser des systèmes dynamiques, où les événements se produisent en fonction
des conditions et des actions. Ils sont souvent utilisés pour modéliser des
processus parallèles et asynchrones.
Utilisation : Utilisé pour la simulation de systèmes de production, de réseaux de
communication, ou dans des études de performance de systèmes.
MME SAMEH HBAIEB‐ COURS IDM 25
Pourquoi a‐t‐on besoin de définir des
DSMLs?
Besoin 1. Adaptation au contexte du domaine
Chaque domaine possède ses propres concepts et propriétés => il devient
essentiel de pouvoir clairement les représenter et les distinguer.
Besoin 2. Facilitation de l’automatisation
La génération de code à partir de modèles nécessite généralement de compléter/
raffiner les modèles par des informations d’ordre techniques
Besoin 3. Meilleure communication entre les parties prenantes
Les DSMLs permettent une représentation visuelle ou textuelle qui est
directement compréhensible par les experts du domaine, y compris ceux qui ne
sont pas nécessairement des informaticiens.
MME SAMEH HBAIEB‐ COURS IDM 26
UML vs DSML
Portée : UML est généraliste, tandis qu'un DSML est spécifique à un domaine
particulier.
Application : UML peut être utilisé dans de nombreux domaines différents,
mais un DSML est conçu pour résoudre des problèmes spécifiques à un seul
domaine.
Abstraction : Les DSMLs offrent des abstractions adaptées aux concepts du
domaine qu'ils représentent, tandis que UML fournit une modélisation plus
générale et abstraite applicable à plusieurs types de systèmes.
MME SAMEH HBAIEB‐ COURS IDM 27