Académique Documents
Professionnel Documents
Culture Documents
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?
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
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)
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.
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