194
Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Embed Size (px)

Citation preview

Page 1: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ingénierie des Modèles

Page 2: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Plan Lundi : Un curieux besoin de modèles

Etude d’une application Java Etude d’une application WS Introduction à UML Introduction à l’ingénierie des modèles

Mardi : Des modèles productifs UML pour la génération de documentation UML pour la génération d’application

Mercredi : Opération sur les modèles Utilisation du langage J sur UML

Jeudi : Modèles et méta-modèle Architecture à 4 niveaux MOF, JMI

Vendredi : l’approche MDA PIM, PSM, Code Modèle de transformation de modèles Interopérabilité des modèles

Page 3: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Un curieux besoin de modèles

Etude d’une application JavaEtude d’une application WSIntroduction à UMLIntroduction à l’ingénierie des modèles

Page 4: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Etude d’une application JavaCas 1

Page 5: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objectif

Vous devez fournir un document expliquant l’application afin qu’une autre équipe puisse faire évoluer cette application en y ajoutant une nouvelle fonctionnalité!

Cas 1

Page 6: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Scénario d’utilisationCas 1

Page 7: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Vision Schématique Abstraite

IHM BDPersonne

Cas 1

Page 8: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes de l’application Repertoire Personne Adresse UIRepertoire UIPersonne UIActionListener MyAssistant

?

Cas 1

Page 9: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Vision Schématique Abstraite

IHM BD

Personne

Repertoire

AdressesUIPersonneUIRepertoire

UIActionListener

Cas 1

Page 10: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Méthode Main

public static void main(String[] args) {UIRepertoire ihm = new UIRepertoire();}

public UIRepertoire() {super("Mon Repertoire");menuListener = new UIMenuActionListener(this);WindowListener l = new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}public void windowClosed(WindowEvent e) {System.exit(0);}};addWindowListener(l);init();}

?

Cas 1

Page 11: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Vision Schématique Abstraite

IHM BD

Personne

Repertoire

AdressesUIPersonneUIRepertoire

UIActionListener

MyAssistant

Cas 1

Page 12: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Etude d’une application WS

Cette application converti un fichier excel CSV en un fichier XML

Cas 2

Page 13: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objectif

Vous devez décrire précisement mais simplement l’architecture de cette application

Cas 2

Page 14: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Feuille WSDLCas 2

Page 15: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Utilisation de Spy

Demo

Cas 2

Page 16: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Synthèse

Le code n’est pas un bon média de capitalisation

L’abstraction nécessiteUne bonne connaissance techniqueUn format de représentation commun

Cas

=> Modéliser

Page 17: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des Méthodes de modélisation

L’apparition du paradigme objet à permis la naissance de plusieurs méthodes de modélisationOMT, OOSE, Booch, Fusion, …

Chacune de ces méthodes fournie une notation graphique et des règles pour élaborer les modèles

Certaines méthodes sont outillées

UML

Page 18: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Trop de Méthodes Entre 89 et 94 : le nombre de méthodes

orientées objet est passé de 10 à plus de 50 Toutes les méthodes avaient pourtant

d’énormes points communs (objets, méthode, paramètres, …)

Au milieu des années 90, G. Booch, I. Jacobson et J. Rumbaugh ont chacun commencé à adopter les idées des autres. Les 3 auteurs ont souhaité créer un langage de modélisation unifié

UML

Page 19: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Historique

Autres méthodes Booch’91 OMT-1 OOSE Partenaires

Booch’93 OMT-2

Méthode unifiée 0.8

UML 0.9

UML 1.0

UML 1.1

UML 1.2

UML 1.x

UML 2.0

1999-2002

Juin 1998

Novembre 1997Septembre 1997

Janvier 1997

Juin 1996

Octobre 1995

Définition en cours par une commission de révision

Soumission à l’OMG

Standardisation par l’OMGSoumission à l’OMG

Soumission à l’OMG

Version bêta OOPSLA’96

OOPSLA’95

UML

Page 20: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Aujourd’hui UML est le langage de modélisation orienté objet le plus connu et le

plus utilisé au monde UML s’applique à plusieurs domaines

OO, RT, Deployment, Requirement, … UML n’est pas une méthode

RUP Peut d’utilisateurs connaissent le standard, ils ont une vision outillée

d’UML (Vision Utilisateur) 5% forte compréhension, 45% faible compréhension, 50% aucune

compréhension UML est fortement critiqué car pas assez formel Le marché UML est important et s’accroît

IBM, Sun, Borland, Microsoft

UML

Page 21: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Classes Un diagramme de classes est un graphe de

classes connectés par des relations. Un diagramme de classes est une vue

graphique de la structure statique d’un système.

Company

Company

Person

Employeemembers

0..1 *

UML

Page 22: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes Une classe représente la structure commune

d’un ensemble d’objets. Une classe est représentée par un rectangle qui

contient une chaîne de caractères correspondant au nom de la classe Ce rectangle peut être séparé en trois parties (nom,

attributs, opérations). Le nom de la classe doit commencer par un caractère

alphabétique et ne pas contenir le caractère ‘::’

UML

Page 23: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes

Person

+name : string

+firstName : string

#id : string

nbPerson : integer

/completeName : string

Employee

UML

Page 24: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Attributs Une classe peut contenir des attributs La syntaxe d’un attribut est :

visibilité nom : type La visibilité est:

‘+’ pour public ‘#’ pour protected ‘-’ pour private

UML définit son propre ensemble de types Integer, real, string, …

Un attribut peut être un attribut de classe, il est alors souligné. Un attribut peut être dérivé, il est alors préfixé par le caractère ‘/’

UML

Page 25: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Attributs

Person

+name : string

+firstName : string

#id : string

nbPerson : integer

/completeName : string

Company

url [3] : string

name : string

UML

Page 26: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Opérations

Une opération est un service qu’une instance de la classe peut exécuter

La syntaxe d’une opération est:visibility name(parameter):return

La syntaxe des paramètres est:kind name : type

Le kind peut être: in, out, inout

UML

Page 27: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Opérations

Company

url [3] : string

name : string

+makeProfit():real

