Vous êtes sur la page 1sur 27

Chapitre 1 Introduction à l’ingénierie des modèles

Responsable de cours : Sahar GHRAB


Année universitaire : 2023/2024

1
Plan
 Définition des modèles et de leur importance
 Types de modèles
 Processus de développement des modèles

2
Plusieurs concepts….

 Génie logiciel
 Ingénierie logicielle
 Architecture logicielle
 Ingénierie des modèles
 Architecture dirigée par les modèles

3
Plusieurs concepts….
Analyse fonctionnelle : quoi faire?
• Génie logiciel (GL) (SoftwareEngineering) ou ingénierie
logicielle étudie le processus de développement
du logiciel et propose différents modèles décrivant les
étapes à respecter lors de ce développement.
Les activités comprennent l'analyse, la spécification, la
conception et la programmation.
• Le GL s'intéresse en particulier aux procédures
systématiques qui permettent d'arriver à ce que les
logiciels correspondent aux attentes du client, soient
fiables, aient un coût d'entretien réduit et de bonnes
performances tout en respectant les délais et les coûts de
construction

4
Plusieurs concepts….
Comment faire?

• Architecture logicielle (Software Architecture): d’un


programme ou d’un système informatique est la structure
(ou les structures) du système qui comprend les
composants logiciels, leurs propriétés et leurs relations
(interactions entre composants) (Baas et al., 2003).
• C’est le modèle des différents composants d'un système
informatique, de leurs interrelations et leurs interactions
(Jézéquel et al., 2012)

5
Motivations
• Nombreux activités
– Spécification, architecture, codage, tests, support, gestionde proet,
documentation
• Nombreux intervenants
– Points de vue différents, spécialités différentes
• Nombreux documents
– Pour les informaticiens et les non-informaticiens
• Qualité de la communication
– On ne communique pas avec un code
• Travail en équipe
– Organisation et suivi