+getWorkingEmployee(): [*] Employee

Employee

+stopWork():boolean

+startWork(In work:string):boolean

UML

Page 28: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Héritage L’héritage est une relation entre un élément plus

général et un élément plus spécifique. L’héritage existe entre des classes, des packages, …

L’héritage multiple est possible en UML

Shape

Rectangle Circle

UML

Page 29: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Associations Les associations binaires connectent deux

éléments entre eux Une association binaire est composée de deux

associations ends. Une association end est paramétrée par:

Un nom (le role joué par l’entité connectée) Une multiplicity (0, 1, *, 1..*, …) Un genre d’aggregation (composite, aggregation,

none) De plusieurs propriétés: isNavigable, isChangeable

UML

Page 30: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Associations

Student Course

attends

students attendedCourses

* *

Un étudiant suit des cours (0 ou plusieurs). A partir d’un étudiants, il est possible d’identifier les cours suivis (navigable).

Un cours est suivi par plusieurs étudiants (0 ou plusieurs).

UML

Page 31: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Associations

Student

School Departmenthas

1 1..*

member

1..*

*

Composition

Aggrégation

UML

Page 32: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Associations

Les associations N-aire connectent plusieurs éléments entre eux.

Les associations N-aire sont très peu utilisées.

Class

Class1

Class2

UML

Page 33: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes-Associations Une classe-association est une association qui

est aussi une classe. Les classes-associations sont utilisées lorsque

les associations doivent porter des informations Il est toujours possible de se passer des

classes-associations.Company Employee

Job

* 1..*

salary : undefined

UML

Page 34: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Interfaces Une interface est la spécification externe (en

terme d’opérations) d’une classe. Une interface peut donc contenir des opérations Une classe réalise une interface si elle est

capable d’exécuter toutes les opérations de l’interface

On utilisera une relation de dépendance pour exprimer le fait qu’une classe est cliente d’une interface.

UML

Page 35: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Interfaces

Element

Parser

Engine+addChild(In child:Element)

+getChildren(): [*] Element

ElementParser

Engine

UML

Page 36: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Contraintes et Notes

Il est possible de contraindre ou d’annoter n’importe quel élément du modèle

Les contraintes et les notes sont bien souvent écrites en langage naturel

Le langage OCL est cependant préconiser pour décrire des contraintesself.age<60

UML

Page 37: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Contraintes et Notes

Company Employee

<<comment>>

Une association n'est pas une company

ageLimit

{self.age<60}

* 1..*

UML

Page 38: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Packages Un package permet de grouper des

éléments Un package sert d’espace de désignation Un package peut inclure d’autres package Un package peut importer d’autres

package L’héritage entre package est possible

UML

Page 39: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

PackagesUML

Page 40: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Classe - Fin Les diagrammes de classes sont les

diagrammes les plus utilisés Ils permettent la décrire des programmes objet Ils permettent de décrire le schéma logique de bases

de données Ils permettent de décrire des relations de concepts

(modèle métier) Les diagrammes de classes peuvent être de

différents niveaux d’abstraction

UML

Page 41: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Définir le diagramme

de classe d’un tournoi de foot (type mondial)

Définir le diagramme de classe de l’application MyAssitant

Ing. Modele

Page 42: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Reverse Engineering

Le reverse engineering consiste à créer automatiquement un diagramme de classe à partir de n’importe quelle application

Nous avons réalisé un reverse engineering sur l’application MyAssistant

Ing. Modele

Page 43: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Reverse de MyAssistantIng. Modele

Page 44: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Comment marche un

reverse engineering?

Ing. Modele

Page 45: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Pourquoi n’y a-t-il pas

de lien entre répertoire et personne?

Ing. Modele

Page 46: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’implémentation vs diagramme conceptuel Le diagramme obtenu après reverse

engineering est une copie graphique du code : c’est un diagramme d’implémentation

Le diagramme réalisé en analysant l’application est un diagramme conceptuel (ex: le diagramme de MyAssistant réalisé précédemment)

Ing. Modele

Page 47: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Est-il possible de passer

d’un diagramme conceptuel à un diagramme d’implémentation?

Et l’inverse ?

Ing. Modele

Page 48: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Comment Modéliser ? The choice of what models to create has profound

influence on how a problem is attacked and how a solution is shaped

Every model may be expressed at different levels of precision

The best models are connected to reality No single model is sufficient. Every non trivial system is

best approached through a small set of nearly independant models

Notation & Méthode

Ing. Modele

Page 49: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan

Nécessité de modéliser Place de UML Modèles vs code Nécessité de l’ingénierie de la

modélisation

Page 50: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des modèles productifs

UML pour construire

L’atelier Objecteering

Page 51: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’Electricien et l’Informaticien

Un problème, des besoins

Un composant virtuel (des entrées des sorties)

Des portes AND, OR, NOR, …

Un schéma électrique

Le composant électrique Le programme informatique

UML

Page 52: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des Modèles plutôt que du Code Un modèle est la simplification/abstraction de la

réalité Nous construisons donc des modèles afin de

mieux comprendre les systèmes que nous développons

Nous modélisons des systèmes complexes parce que nous somme incapables de les comprendre dans leur totalité

Le code ne permet pas de simplifier/abstraire la réalité

Page 53: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Un problème - Un diagramme Diagramme de classes / Class Diagram

Classe, Opération, Attribut, Association, … Diagramme d’objet / Object Diagram Diagramme de cas d’utilisation / Use Case Diagram

Cas d’utilisation, Acteur, .. Diagramme de séquence / Sequence Diagram

Instance, message, relation Diagramme de collaboration / Collaboration Diagram Diagramme d’état / Statechart Diagram Diagramme d’activité / Activity Diagram Diagramme de composant / Component Diagram Diagramme de déploiement / Deployment Diagram

UML 1.x

Page 54: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Cas d’Utilisation Un diagramme de cas d’utilisation décrit des

acteurs et leurs relations avec des cas d’utilisation

Les diagrammes de cas d’utilisation décrivent les fonctionnalités d’un système

Page 55: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Acteurs

Un acteur représente un utilisateur externe du système

Un acteur est en relation avec un ou plusieurs cas d’utilisation

Il est possible de définir des relations d’héritage entre Acteurs

Page 56: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas d’Utilisation Un cas d’utilisation représente une fonctionnalité

du système Il est possible de définir des relations de

dépendance entre cas d’utilisation Il est possible de définir des relations d’inclusion

entre cas d’utilisation Il est possible de définir des relations d’héritage

entre cas d’utilisation

Page 57: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Cas d’Utilisation

MagisterTest1

CommercialCustomer

Customer

Bill customer

Validate user

Place order

Check Password

Ship order

Ship partial order

<<include>>

<<include>>

<<extend>>

Page 58: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas d’Utilisation -Fin Les diagrammes de cas d’utilisation sont

souvent employés Ils permettent de décrire le système de façon très

abstraite Ils offrent une vue fonctionnelle (par opposition à une

vue Orienté Objet) Ils sont très simples …

La difficulté consiste à passer des cas d’utilisation aux classes

Page 59: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Définir le diagramme

de cas d’utilisation de yahoo!

Définir le diagramme de cas d’utilisation de Air Senegal

Page 60: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Séquence Un diagramme de séquence représente une

interaction entre plusieurs éléments Les éléments interagissent par envoi de

messages Les éléments interagissant sont des instances

jouant des rôles.

Page 61: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Instances Un diagramme de séquence met en œuvre des

instances Instance de classe, Instance d’acteur

Graphiquement une instance se distingue de son type car elle est soulignée

Il est possible de définir des instances sans préciser leur classe

La durée de vie des instances est définie sur l’axe vertical du diagramme

Graphiquement l’activité d’une instance se voit grâce à un rectangle sur l’axe du temps

Page 62: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Messages Creation: Une instance peut créer une autre instance

grâce à un message de création Destruction: Une instance peut détruire une autre

instance grâce à un message de destruction Message de Séquence: Une instance peut envoyer un

message de séquence à une autre instance pour demander l’exécution d’une opération

Message Asynchrone: Une instance peut envoyer un message asynchrone à une autre instance (événement)

Branche de messages: Il est possible de spécifier des conditions sur l’envoi de message (if then else)

Page 63: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Séquence

Page 64: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Séquence - Fin Les diagrammes de séquence sont de plus en

plus utilisé Ils permettent de décrire la dynamique d’un système Ils permettent de faire le lien entre les diagrammes de

cas d’utilisation et les diagrammes de classes La sémantique de ces diagrammes est encore

un peu flou Les techniques de génération de code n’exploitent

pas encore très pleinement ces diagrammes

Page 65: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Définir le diagramme

de séquence d’un examen scolaire

Page 66: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’Objets

Un diagramme d’objet représente la vue statique d’un ensemble d’instance de classes

Page 67: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Collaboration Un diagramme de collaboration représente la

vue statique et la vue dynamique d’un ensemble d’élément

Une collaboration définit des rôles (et non pas des classes!)

Page 68: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’Etat

Un diagramme d’état représente la vue dynamique d’un ensemble d’éléments sous forme d’état

Page 69: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’Activité Un diagramme d’activité représente la vue

dynamique d’un ensemble d’éléments sous de flux d’exécution

Page 70: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de composant

Un diagramme de composant représente les composants logiciels d’un système

Page 71: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de déploiement Un diagramme de déploiement représente la

façon dont déployer les différentes éléments d’un système

Page 72: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le Besoin d’Organisation Un modèle UML représente un système et son

environnement Les diagrammes UML offrent différentes vues d’un

même modèle Certains diagrammes sont complémentaires, d’autres

non Certains diagrammes sont très abstrait, d’autres non Il est nécessaire de définir une organisation entre les

diagrammes (Une méthode)

Objectif: Gagner du temps

Page 73: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La méthode IL (pédagogique)

1. Cahier des charges

2. Analyse (Quoi ?) Identifier les Actors et les Use Case 1 Diagramme de Séquence / Use Case Diagramme de Classe

3. Conception (Comment ?) Diagramme de Séquence Diagramme de Classe

Page 74: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Exemple: Mini Bibliothèque

Le système doit permettre aux abonnés d’emprunter des livres.

L’inscription est annuelle. Une personne non abonnée ne peut pas

emprunter de livres.

Page 75: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Use Case Diagram

MagisterTest1

Abonné

Personne

Emprunter Un Livre

Authentifier

S'Abonner

Se désabonner

Vérifier les empruns

<<include>>

<<include>>

<<include>>

Page 76: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Sequence Diagram

Instance1:Abonné

System:

authentification

emprunter

chercher le livre

vérifier les empruns

Page 77: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Class Diagram

Bibliothèque Livre

Exemplaire

références

0..1 *

exemplaires

0..1

*

*

1

Page 78: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Conception = Comment ?

On considère souvent que la conception doit être un raffinement de l’analyse. L’idée est que l’on doit facilement tracer les liens entre classes d’analyse et classes de conception

Les classes de conception serviront à la génération du code

Page 79: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objecteering UML Modeler Atelier UML

Tout les diagrammes UML1.4 Module de production

Génération Java, C++, C#Génération de DocumentationGénération SQLGénération IDL, EJB,…

Page 80: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modèle vs DiagrammeMagisterTest1

Abonné

Personne

Emprunter Un Livre

Authentifier

S'Abonner

Se désabonner

Vérifier les empruns

<<include>>

<<include>>

<<include>>

Base contenant tous les éléments du modèle

Page 81: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Créer un nouveau projet

Page 82: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Editeur de modèles

Vue hierarchique de tous les éléments du modèle.

Vue de tous les diagrammes du modèle.

Vue graphique d’un diagramme.

Console.

Page 83: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Module de Production

JavaModule

Page 84: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objecteering Java

Configuration des module de production

Utilisation du module Java

Page 85: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Opération sur les modèles

Profil et Module Objecteering

Le Langage J

Page 86: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Outils Objecteering

UML ModelerEdition de modèle UMLUtilisation de module Objecteering

UML Profil BuilderCréation de module Objecteering

Page 87: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modélisation de l'implémentationExpert du domaine Modélisation du problème