6
Pourquoi modéliser?
• Mieux comprendre les systèmes complexes
• Séparation des préoccupations/aspects
• Abstraction des plateformes
– Architecture matérielle, réseau
– Architecture logicielle, système d’exploitation
– Langages
• Abstraction des domaines applicatifs
Manipuler des modèles et avoir de la
• Ré-utilisation méthode:
• formalisation – Edition de modèles
– Analyse de modèles
– Modèles génératifs
– Intégration de points de vues (intégration 7
de modèles hétérogènes
Pourquoi ingénierie des modèles?
• L’ingénierie du logiciel fournit sans cesse de
nouvelles technologies facilitant la mise en œuvre
des systèmes informatiques.
• Qu’elles soient fondée sur les objets, les composants
ou les services, le but est toujours le même :
l’accroissement de qualité de ces systèmes tout en
facilitant leur mise en œuvre.
• Mais l’inconvénient majeur de ces technologies
réside dans leur difficulté à mettre en œuvre
efficacement la réutilisation face à l’évolution des
plates-formes d’exécution.
8
Pourquoi ingénierie des modèles?
• C'est la technologie objet qui a déclenché l'évolution vers
les modèles
• La conception des systèmes informatiques sous la forme
d'objets communicant entre eux, il s'est posé la question de
les classer en fonction de leurs différents origines (objets
métiers, techniques, etc.).
• L'IDM (Ingénierie Dirigée par les Modèles) fournit un grand
nombre de modèles pour exprimer séparément chacune
des préoccupations des utilisateurs, des concepteurs, des
architectes, etc.
• Les modèles sont au cœur de développement du logiciel
Pour un observateur A, M est un modèle de l'objet O, si
M aide A à répondre aux questions qu'il se pose sur O
9
[Min68].
Pourquoi ingénierie des modèles?
• Le principe d’IDM est d’utiliser une représentation simplifiée
d’un aspect du monde réel (modèle) dans un objectif donné en
s’abstrayant des détails qui n’ont pas de rapport avec cet aspect .
• Elle consiste à centrer les activités de développement sur le
paradigme de modèle qui est considéré dorénavant comme une
entité de première classe [Bézivin, 2004].
• L'approche objet est fondée sur les relations essentielles
d'instanciation et d'héritage
• L'IDM est basée sur un autre jeu de concepts et de relations: la
notion de modèle. Elle considére les modèles à différents
niveaux d’abstraction afin de faciliter leur réutilisation au cours
du processus de développement.
10
Pourquoi ingénierie des modèles?
L’apport principal de l’IDM est de conceptualiser le
développement sous la forme de transformations de modèles,
ces entités (aussi bien les modèles que les transformations)
étant décrites conformément à des métamodèles.

conformeA

représentationDe
11

Une carte est un modèle (une représentation) de


la réalité, avec une intention particulière (carte
routière, administrative, des reliefs, etc.).
Définitions de base
• Selon l’OMG, un modèle est un ensemble de faits
caractérisant un aspect d'un système dans un objectif
donné.
• Il représente un système selon un certain point de vue, à un
niveau d'abstraction facilitant par exemple la conception et
la validation de cet aspect particulier du système.

OMG (Object Management Group): est un consortium à but non lucratif d’industriels et de
chercheurs dont l’objectif est d’établir des standards permettant de résoudre les problèmes
d’interopérabilité des systèmes d’information (http://www.omg.org)

Définition (Principe de substituabilité) Un modèle doit capturer les


informations nécessaires et suffisantes pour permettre de répondre aux
questions que l'on se pose sur un aspect du système qu'il représente,
exactement de la même façon que le système lui-même aurait répondu. 12
Définitions de base
• Modélisation de plusieurs aspects

13
Définitions de base
• La notion de modèle dans IDM fait explicitement référence
à la notion de langage bien défini.
• Pour qu’un modèle soit productif, il doit pouvoir être
manipulé par une machine.
• Le langage dans lequel ce modèle est exprimé, doit donc
être clairement défini.
• La définition d’un langage de modélisation a pris la forme
d’un modèle, appelé métamodèle.
Définition métamodèle: est un modèle qui définit le langage
d’expression d’un modèle, c.-à-d. le langage de modélisation.

La métamodélisation est la définition d’un cadre de


définition des langages de modélisation. 14
Définitions de base

15
Définitions de base
• L’OMG est basé sur les principes déjà cités.
• Il propose l’architecture MDA (Model Driven Architecture)
basée sur l’utilisation massive de modèles aux différentes
phases du cycle de développement d’une application.
• MDA a une architecture à 4 niveaux
Définition métamétamodèle: est un
modèle qui décrit un langage de
métamodélisation, c.-à-d. les éléments de
modélisation nécessaires à la définition
des langages de modélisation. Il a de plus
la capacité de se décrire lui-même.

16
Définitions de base

17
Principe généraux de l’IDM
• L’OMG préconise 4 niveaux:
– Méta-méta Modèle: éléments pour décrire un méta-modèle
– Méta Modèle
• Eléments pour décrire un modèle (diagramme de classes+ contraintes OCL)
• Syntaxe abstraite du langage de modélisation
• Associés à des représentations (langages concrets)
– Modèle
• Modèle d’une application ou d’un système
• Conforme au méta-modèle, exprimé dans un langage concret
• Outils: éditeurs de modèles: implémentent les concepts du méta-modèle et du
langage
– Elément modélisé du monde réel
• Application ou système (ex: code ava)

18
Principe généraux de l’IDM

19
Principe généraux de l’IDM

20
Principe généraux de l’IDM
• Comment définir un méta-modèle?
– Trois approches possibles:
• Définir un méta-modèle à partir de « rien », en se basant sur un
méta-méta modèle existant par exemple MOF, ou Ecore)
• Modifier un méta-modèle existant: ajout, suppression,
modification d’éléments et de contraintes sur leurs relations.
• Spécialiser un méta-modèle existant en rajoutant des éléments et
des contraintes (sans en enlever) -> correspond à la notion de
profil UML (SYSML, MARTE, SPEM…)
– Langages de méta-modélisation:
• MOF
• ECORE (Eclipse/EMF)
• KM3
• Kermeta

21
Langage de modélisation
• L’éditeur de modèle est basé sur un langage:
– Textuel:
• Langages de programmation: les programmeurs
• XML: les machines
• Langage dédié (DSML) pour les spécialistes de domaine
– Graphique:
• Vue d’ensemble liant plusieurs entités: particulièrement l’architecture, les
échanges, le comportement
• Généralement lié à une représentation textuelle
– Mathématique:
• Basé sur des théories mathématiques: les mathématiciens
• Précision dans l’expression: formalisation et preuves
• Un langage possède une syntaxe
– Précise comment représenter chaque élément d’un modèle
– Elément d’un modèle- instance d’un méta-modèle
Définition (Langage): Un langage (L) est défini selon le tuple {S,Sem} où S est sa 22
syntaxe et Sem sa sémantique
Formalisation
• Modèle informel
– Il existe des interprétations différentes d’un même modèle
– Langage naturel
• Modèle formel
– Il n’existe qu’une interprétation unique pour un modèle donné
– Grammaire bien formée
– Sémantique sous-jacente
– Traitement automatique possible (résultat prévisible à priori)
• Modèle semi-formel
– Certaines parties sont formellement décrites et d’autres non

23
Exemples

24
Exemples Le monde réel est un feu tricolore

25
Exemples Le monde réel est une bibliothèque

26
MDA
• MDA préconise l’élaboration de:
– Modèle d’exigences (CIM: Computation
Independent Model)(modèle indépendant de
calcul):besoins fonctionnels de l'application
– Modèle d’analyse et de conception (PIM:
Platform Independent Model)
• Modèles d'analyse et de conception de l'application
• Modèles mathématiques
– Modèle de code (spécifique aux plateformes
(PSM: Platform Specific Model): Modèle qui se
rapproche le plus du code final de l'application 27

Vous aimerez peut-être aussi