Expert Informaticien

Règles d'implémentation (langage J)

Transformation de modèle - Profile UML

Codage des production

Page 88: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Profile Builder

PAR LES MENUS :Programmes\Objecteering\Objecteering UML

Profile Builder

Page 89: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) cliquer dans l’icône« new  »

ou l’item « new »Du menu File

3) saisir sa localisation

2) Renseigner le nom du projet

3’) ou parnavigation

Création d’un projet de profil

Page 90: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Barre de menus

Console

Barre de status

NavigateurBarre de raccourcis des menus

Boîte de propriétés

Fenêtre Principale

Page 91: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Expanserle profil « default »

3) cliquer sur le bouton « Créer un profil fils »

4) Donner le nom du nouveau profile (ex: Scan)

Création d’un profil

2) Expanserle profil « external »

Page 92: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Sélectionner le nouveau profil

3) Sélectionner « Class » dans la liste déroulante

2) Cliquer sur l'icône « Créer une référence de méta-classe »

Référencement au concept UML

Le code J s’attache sur les concepts UML!

Page 93: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Sélectionner la méta-classe

3) Donner le nomde la nouvelle opération (ex: AfficherStatus)

2) Cliquer sur l'icône « Ajouter une opération J »

Création d’un opération J (1)

Page 94: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Double-cliquer sur l ’opération

2) Modifier les caractéristiques de l ’opération

Création d’un opération J (2)

Page 95: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Sélectionner l'opération

3) Double cliquer sur l'icône « Jcode »

2) Sélectionner l‘onglet « items » de la boite de propriétés

Saisie d’une opération J (1)

Page 96: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Saisir le code

Saisie d’une opération J (2)

StdOut.write("La classe <",Name,"> a pour visibilité " , Visibility);

Page 97: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

2) Cliquer sur l'icône« Créer un module »

1) Sélectionner le projet

Création d’un module

Page 98: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Saisir le nom

2) Saisir le libellé

3) Saisir la version

4) Éventuellement un commentairede la release

5) Éventuellement la compatibilitéAvec une autre version

Caractéristiques d’un module

MonModule

Mon Premier Module

Page 99: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Sélectionner le module

2) Cliquer sur l ’icône« Référencer le profile UML »

3) Rechercher tous les profiles disponibles

4) sélectionner le(s) profile(s) et valider

Lien avec les profils (1)

Page 100: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Lien avec les profils (2)

Page 101: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

2) Cliquer sur l'icône « Créer une Commande »

3) Remplir les propriétésde la commande

•Profile•Méthode J

1) Sélectionner le module

Créer une commande

Page 102: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) cliquer sur le Menu « Test » puis « Create a test project »

2) Entrer le nom du projet de test

3) Cliquer sur « OK »

Créer un projet un Test

Page 103: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Sélectionner une classe puis faire « clic droit »

2) Vérifier le résultat dans la console

Tester la commande

Page 104: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

OBJECTIF : PERMETTRE L’INSTALLATION DU MODULE SUR LES

BASES DU SITE AVOIR LE MODULE SOUS FORMAT FICHIER (.prof) POUR

L’ECHANGER LE PACKAGING D’UN MODULE PEUT CONTENIR :

RESSOURCES : ICÔNES DE STÉRÉOTYPES, DE PRODUITS DE GÉNÉRATION, …

FICHIERS : TRADUCTION DES MESSAGES, DTD XMI, … BINAIRES ET SCRIPTS : EXÉCUTABLES DÉCLENCHÉS

DEPUIS DES MÉTHODES J POUR TOUS TYPES DE TRAITEMENTS : parsers, wizards, …

Pourquoi packager un module ?

Page 105: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Packager (1)

Page 106: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Lieu de stockage physiquedu module packagé

Versions majeure etmineure du module

Release du module

Code en mode read only

XXXXXXX

Ressources liées aux modules

Manque la documentation du module

Manque le fichier de traduction des messages

Packager (2)

Page 107: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Packager (3)

Module packagé

Répertoire des Ressources du module

Un répertoire pourChaque version

Page 108: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Livraison d’un module

Double clic sur le fichier .profRésultat dans fenêtre DOS

Page 109: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

1) Lancer Objecteering

2) Menu « Tools » item « modules »

3) Sélectionner le module

5) Valider

4) Ajouter

Selection d’un module

Page 110: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le langage J LE LANGAGE J EST LE LANGAGE SUPPORT

DE OBJECTEERING / UML PROFILE BUILDER.

IL PERMET : DE PILOTER ET DE PARAMÉTRER L'OUTIL

OBJECTEERING, DE PARTICULARISER LES GÉNÉRATEURS

EXISTANTS, D'ÉCRIRE DE NOUVEAUX GÉNÉRATEURS.

J EST UN LANGAGE OBJET DÉDIÉ À LA MANIPULATION DE MODÈLES.

Page 111: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes « mères » (Object, MetaClass, …) Classes de base (int, float, boolean, String,

enumerate) Classes entrée/sortie (stream, outStream,

inStream) Classes des concepts UML (Class, Attribute,

Operation, ...)

Les classes de J

Page 112: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La classe « ObjectObject » Toutes les classes du langage J héritent de la classe « Object » Elle définit deux opérateurs : == (égalité) et != (différent)

La classe « Object [ ]Object [ ] » La classe Object[] représente un ensemble d’objets. Elle définit un constructeur « [] » qui est défini sur toutes les

classes de J. ex: Attribute [ ], String [ ], …

Les classes « Mères »

Page 113: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

GÈRE LES ENTIERS. LES OPÉRATEURS :LES OPÉRATEURS :

< « inférieur » <= « inférieur ou égal » > « supérieur » >= «  supérieur  ou égal  » + « addition » - « soustraction » * « multiplication » / « division » % « modulo » (reste de le division entière)

LES MÉTHODES :LES MÉTHODES : float toFloat() conversion en « float » String toString() conversion en « String »

Classes de Base « int »

Page 114: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Classes de Base « String » GÈRE LES CHAÎNES DE CARACTÈRES.

LES OPÉRATEURS :LES OPÉRATEURS : < « inférieur » <= « inférieur ou égal » > « supérieur » >= «  supérieur ou égal  » + « concaténation »

LES MÉTHODES :LES MÉTHODES : int size() : renvoie la taille de la chaîne substitute (in String ToSubstitute, in String NewValue) : remplace toutes les occurrences

de « ToSubstitute » par « NewValue » toUpper() : conversion en majuscule toLower() : conversion en minuscule int findFirst (in String Pattern, in int StartIndex) : renvoie la position de la première

occurrence de « Pattern » à partir de « StartIndex » ou -1 si « Pattern » n’est pas trouvé

Page 115: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

« stream » (stream, outStream, inStream) : utilisée pour gérer les entrée/sorties.

trois instances prédéfinies de outStream pour les sorties standards : stdOut, stdErr, stdFile.

La Classe Stream n’offre pas de service

La Classe OutStream représente le flux de sortie boolean open(in String FileName) : ouvre le fichier « FileName » en

écriture write (in basic_class p1, in basic_class p2, ...) : écrit dans le fichier

la liste des valeurs passées en paramètres close () : ferme le fichier existFile (in String FileName, out boolean answer)

Les Classes« entrée/sortie » (1)

Page 116: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La Classe InStream représente le flux d’entrée boolean open(in String FileName) : ouvre le

fichier « FileName » en lecture read (in String buffer) : lit « buffer » dans le

fichier close () : ferme le fichier existFile (in String FileName, out boolean

answer) : teste l’existence du fichier

Les Classes« entrée/sortie » (2)

Page 117: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Les Classes de concepts UML

J permet d’accéder à toutes les informations de tout élément du modèle

Classe:Name, Visibility, … PartAttribute, PartOperation

Page 118: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Les opérations J

L’appel d’une opération se fait avec le symbole « . »Ex: StdOut.write

Possibilité de diffuser une opération sur un ensembleEx: ParOperation.<write()

Polymorphisme supporté

Page 119: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Méthodes anonymes

Concaténation de tous les attributs d'une classe dans une chaîne de caractères.

Class:printAttribute ( ) {String line;PartAttribute // diffusion aux attributs{ // début de la méthode anonyme // nous sommes ici dans un contexte d’ « Attribute » String buffer = "," + Name; // variable locale

line = line + buffer; // accès à une variable englobante} // fin de la méthode anonyme

// de retour dans un contexte de « Class »StdOut.write("the ", Name, " class's attributes are ", line, NL);}

Page 120: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

FACILITER LA NAVIGATION DANS UN MODÈLE les classes d’un package les méthodes d’une classe les paramètres d’une méthode …

NOTATIONNOTATIONLes ensembles sont définis par la classe « class of the

elements [ ] », telle que Object[], String[], Class[], etc.

DÉCLARATIONDÉCLARATIONLa déclaration suivante, permet d'obtenir un ensemble vide

d'objets « Object » :Object[] E;

Les ensembles (1)

Page 121: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

ORDRE DES ÉLÉMENTSORDRE DES ÉLÉMENTS Les ensembles sont ordonnés. L'ordre d'insertion des éléments dans l'ensemble sera l'ordre de parcours de ces

éléments lors d'une diffusion ou de l'application de méthodes anonymes. Par exemple, l'ordre des méthodes d'une classe est accédé dans l'objet

« PartOperation » dans l'ordre où celles-ci apparaissent dans le modèle, de même que pour les paramètres d'une méthode (IOParameter), …

AFFECTATION ENTRES ENSEMBLESAFFECTATION ENTRES ENSEMBLES Les ensembles sont considérés comme des classes de base. L'affectation entre ensembles recopie donc la valeur d'un ensemble dans un

autre ensemble. ENSEMBLE VIDEENSEMBLE VIDE

Le service « notVoid » permet de tester si un ensemble est vide ou pas.If (notVoid (mySet)) // ensemble non vide

else // ensemble vide

Les ensembles (2)

Page 122: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

ACCÈS AU IÈME ÉLÉMENTACCÈS AU IÈME ÉLÉMENT J n’autorise pas les instructions du type « E[i]=V; » ou

« v=E[i]; ». Les services suivants doivent êtres utilisés :

Object:getItemSet (inObject[] pSet, in int pIndex, out Object pElt) : Renvoie dans l’objet « pElt » le « pIndex » ième élément de l’ensemble « pSet » .

Le 1er élément a l’index 0. Les types de « pSet » et « pElt » peuvent être plus précis (String[] and String

par exemple) Object:setItemSet (inout Object[] pSet, in int pIndex, in Object

pElt) : Remplace le « pIndex » ième élément de l’ensemble « pSet » par l’objet « pElt ».

Les ensembles (3)

Page 123: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

« size size » : renvoie le nombre d’éléments de l’ensembleExemple :

PartAttribute .size(); // ou PartAttribute .length();

« addElementaddElement » : ajoute un élément dans l’ensemble Exemple :PartOperation.<select(Visibility == Public) { E.addElement (this); }

« addadd » : concatène deux ensemblesExemple :

E1.add(E2); // les éléments de E2 sont ajoutés à la fin de E1

« retractretract » : retire le dernier élément d’un ensembleExemple :E1.retract(); // le dernier élément est enlevé de l’ensemble

Les ensembles (4)

Page 124: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

« selectselect » Faire une sélection sur les occurrences d'un ensemble, selon

l'expression booléenne fournie en paramètre. Le résultat est un sous-ensemble de l'ensemble initial. Sur ce résultat, il est possible d'appliquer soit une méthode

anonyme, soit un nouveau "select", soit une diffusion

3 exemples équivalents :PartOperation.<select(Visibility == Public) { display (); }//1: méthode Anonyme

PartOperation.<select(Visibility == Public).<display ();//2: diffusion de display()

Operation [] E = PartOperation.<select(Visibility == Public); E.<display(); //3: variable intermédiaire

« select » sur les ensembles

Page 125: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

« while » sur les ensembles « whilewhile » :

arrêter la scrutation d'un ensemble, lorsqu'une certaine condition est atteinte.

parcourt toutes les occurrences jusqu'à obtention de la condition d'arrêt de scrutation.

Ces 2 exemples sont équivalents :

PartAttribute.<while(Name != "Size") { StdOut.write(Name); }

boolean found;PartAttribute.<while(found) {

found = Name == "Size";if (not(found) ) { StdOut.write(Name); }

}

Page 126: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

« IfIf »

if (condition1) { // instructions }

if (condition1) {// instructions } else { // instructions }

if (condition1) { // instructions } else if (condition2) { // instructions } else { // instructions }

Structure de contrôle (1)

Page 127: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

PERMET D'ÉVALUER DYNAMIQUEMENT UNE CHAÎNE DE CARACTÈRES, EN CONSIDÉRANT QUE SON CONTENU EST COMPOSÉ D'INSTRUCTIONS J.

Exemple :Object:Storage() {

Fic.open ("Example");Fic.write ("i1 = 15; s1 = "hello"; b1=false");

} Object:Recover() {

String read_buffer;outStream Fic;int i1 = 15;String s1 = "hello";boolean b1 = false;Fic.open ("Example");Fic.read (read_buffer);eval (read_buffer);StdOut.write ("i1=", i1, NL, "s1=", s1, NL "b1=", b1, NL);

}

Service « eval »

Page 128: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Faire un mini

générateur de code (un fichier par classe avec « public class » Name?

Page 129: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan J permet de créer des opérations sur les

Modèles UML J permet de rendre les profils UML productifs Puissance importante que l’on aimerait avoir en

dehors de UML Il est intéressant de sortir du domaine UML => Ouverture vers les profiles UML

Page 130: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Profile UML

Un profile UML permet d’étendre la sémantique de UML

Ex : Table RDB plutôt que classe UML

Repertoire

<<table>>

Repertoire

Page 131: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Transformation vers Profile

Repertoire Personne

Contient

Adresse

adresse_of_Personne_FK

repertoire_of_Contient_FK personnes_of_Contient_FK

{persistence(persistent)}

Repertoire{persistence(persistent)}

Personne

{persistence(persistent)}

Adresse

name : undefined

firstName : undefined

rue : string

num : integer

ville : string

pays : string

{primaryKey(1)}

id : string

{primaryKey(1)}

id : string{primaryKey(1)}

id : string Contient

repertoire personnes

*

habitepersonne

adresse

*

0..1

Page 132: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Profile UML LES STÉRÉOTYPES :

Ajout de nouveaux éléments de modélisation dans le contexte métier ou technique

Exemples : « interface », « entity_bean », … Il est possible de stéréotyper tout concept UML (Classe, Attribut,

Association, Use Case) LES TAGGED VALUES :

Annotation des éléments de modélisation Exemples : {virtual}, {primary key}, … Il est possible d’associer des tagged values à tout concept UML

(Classe, Attribut, Association, Use Case) LES CONTRAINTES :

Préciser les conditions d’emploi des éléments du modèle Exemples : {disjoint}, {age >= 18}, … Il est possible d’associer des contrainte à tout concept UML (Classe,

Attribut, Association, Use Case)

Page 133: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Exemple Profile SQL

Stereotype Table, ForeignKey, PrimayKey

Contrainte Une table ne peut avoir deux PrimaryKey, …

EJB Stereotype

EJBBean, EJBHomeInterface, … Tagged-Value

Type de l’EJBBean (entity, session) Contrainte

Un EJBBean doit avoir une EJBHomeInterface

Page 134: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objecteering et les Profiles

Il est possible de créer des stereoypes, des tagged value, des contraintes dans un profil Objecteering

Il est en J possible de connaître les stereotypes ou tagged value portés par un élément (ainsi on peut bénéficier de ces informations pour être productif)

Page 135: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer Construisons un profil

pour modéliser les LAN?

Page 136: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modèles et méta-modèles

MOF

JMI & XMI

Page 137: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML et Profil UML permet de modéliser les applications

Orientées Objet Grâce aux profils, il est possible de modéliser

autre chose que des applications orientées objet (Ex: SQL)

Cependant, un modèle profilé est toujours un modèle UML!!! Sémantique OO sous-jacente (classes, héritage,

instance, …) Manque de liberté

Page 138: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objectif Il serait intéressant de disposer d’autres

langages spécifiques à certains domaines tout en ayant la même productivité que celle des modèles UML Langage pour modéliser les échanges entre

applications Langage pour modéliser les processus Langage pour modéliser les éxigences Langage pour modéliser les flux bancaires …

Question ouverte : est-ce que les profils sont si contraingnants ?

Page 139: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles Seriez-vous capable de

construire le diagramme de classes expliquant les concepts d’un diagramme de Use Case?

Seriez-vous capable de construire le diagramme de classes d’un diagramme de classe ?

Page 140: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modèles et méta-modèles

Un méta-modèle est une sorte de diagramme de classes qui définit la structure d’un ensemble de modèles

Un méta-modèle est un formalisme (langage) permettant d’élaborer des modèles Méta-modèle = grammaire Modèle = phrase

Page 141: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (1)

Page 142: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (4)

Page 143: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (2)

Page 144: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (3)

Page 145: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (5)

Page 146: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1.4

Page 147: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1.4

Page 148: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1.4

Page 149: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Page 150: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles de modèles Seriez-vous capable

de construire le diagramme de classes expliquant les concepts des méta-modèles?

Page 151: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Méta-modèles et méta-méta-modèle

Un méta-méta-modèle est une sorte de diagramme de classes qui définit la structure d’un ensemble de méta-modèles

Un méta-méta-modèle est un formalisme (langage) permettant d’élaborer des formalismes (langage)Méta-méta-modèle = grammaire de

grammaireMéta-Modèle = grammaire

Page 152: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF (Meta Object Facility)

Le standard MOF est le seul méta-méta-modèle défini par l’OMG

Il définit les concepts nécessaires et suffisants pour élaborer des méta-modèles

Page 153: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

GeneralizableElement

isRoot : BooleanisLeaf : BooleanisAbstract : Booleanvisibility : VisibilityKind<<reference>> supertypes : GeneralizableElement

allSupertypes()lookupElementExtended()findElementsByTypeExtended()

0..n

0..n

+supertype

0..n{ordered}

Generalizes

+subtype

0..n

ModelElement

name : String/ qualifiedName : Stringannotation : String<<reference>> requiredElements : ModelElement...<<reference>> container : Namespace<<reference>> constraints : Constraint

findRequiredElements()isRequiredBecause()isFrozen()isVisible()

0..n

0..n

+dependent0..n{ordered}

/DependsOn

+provider0..n

Namespace

<<reference>> contents : ModelElement...

lookupElement()resolveQualifiedName()findElementsByType()nameIsValid()

0..n

0..1

+containedElement

0..n{ordered}

+container

0..1

Contains

TypedElement

<<reference>> type : ClassifierClassifier 0..n1..1

+typedElements

0..n

+type

1..1 IsOfType

Page 154: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

GeneralizableElement

isRoot : BooleanisLeaf : BooleanisAbstract : Booleanvisibility : VisibilityKind<<reference>> supertypes : GeneralizableElement

allSupertypes()lookupElementExtended()findElementsByTypeExtended()

0..n

0..n

+supertype

0..n{ordered}

Generalizes

+subtype

0..n

Association

isDerived : Boolean

Class

isSingleton : BooleanDataType

TypedElement

<<reference>> type : ClassifierClassifier

0..n1..1

+typedElements

0..n

+type

1..1 IsOfType

Page 155: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

Namespace

ModelElement

GeneralizableElement

Association

isDerived : Boolean

Feature

StructuralFeature

Classifier

TypedElement

AssociationEnd

isNavigable : Booleanaggregation : AggregationKindmultiplicity : MultiplicityTypeisChangeable : Boolean

otherEnd()

Reference

<<reference>> exposedEnd : AssociationEnd<<reference>> referencedEnd : AssociationEnd

1..1

0..n

+exposedEnd1..1

+referrer

0..n

/Exposes

1..1

0..n

+referencedEnd

1..1

+referent0..n

RefersTo

Page 156: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

ModelElement

Namespace

Feature

scope : ScopeKindvisibility : VisibilityKind

StructuralFeature

multiplicity : MultiplicityType...isChangeable : Boolean

TypedElement

Reference

<<reference>> exposedEnd : AssociationEnd<<reference>> referencedEnd : AssociationEnd

BehavioralFeature

Attribute

isDerived : Boolean

ExceptionOperation

isQuery : Boolean<<reference>> exceptions : Exception

0..n0..n

+except

0..n

{ordered}

+operation

0..n CanRaise

Page 157: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

TypedElement

<<reference>> type : ClassifierClassifier

0..n1..1

+typedElements

0..n

+type

1..1 IsOfType

DataType

PrimitiveType StructureType EnumerationType

labels : String

AliasType CollectionType

multiplicity : MultiplicityType

StructureField

Page 158: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

MultiplicityType

lower : Integerupper : IntegerisOrdered : BooleanisUnique : Boolean

<<structure>>

String(from PrimitiveTypes)

<<primitive>>Integer

(from PrimitiveTypes)

<<primitive>>Boolean

(from PrimitiveTypes)

<<primitive>>

VisibilityKind

public_visprotected_visprivate_vis

<<enumeration>>DirectionKind

in_dirout_dirinout_dirreturn_dir

<<enumeration>>EvaluationKind

immediatedeferred

<<enumeration>>AggregationKind

nonesharedcomposite

<<enumeration>>ScopeKind

instance_levelclass_level

<<enumeration>>

Contained in Constraint

Page 159: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle

Tag

tagId : Stringvalues : String<<reference>> elements : ModelElement

ModelElement

0..n

1..*

+tag

0..n

{ordered}

+modelElement

1..*

AttachesTo

Constraint

expression : Stringlanguage : StringevaluationPolicy : EvaluationKind<<reference>> constrainedElements : ModelElement

1..*

0..n

+constrainedElement

1..*

+constraint

0..n

Constrains

Constant

value : String

TypedElement

<<reference>> type : Classifier

Parameter

direction : DirectionKindmultipl icity : Multipl icityType

Page 160: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles de modèles Quel est le méta du

MOF?

Page 161: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Architecture à 4 Niveaux

MOF

UML SPEM CWM

Modèle

ModèleModèleUML

Méta-méta-modèle

méta-modèles

modèles

Monde Réel

ModèleModèle

ModèleSPEM

ModèleModèle

ModèleCWM

Page 162: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles de modèles Faire le méta-modèle

pour les LAN?

Page 163: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Statuts des Modèles Un modèle est une entité abstraite Un modèle est structuré par son méta-modèle Un méta-modèle est une entité abstraite Un méta-modèle est structuré par le MOF Le MOF est une entité abstraite!

Pour manipuler les (méta*)modèles il faut donc les représenter sous format informatique

Page 164: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Représentation concrète de modèles

TextuelleReprésenter un modèle sous forme de texte

ObjetReprésenter un modèle sous forme d’objets

GraphiqueReprésenter un modèle sous forme de fichier

SVG (réduction à la représentation textuelle)

Page 165: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Représentation des modèles en XML

Le standard XMI (XML Metadata Interchange) permet le passage des modèles aux documents XML

Il définit des règles permettant de construire des schéma XML à partir de méta-modèle

Ainsi il est possible d’encoder un modèle dans un document XML

Page 166: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La passerelle OMG : XMI

Page 167: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique

Page 168: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique Tout package va donner la définition d’un

élément Toute classe va donner la définition d’un

élément Contenu dans un package

Toute association va donner la définition d’un élément Contenu dans la classe

Page 169: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique

Page 170: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique

Page 171: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI pour UML

XMI a été utilisé sur UML pour construire le Schéma XML des modèles UML

Ainsi il est possible d’encoder un modèle UML dans un document XML

Les règles XMI peuvent quasiment s’appliquer sur les diagramme de classe UML

Page 172: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Représentation des modèles en Objets

Le standard JMI permet le passage des modèles aux objets Java

Il définit des règles permettant de construire des interfaces Java à partir de méta-modèle

Ainsi il est possible d’encoder un modèle sous forme d’objet Java

Page 173: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

JMI

Méta-modèle

modèles

Interface Java

Objets Java

Page 174: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

JMI dans la pratique Tout package va donner la définition d’un

package Toute classe va donner la définition d’une

interface Contenu dans un package

Toute association va donner la définition d’une interface Contenu dans la classe

Page 175: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Tester les prototypes

http://modfact.lip6.fr

Page 176: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche MDA

PIM, PSM, CodeTransformation de modèlesInteropérabilité de modèles

Page 177: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Problème ? RPC, DCE, CORBA, DCOM, EJB, .Net, Web

Service, … Evolution sans fin des middleware. Les entreprises

subissent ces changements en terme de coût mais bénéficient de nouveaux avantages.

« Over the past decade or more, companies have endured a succession of middleware platforms. »Jon Siegel, OMG Director of Technology Transfer

Page 178: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Pourquoi c’est un problème ?

Quelques soient le middleware, la méthode et les techniques utilisés (patterns, framework, …); le code métier est toujours, d’une manière ou d’une autre, liés à la technique.

L’évolution est alors problématique car il faut distinguer le code métier (à préserver) du code technique (à jeter).

Page 179: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Une Solution

La solution n’est pas nouvelle : séparation des préoccupations.

Il faut séparer la partie métier de la partie technique.

Il faut donc s’abstraire de la technique (et du code)

Il faut donc modéliser et surtout faire que le modèle soit productif (!= contemplatif)

Page 180: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Pourquoi cette solution est bonne Rien ne permet d’affirmer à 100% que cette solution est

la bonne ! La pérennité des modèles est meilleure que la pérennité

du code la réutilisation du code ne marche pas en terme de coût

Les techniques de génération de code commencent à être productives parallèle avec C et assembleur

Les techniques de modélisation sont industrielles (UML)

Page 181: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche MDA Elaborer des modèles métiers (PIM) puis les

transformer en modèles techniques (PSM) afin de pouvoir facilement générer du code.

La transformation des PIMs en PSMs devra, à long terme, être entièrement automatique et réversible.

La transformation des PSMs devra, à court terme, être entièrement automatique, réversible et paramétrable.

Page 182: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

PIM vers PSM

PIM

PSM ...PSMPSM

Businessrequirements

Modification for each required platform

Mapping to implementation

Implemen-tation ・・・Implemen-

tationImplemen-

tation

Analysis & design

Standards forapplication areas

Standards forplatforms

standardized PIM

standardizedmapping to PSMs

PSM notation

standardized mappingto implementation codes

Standards supporting MDA

Page 183: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Concepts PIM (Plateform Independent Model) : Un PIM est un

modèle métier entièrement indépendant d’une plate-forme technique. Par exemple, un modèle UML sans aucun stéréotype est un PIM. Les PIM sont pérenne, leur durée de vie doit dépasser 10 ans.

PSM (Plateform Specific Model) : Un PSM est un modèle lié fortement à une plate-forme technique. Par exemple, un modèle UML stéréotypé EJB est un PSM. Les PSMs doivent être générés à partir de PIMs. Ils ne sont pas pérennes.

Page 184: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Les standards MOF (Méta Object Facility) : Langage de définition de

méta-modèles. Règles de mapping vers IDL CORBA pour permettre la construction de référentiels de modèles.

UML (Unified Modeling Language) : Langage de définition de modèle d’application OO. Largement utilisé, outillé, connu.

XMI (XML Metadata Interchange) : Règles permettant de représenter tout modèle sous format XML.

JMI : Règles permettant de représenter tout modèle sous format Java.

CWM (Common Warehouse Metamodel) : Langage de définition de modèle de data warehouse.

Page 185: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des Challenges Relations Modèles, Méta-modèles, Méta-

méta-modèle, … Transformations de modèles Définition de Plates-formes standards Méthode MDA (Cycle en Y ?) Stratégie Evangélisation

! Plan d’actions orienté utilisateur

Page 186: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Un chantier commence

Le MDA est un chantier qui commence. Il devrait durer environ 10 ans (ou plus)

A l’heure actuelle UML 2.0 MOF 2.0 XMI 2.0 MOF 2.0 Q/V/T

Page 187: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Page 188: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Transformation de modèles

MOF 2.0 Q/V/TMéta-modèle pour la transformation de

modèlesAppel de proposition de standardHuit propositions initiales

Page 189: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Transformation de modèles

Méta-modèleMOF2.0 Q/V/T

Méta-modèle d’entrée (ex : UML)

Méta-modèle de sortie (ex : Java)

Un modèle de transformation(ex : UML2Java)Un modèle

(ex : Mon modèle UML)

Un modèle (ex : Mon modèle Java)Exécution

Page 190: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Intéropérabilité

Considérer les services de modélisationUne transformation est un service de

modélisation au même titre que l’exécution de modèles ou la génération de tests

Interopérabilité de serviceProposition de ModelBusRedaction d’un RFP en cours

Page 191: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan

Que faut-il retenir ?

Page 192: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Résumé Le code n’est que le langage de la machine La construction et la maintenance d’applications nécessitent

d’autres langage (différents niveaux d’abstraction, différents intervenants)

L’ingénierie des modèles consiste à définir les techniques nécessaires à la définition et à la mise en production de ces différents langages

UML est un langage de modélisation qui entre intégralement dans l’ingénierie des modèles (c’est même le langage précurseur)

Il est important de savoir maitriser la diversité des langages de modélisation

Il est plus qu’important de rendre ces langages de modélisation produtifs

Page 193: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Recherche Les transformations de modèles Des opérations sur les modèles

Vérification de contraintes Exécution / Simulation de modèles Interopérabilité des opérations

Les aspects méthodologiques Le déploiement d’application dirigé par les modèles Le passage du code aux modèles (Reverse Engineering,

ADM) La génération automatique de code …

Page 194: Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles

Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Merci

N’hésitez pas à me contacter

Xavier Blanc [email protected] http://modfact.lip6.fr http://meta.lip6.fr