Ingnierie des Modles Cours de DEA UCAD Dakar

  • Slides: 194
Download presentation
Ingénierie des Modèles Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

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

Plan n Lundi : Un curieux besoin de modèles ¨ ¨ n Mardi :

Plan n Lundi : Un curieux besoin de modèles ¨ ¨ n Mardi : Des modèles productifs ¨ ¨ n Utilisation du langage J sur UML Jeudi : Modèles et méta-modèle ¨ ¨ n UML pour la génération de documentation UML pour la génération d’application Mercredi : Opération sur les modèles ¨ n Etude d’une application Java Etude d’une application WS Introduction à UML Introduction à l’ingénierie des modèles Architecture à 4 niveaux MOF, JMI Vendredi : l’approche MDA ¨ ¨ ¨ PIM, PSM, Code Modèle de transformation de modèles Interopérabilité 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 Java Etude d’une application WS Introduction

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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 1 Etude d’une application Java Cours de DEA UCAD – Dakar – Juillet

Cas 1 Etude d’une application Java Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 1 Objectif n Vous devez fournir un document expliquant l’application afin qu’une autre

Cas 1 Objectif n Vous devez fournir un document expliquant l’application afin qu’une autre équipe puisse faire évoluer cette application en y ajoutant une nouvelle fonctionnalité! Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 1 Scénario d’utilisation Cours de DEA UCAD – Dakar – Juillet 2004 X.

Cas 1 Scénario d’utilisation Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 1 Vision Schématique Abstraite IHM BD Personne Cours de DEA UCAD – Dakar

Cas 1 Vision Schématique Abstraite IHM BD Personne Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 1 Classes de l’application Repertoire n Personne n Adresse n UIRepertoire n UIPersonne

Cas 1 Classes de l’application Repertoire n Personne n Adresse n UIRepertoire n UIPersonne n UIAction. Listener n My. Assistant n Cours de DEA UCAD – Dakar – Juillet 2004 ? X. Blanc – Université Paris 6

Cas 1 Vision Schématique Abstraite IHM UIPersonne UIRepertoire UIAction. Listener Cours de DEA UCAD

Cas 1 Vision Schématique Abstraite IHM UIPersonne UIRepertoire UIAction. Listener Cours de DEA UCAD – Dakar – Juillet 2004 BD Personne Adresses Repertoire X. Blanc – Université Paris 6

Cas 1 Méthode Main public static void main(String[] args) { UIRepertoire ihm = new

Cas 1 Méthode Main public static void main(String[] args) { UIRepertoire ihm = new UIRepertoire(); } public UIRepertoire() { super("Mon Repertoire"); menu. Listener = new UIMenu. Action. Listener(this); Window. Listener l = new Window. Adapter() { public void window. Closing(Window. Event e) { System. exit(0); } public void window. Closed(Window. Event e) { System. exit(0); } }; add. Window. Listener(l); init(); } Cours de DEA UCAD – Dakar – Juillet 2004 ? X. Blanc – Université Paris 6

Cas 1 Vision Schématique Abstraite IHM UIPersonne BD Personne UIRepertoire Adresses Repertoire UIAction. Listener

Cas 1 Vision Schématique Abstraite IHM UIPersonne BD Personne UIRepertoire Adresses Repertoire UIAction. Listener My. Assistant Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 2 Etude d’une application WS n Cette application converti un fichier excel CSV

Cas 2 Etude d’une application WS n Cette application converti un fichier excel CSV en un fichier XML Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 2 Objectif n Vous devez décrire précisement mais simplement l’architecture de cette application

Cas 2 Objectif n Vous devez décrire précisement mais simplement l’architecture de cette application Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 2 Feuille WSDL Cours de DEA UCAD – Dakar – Juillet 2004 X.

Cas 2 Feuille WSDL Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas 2 Utilisation de Spy n Demo Cours de DEA UCAD – Dakar –

Cas 2 Utilisation de Spy n Demo Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas Synthèse Le code n’est pas un bon média de capitalisation n L’abstraction nécessite

Cas Synthèse Le code n’est pas un bon média de capitalisation n L’abstraction nécessite n ¨ Une bonne connaissance technique ¨ Un format de représentation commun => Modéliser Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Des Méthodes de modélisation n L’apparition du paradigme objet à permis la naissance

UML Des Méthodes de modélisation n L’apparition du paradigme objet à permis la naissance de plusieurs méthodes de modélisation ¨ OMT, OOSE, Booch, Fusion, … Chacune de ces méthodes fournie une notation graphique et des règles pour élaborer les modèles n Certaines méthodes sont outillées n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

UML Trop de Méthodes n n n 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é Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Historique Définition en cours par une commission de révision Soumission à l’OMG UML

UML Historique Définition en cours par une commission de révision Soumission à l’OMG UML 2. 0 UML 1. x 1999 -2002 UML 1. 2 Standardisation par l’OMG Soumission à l’OMG OOPSLA’ 95 UML 1. 0 Janvier 1997 UML 0. 9 Juin 1996 Méthode unifiée 0. 8 Booch’ 93 Autres méthodes Novembre 1997 Septembre 1997 UML 1. 1 Soumission à l’OMG Version bêta OOPSLA’ 96 Juin 1998 Booch’ 91 Cours de DEA UCAD – Dakar – Juillet 2004 Octobre 1995 OMT-2 OMT-1 OOSE Partenaires X. Blanc – Université Paris 6

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

UML Aujourd’hui n n UML est le langage de modélisation orienté objet le plus connu et le plus utilisé au monde UML s’applique à plusieurs domaines ¨ n UML n’est pas une méthode ¨ n n RUP Peut d’utilisateurs connaissent le standard, ils ont une vision outillée d’UML (Vision Utilisateur) ¨ n OO, RT, Deployment, Requirement, … 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Diagramme de Classes n n Un diagramme de classes est un graphe de

UML Diagramme de Classes n n 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Classes n n Une classe représente la structure commune d’un ensemble d’objets. Une

UML Classes n n 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). n Le nom de la classe doit commencer par un caractère alphabétique et ne pas contenir le caractère ‘: : ’ Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Classes Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

UML Attributs n n n Une classe peut contenir des attributs La syntaxe d’un

UML Attributs n n n Une classe peut contenir des attributs La syntaxe d’un attribut est : visibilité nom : type La visibilité est: ‘+’ pour public ¨ ‘#’ pour protected ¨ ‘-’ pour private ¨ n UML définit son propre ensemble de types ¨ n n 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 ‘/’ Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Attributs Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

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

UML Opérations Une opération est un service qu’une instance de la classe peut exécuter n La syntaxe d’une opération est: visibility name(parameter): return n La syntaxe des paramètres est: kind name : type n Le kind peut être: n ¨ in, out, inout Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Opérations Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

UML Héritage n n L’héritage est une relation entre un élément plus général et

UML Héritage n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Associations n n n Les associations binaires connectent deux éléments entre eux Une

UML Associations n n n 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: is. Navigable, is. Changeable Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Associations Un cours est suivi par plusieurs étudiants (0 ou plusieurs). Cours de

UML Associations Un cours est suivi par plusieurs étudiants (0 ou plusieurs). Cours de DEA UCAD – Dakar – Juillet 2004 Un étudiant suit des cours (0 ou plusieurs). A partir d’un étudiants, il est possible d’identifier les cours suivis (navigable). X. Blanc – Université Paris 6

UML Associations Composition Aggrégation Cours de DEA UCAD – Dakar – Juillet 2004 X.

UML Associations Composition Aggrégation Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

UML Associations Les associations N-aire connectent plusieurs éléments entre eux. n Les associations N-aire sont très peu utilisées. n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Classes-Associations n n n Une classe-association est une association qui est aussi une

UML Classes-Associations n n n 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 classesassociations. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Interfaces n n Une interface est la spécification externe (en terme d’opérations) d’une

UML Interfaces n n 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Interfaces Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

UML Contraintes et Notes Il est possible de contraindre ou d’annoter n’importe quel élément

UML Contraintes et Notes Il est possible de contraindre ou d’annoter n’importe quel élément du modèle n Les contraintes et les notes sont bien souvent écrites en langage naturel n Le langage OCL est cependant préconiser pour décrire des contraintes n ¨ self. age<60 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Contraintes et Notes Cours de DEA UCAD – Dakar – Juillet 2004 X.

UML Contraintes et Notes Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Packages Un package permet de grouper des éléments n Un package sert d’espace

UML Packages Un package permet de grouper des éléments n Un package sert d’espace de désignation n Un package peut inclure d’autres package n Un package peut importer d’autres package n L’héritage entre package est possible n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML Packages Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

UML Diagramme de Classe - Fin n Les diagrammes de classes sont les diagrammes

UML Diagramme de Classe - Fin n 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) n Les diagrammes de classes peuvent être de différents niveaux d’abstraction Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele A vous de jouer n n Définir le diagramme de classe d’un

Ing. Modele A vous de jouer n n Définir le diagramme de classe d’un tournoi de foot (type mondial) Définir le diagramme de classe de l’application My. Assitant Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele Reverse Engineering Le reverse engineering consiste à créer automatiquement un diagramme de

Ing. Modele Reverse Engineering Le reverse engineering consiste à créer automatiquement un diagramme de classe à partir de n’importe quelle application n Nous avons réalisé un reverse engineering sur l’application My. Assistant n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele Reverse de My. Assistant Cours de DEA UCAD – Dakar – Juillet

Ing. Modele Reverse de My. Assistant Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele A vous de jouer n Comment marche un reverse engineering? Cours de

Ing. Modele A vous de jouer n Comment marche un reverse engineering? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele A vous de jouer n Pourquoi n’y a-t-il pas de lien entre

Ing. Modele A vous de jouer n Pourquoi n’y a-t-il pas de lien entre répertoire et personne? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’implémentation vs diagramme conceptuel Ing. Modele Le diagramme obtenu après reverse engineering est

Diagramme d’implémentation vs diagramme conceptuel Ing. Modele Le diagramme obtenu après reverse engineering est une copie graphique du code : c’est un diagramme d’implémentation n Le diagramme réalisé en analysant l’application est un diagramme conceptuel (ex: le diagramme de My. Assistant réalisé précédemment) n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele A vous de jouer n n Est-il possible de passer d’un diagramme

Ing. Modele A vous de jouer n n Est-il possible de passer d’un diagramme conceptuel à un diagramme d’implémentation? Et l’inverse ? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Ing. Modele Comment Modéliser ? n n The choice of what models to create

Ing. Modele Comment Modéliser ? n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan Nécessité de modéliser n Place de UML n Modèles vs code n Nécessité

Bilan Nécessité de modéliser n Place de UML n Modèles vs code n Nécessité de l’ingénierie de la modélisation n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des modèles productifs UML pour construire L’atelier Objecteering Cours de DEA UCAD – Dakar

Des modèles productifs UML pour construire L’atelier Objecteering 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)

L’Electricien et l’Informaticien Un problème, des besoins Un composant virtuel (des entrées des sorties) Des portes AND, OR, NOR, … UML Un schéma électrique Le composant électrique Cours de DEA UCAD – Dakar – Juillet 2004 Le programme informatique X. Blanc – Université Paris 6

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

Des Modèles plutôt que du Code n n 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é Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Un problème - Un diagramme n Diagramme de classes / Class Diagram ¨ n n Diagramme d’objet / Object Diagramme de cas d’utilisation / Use Case Diagram ¨ n n n Cas d’utilisation, Acteur, . . Diagramme de séquence / Sequence Diagram ¨ n Classe, Opération, Attribut, Association, … UML 1. x Instance, message, relation Diagramme de collaboration / Collaboration Diagramme d’état / Statechart Diagramme d’activité / Activity Diagramme de composant / Component Diagramme de déploiement / Deployment Diagram Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Diagramme de Cas d’Utilisation n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Acteurs Un acteur représente un utilisateur externe du système n Un acteur est en

Acteurs Un acteur représente un utilisateur externe du système n Un acteur est en relation avec un ou plusieurs cas d’utilisation n Il est possible de définir des relations d’héritage entre Acteurs n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas d’Utilisation n n Un cas d’utilisation représente une fonctionnalité du système Il est

Cas d’Utilisation n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Cas d’Utilisation Cours de DEA UCAD – Dakar – Juillet 2004 X.

Diagramme de Cas d’Utilisation Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Cas d’Utilisation -Fin n Les diagrammes de cas d’utilisation sont souvent employés ¨ Ils

Cas d’Utilisation -Fin n 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 … n La difficulté consiste à passer des cas d’utilisation aux classes Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer n n Définir le diagramme de cas d’utilisation de yahoo!

A vous de jouer n n Définir le diagramme de cas d’utilisation de yahoo! Définir le diagramme de cas d’utilisation de Air Senegal Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Séquence n n n Un diagramme de séquence représente une interaction entre

Diagramme de Séquence n n n 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Instances n Un diagramme de séquence met en œuvre des instances ¨ n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Messages n n n Creation: Une instance peut créer une autre instance grâce à

Messages n n n 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) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Séquence Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

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

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

Diagramme de Séquence - Fin n 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 n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer n Définir le diagramme de séquence d’un examen scolaire Cours

A vous de jouer n Définir le diagramme de séquence d’un examen scolaire Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’Objets n Un diagramme d’objet représente la vue statique d’un ensemble d’instance de

Diagramme d’Objets n Un diagramme d’objet représente la vue statique d’un ensemble d’instance de classes Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de Collaboration n n Un diagramme de collaboration représente la vue statique et

Diagramme de Collaboration n n 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!) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Diagramme d’Etat n Un diagramme d’état représente la vue dynamique d’un ensemble d’éléments sous forme d’état Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme d’Activité n Un diagramme d’activité représente la vue dynamique d’un ensemble d’éléments sous

Diagramme d’Activité n Un diagramme d’activité représente la vue dynamique d’un ensemble d’éléments sous de flux d’exécution Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Diagramme de composant n Un diagramme de composant représente les composants logiciels d’un système Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Diagramme de déploiement n Un diagramme de déploiement représente la façon dont déployer les

Diagramme de déploiement n Un diagramme de déploiement représente la façon dont déployer les différentes éléments d’un système Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Le Besoin d’Organisation n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La méthode IL (pédagogique) 1. 2. Cahier des charges Analyse (Quoi ? ) Identifier

La méthode IL (pédagogique) 1. 2. Cahier des charges 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 ¨ 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. n L’inscription

Exemple: Mini Bibliothèque Le système doit permettre aux abonnés d’emprunter des livres. n L’inscription est annuelle. n Une personne non abonnée ne peut pas emprunter de livres. n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Use Case Diagram Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

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

Sequence Diagram Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

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

Class Diagram Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

Class Diagram 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

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 n Les classes de conception serviront à la génération du code n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objecteering UML Modeler n Atelier UML ¨ Tout les diagrammes UML 1. 4 n

Objecteering UML Modeler n Atelier UML ¨ Tout les diagrammes UML 1. 4 n Module de production ¨ Génération Java, C++, C# ¨ Génération de Documentation ¨ Génération SQL ¨ Génération IDL, EJB, ¨… Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modèle vs Diagramme Base contenant tous les éléments du modèle Cours de DEA UCAD

Modèle vs Diagramme Base contenant tous les éléments du modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Créer un nouveau projet Cours de DEA UCAD – Dakar – Juillet 2004 X.

Créer un nouveau projet 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

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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Module de Production Java. Module Cours de DEA UCAD – Dakar – Juillet 2004

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

Objecteering Java Configuration des module de production Utilisation du module Java Cours de DEA

Objecteering Java Configuration des module de production Utilisation du module Java 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 Cours de DEA

Opération sur les modèles Profil et Module Objecteering Le Langage J Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Outils Objecteering n UML Modeler ¨ Edition de modèle UML ¨ Utilisation de module

Outils Objecteering n UML Modeler ¨ Edition de modèle UML ¨ Utilisation de module Objecteering n UML Profil Builder ¨ Création de module Objecteering Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Codage des production Règles d'implémentation (langage J) Expert Informaticien Transformation de modèle - Profile

Codage des production Règles d'implémentation (langage J) Expert Informaticien Transformation de modèle - Profile UML Modélisation de l'implémentation Expert du domaine Modélisation du problème

Profile Builder n PAR LES MENUS : ¨ ProgrammesObjecteering UML Profile Builder Cours de

Profile Builder n PAR LES MENUS : ¨ ProgrammesObjecteering UML Profile Builder Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Création d’un projet de profil 1) cliquer dans l’icône « new » ou l’item

Création d’un projet de profil 1) cliquer dans l’icône « new » ou l’item « new » Du menu File 2) Renseigner le nom du projet 3) saisir sa localisation 3’) ou par navigation

Fenêtre Principale Barre de menus Navigateur Barre de raccourcis des menus Boîte de propriétés

Fenêtre Principale Barre de menus Navigateur Barre de raccourcis des menus Boîte de propriétés Console Barre de status Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Création d’un profil 3) cliquer sur le bouton « Créer un profil fils » 4) Donner le nom du nouveau profile (ex: Scan) 1) Expanser le profil « default » 2) Expanser le profil « external »

Référencement au concept UML n Le code J s’attache sur les concepts UML! 1)

Référencement au concept UML n Le code J s’attache sur les concepts UML! 1) Sélectionner le nouveau profil 2) Cliquer sur l'icône « Créer une référence de méta-classe » 3) Sélectionner « Class » dans la liste déroulante

Création d’un opération J (1) 1) Sélectionner la méta-classe 2) Cliquer sur l'icône «

Création d’un opération J (1) 1) Sélectionner la méta-classe 2) Cliquer sur l'icône « Ajouter une opération J » 3) Donner le nom de la nouvelle opération (ex: Afficher. Status)

Création d’un opération J (2) 1) Double-cliquer sur l ’opération 2) Modifier les caractéristiques

Création d’un opération J (2) 1) Double-cliquer sur l ’opération 2) Modifier les caractéristiques de l ’opération

Saisie d’une opération J (1) 1) Sélectionner l'opération 3) Double cliquer sur l'icône «

Saisie d’une opération J (1) 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 (2) Saisir le code Std. Out. write("La classe <", Name,

Saisie d’une opération J (2) Saisir le code Std. Out. write("La classe <", Name, "> a pour visibilité " , Visibility);

Création d’un module 1) Sélectionner le projet 2) Cliquer sur l'icône « Créer un

Création d’un module 1) Sélectionner le projet 2) Cliquer sur l'icône « Créer un module »

Caractéristiques d’un module 1) Saisir le nom 2) Saisir le libellé 3) Saisir la

Caractéristiques d’un module 1) Saisir le nom 2) Saisir le libellé 3) Saisir la version 4) Éventuellement un commentaire de la release 5) Éventuellement la compatibilité Avec une autre version Mon. Module Mon Premier Module

Lien avec les profils (1) 1) Sélectionner le module 2) Cliquer sur l ’icône

Lien avec les profils (1) 1) Sélectionner le module 2) Cliquer sur l ’icône « Référencer le profile UML » 3) Recher tous les profiles disponibles 4) sélectionner le(s) profile(s) et valider

Lien avec les profils (2) Cours de DEA UCAD – Dakar – Juillet 2004

Lien avec les profils (2) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Créer une commande 1) Sélectionner le module 2) Cliquer sur l'icône « Créer une

Créer une commande 1) Sélectionner le module 2) Cliquer sur l'icône « Créer une Commande » 3) Remplir les propriétés de la commande • Profile • Méthode J

Créer un projet un Test 1) cliquer sur le Menu « Test » puis

Créer un projet un Test 1) cliquer sur le Menu « Test » puis « Create a test project » 2) Entrer le nom du projet de test 3) Cliquer sur « OK »

Tester la commande 1) Sélectionner une classe puis faire « clic droit » 2)

Tester la commande 1) Sélectionner une classe puis faire « clic droit » 2) Vérifier le résultat dans la console

Pourquoi packager un module ? n OBJECTIF : PERMETTRE L’INSTALLATION DU MODULE SUR LES

Pourquoi packager un module ? n OBJECTIF : PERMETTRE L’INSTALLATION DU MODULE SUR LES BASES DU SITE ¨ AVOIR LE MODULE SOUS FORMAT FICHIER (. prof) POUR L’ECHANGER ¨ n 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, … ¨ Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Packager (1) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc –

Packager (1) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Packager (2) Lieu de stockage physique du module packagé Versions majeure et mineure du

Packager (2) Lieu de stockage physique du module packagé Versions majeure et mineure du module Code en mode read only XXXXXXX Release du module Ressources liées aux modules Manque le fichier de traduction des messages Cours de DEA UCAD – Dakar – Juillet 2004 Manque la documentation du module X. Blanc – Université Paris 6

Packager (3) Module packagé Répertoire des Ressources du module Un répertoire pour Chaque version

Packager (3) Module packagé Répertoire des Ressources du module Un répertoire pour Chaque version Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Livraison d’un module n Double clic sur le fichier. prof ¨ Résultat dans fenêtre

Livraison d’un module n Double clic sur le fichier. prof ¨ Résultat dans fenêtre DOS Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Selection d’un module 1) Lancer Objecteering 2) Menu « Tools » item « modules

Selection d’un module 1) Lancer Objecteering 2) Menu « Tools » item « modules » 3) Sélectionner le module 5) Valider Cours de DEA UCAD – Dakar – Juillet 2004 4) Ajouter X. Blanc – Université Paris 6

Le langage J n n LE LANGAGE J EST LE LANGAGE SUPPORT DE OBJECTEERING

Le langage J n n 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.

Les classes de J n n Classes « mères » (Object, Meta. Class, …)

Les classes de J n n Classes « mères » (Object, Meta. Class, …) Classes de base (int, float, boolean, String, enumerate) Classes entrée/sortie (stream, out. Stream, in. Stream) Classes des concepts UML (Class, Attribute, Operation, . . . )

Les classes « Mères » n La classe « Object » Object Toutes les

Les classes « Mères » n La classe « Object » Object Toutes les classes du langage J héritent de la classe « Object » ¨ Elle définit deux opérateurs : == (égalité) et != (différent) ¨ n La classe « 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 [ ], … ¨

Classes de Base « int » n n GÈRE LES ENTIERS. LES OPÉRATEURS :

Classes de Base « int » n n GÈRE LES ENTIERS. LES OPÉRATEURS : ¨ ¨ ¨ ¨ ¨ n < « 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 : ¨ ¨ float to. Float() conversion en « float » String to. String() conversion en « String »

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

Classes de Base « String » n GÈRE LES CHAÎNES DE CARACTÈRES. n LES OPÉRATEURS : ¨ ¨ ¨ n < <= > >= + « inférieur » « inférieur ou égal » « supérieur ou égal » « concaténation » LES MÉTHODES : int size() : renvoie la taille de la chaîne substitute (in String To. Substitute, in String New. Value) : remplace toutes les occurrences de « To. Substitute » par « New. Value » ¨ to. Upper() : conversion en majuscule ¨ to. Lower() : conversion en minuscule ¨ int find. First (in String Pattern, in int Start. Index) : renvoie la position de la première occurrence de « Pattern » à partir de « Start. Index » ou -1 si « Pattern » n’est pas trouvé ¨ ¨

Les Classes « entrée/sortie » (1) n n « stream » (stream, out. Stream,

Les Classes « entrée/sortie » (1) n n « stream » (stream, out. Stream, in. Stream) : utilisée pour gérer les entrée/sorties. trois instances prédéfinies de out. Stream pour les sorties standards : std. Out, std. Err, std. File. La Classe Stream n’offre pas de service La Classe Out. Stream n représente le flux de sortie n boolean open(in String File. Name) : ouvre le fichier « File. Name » en écriture n write (in basic_class p 1, in basic_class p 2, . . . ) : écrit dans le fichier la liste des valeurs passées en paramètres n close () : ferme le fichier n exist. File (in String File. Name, out boolean answer) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Les Classes « entrée/sortie » (2) La Classe In. Stream n représente le flux

Les Classes « entrée/sortie » (2) La Classe In. Stream n représente le flux d’entrée n boolean open(in String File. Name) : ouvre le fichier « File. Name » en lecture n read (in String buffer) : lit « buffer » dans le fichier n close () : ferme le fichier n exist. File (in String File. Name, out boolean answer) : teste l’existence du fichier Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Les Classes de concepts UML n J permet d’accéder à toutes les informations de

Les Classes de concepts UML n J permet d’accéder à toutes les informations de tout élément du modèle n Classe: ¨ Name, Visibility, … ¨ Part. Attribute, Part. Operation

Les opérations J n L’appel d’une opération se fait avec le symbole «. »

Les opérations J n L’appel d’une opération se fait avec le symbole «. » ¨ Ex: Std. Out. write n Possibilité de diffuser une opération sur un ensemble ¨ Ex: Par. Operation. <write() n Polymorphisme supporté 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.

Méthodes anonymes Concaténation de tous les attributs d'une classe dans une chaîne de caractères. Class: print. Attribute ( ) { String line; Part. Attribute // 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 » Std. Out. write("the ", Name, " class's attributes are ", line, NL); }

Les ensembles (1) n FACILITER LA NAVIGATION DANS UN MODÈLE ¨ les classes d’un

Les ensembles (1) n 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 ¨ … n NOTATION Les ensembles sont définis par la classe « class of the elements [ ] » , telle que Object[], String[], Class[], etc. n DÉCLARATION La déclaration suivante, permet d'obtenir un ensemble vide d'objets « Object » : Object[] E;

Les ensembles (2) n ORDRE DES ÉLÉMENTS Les ensembles sont ordonnés. L'ordre d'insertion des

Les ensembles (2) n ORDRE 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 « Part. Operation » dans l'ordre où celles-ci apparaissent dans le modèle, de même que pour les paramètres d'une méthode (IOParameter), … ¨ ¨ n AFFECTATION 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. n ENSEMBLE VIDE ¨ Le service « not. Void » permet de tester si un ensemble est vide ou pas. If (not. Void (my. Set)) else // ensemble vide // ensemble non vide

Les ensembles (3) n ACCÈS AU IÈME ÉLÉMENT ¨ J n’autorise pas les instructions

Les ensembles (3) n ACCÈ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: get. Item. Set (in. Object[] p. Set, in int p. Index, out Object p. Elt) : Renvoie dans l’objet « p. Elt » le « p. Index » ième élément de l’ensemble « p. Set » . ü Le 1 er élément a l’index 0. ü Les types de « p. Set » et « p. Elt » peuvent être plus précis (String[] and String par exemple) ¨ Object: set. Item. Set (inout Object[] p. Set, in int p. Index, in Object p. Elt) : Remplace le « p. Index » ième élément de l’ensemble « p. Set » par l’objet « p. Elt » .

Les ensembles (4) Ø « size » : renvoie le nombre d’éléments de l’ensemble

Les ensembles (4) Ø « size » : renvoie le nombre d’éléments de l’ensemble Exemple : Part. Attribute. size(); // ou Part. Attribute. length(); Ø « add. Element » add. Element : ajoute un élément dans l’ensemble Ø « add » add : concatène deux ensembles Ø « retract » retract : retire le dernier élément d’un ensemble Exemple : Part. Operation. <select(Visibility == Public) { E. add. Element (this); } Exemple : E 1. add(E 2); // les éléments de E 2 sont ajoutés à la fin de E 1 Exemple : E 1. retract(); // le dernier élément est enlevé de l’ensemble

 « select » sur les ensembles n « select » select Faire une

« select » sur les ensembles n « select » select 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 : Part. Operation. <select(Visibility == Public) { display (); }//1: méthode Anonyme Part. Operation. <select(Visibility == Public). <display (); //2: diffusion de display() Operation [] E = Part. Operation. <select(Visibility == Public); E. <display(); //3: variable intermédiaire

 « while » sur les ensembles n « while » while : arrêter

« while » sur les ensembles n « while » while : 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 : Part. Attribute. <while(Name != "Size") { Std. Out. write(Name); } boolean found; Part. Attribute. <while(found) { found = Name == "Size"; if (not(found) ) { Std. Out. write(Name); } }

Structure de contrôle (1) n « If » If if (condition 1) { //

Structure de contrôle (1) n « If » If if (condition 1) { // instructions } if (condition 1) {// instructions } else { // instructions } if (condition 1) { // instructions } else if (condition 2) { // instructions } else { // instructions }

Service « eval » n PERMET D'ÉVALUER DYNAMIQUEMENT UNE CHAÎNE DE CARACTÈRES, EN CONSIDÉRANT

Service « eval » n 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 ("i 1 = 15; s 1 = "hello"; b 1=false"); } Object: Recover() { String read_buffer; out. Stream Fic; int i 1 = 15; String s 1 = "hello"; boolean b 1 = false; Fic. open ("Example"); Fic. read (read_buffer); eval (read_buffer); Std. Out. write ("i 1=", i 1, NL, "s 1=", s 1, NL "b 1=", b 1, NL); }

A vous de jouer n Faire un mini générateur de code (un fichier par

A vous de jouer n Faire un mini générateur de code (un fichier par classe avec « public class » Name? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan n n J permet de créer des opérations sur les Modèles UML J

Bilan n n 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 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 n Ex :

Profile UML Un profile UML permet d’étendre la sémantique de UML n Ex : Table RDB plutôt que classe UML n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Transformation vers Profile Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

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

Profile UML n LES STÉRÉOTYPES : Ajout de nouveaux éléments de modélisation dans le

Profile UML n 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) ¨ n LES TAGGED VALUES : ¨ ¨ ¨ n 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) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Exemple Profile n SQL ¨ Stereotype n Table, Foreign. Key, Primay. Key ¨ Contrainte

Exemple Profile n SQL ¨ Stereotype n Table, Foreign. Key, Primay. Key ¨ Contrainte n Une table ne peut avoir deux Primary. Key, … n EJB ¨ Stereotype n EJBBean, EJBHome. Interface, … ¨ Tagged-Value n Type de l’EJBBean (entity, session) ¨ Contrainte n Un EJBBean doit avoir une EJBHome. Interface 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,

Objecteering et les Profiles Il est possible de créer des stereoypes, des tagged value, des contraintes dans un profil Objecteering n 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) n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

A vous de jouer n Construisons un profil pour modéliser les LAN? Cours de

A vous de jouer n Construisons un profil pour modéliser les LAN? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Modèles et métamodèles MOF JMI & XMI Cours de DEA UCAD – Dakar –

Modèles et métamodèles MOF JMI & XMI Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

UML et Profil n n n UML permet de modéliser les applications Orientées Objet

UML et Profil n n n 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é Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Objectif n Il serait intéressant de disposer d’autres langages spécifiques à certains domaines tout

Objectif n 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 ¨… n Question ouverte : est-ce que les profils sont si contraingnants ? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles n n Seriez-vous capable de construire le diagramme de classes

L’approche modèle de modèles n n 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 ? 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

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 n Un méta-modèle est un formalisme (langage) permettant d’élaborer des modèles n ¨ Méta-modèle = grammaire ¨ Modèle = phrase Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (1) Cours de DEA UCAD – Dakar – Juillet 2004

Le méta-modèle UML Objecteering (1) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (4) Cours de DEA UCAD – Dakar – Juillet 2004

Le méta-modèle UML Objecteering (4) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (2) Cours de DEA UCAD – Dakar – Juillet 2004

Le méta-modèle UML Objecteering (2) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (3) Cours de DEA UCAD – Dakar – Juillet 2004

Le méta-modèle UML Objecteering (3) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle UML Objecteering (5) Cours de DEA UCAD – Dakar – Juillet 2004

Le méta-modèle UML Objecteering (5) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet

Le méta-modèle standard UML 1. 4 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

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

L’approche modèle de modèles n Seriez-vous capable de construire le diagramme de classes expliquant

L’approche modèle de modèles n Seriez-vous capable de construire le diagramme de classes expliquant les concepts des métamodèles? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Méta-modèles et méta-modèle Un méta-modèle est une sorte de diagramme de classes qui définit

Méta-modèles et méta-modèle Un méta-modèle est une sorte de diagramme de classes qui définit la structure d’un ensemble de méta-modèles n Un méta-modèle est un formalisme (langage) permettant d’élaborer des formalismes (langage) n ¨ Méta-modèle = grammaire de grammaire ¨ Méta-Modèle = grammaire 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étamodèle défini par

Le MOF (Meta Object Facility) Le standard MOF est le seul méta-métamodèle défini par l’OMG n Il définit les concepts nécessaires et suffisants pour élaborer des méta-modèles n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc

Le MOF Méta-meta-modèle Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche modèle de modèles n Quel est le méta du MOF? Cours de DEA

L’approche modèle de modèles n Quel est le méta du MOF? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Architecture à 4 Niveaux Méta-modèle MOF UML Modèle UML SPEM Modèle SPEM CWM Modèle

Architecture à 4 Niveaux Méta-modèle MOF UML Modèle UML SPEM Modèle SPEM CWM Modèle CWM Monde Réel Cours de DEA UCAD – Dakar – Juillet 2004 … méta-modèles X. Blanc – Université Paris 6

L’approche modèle de modèles n Faire le méta-modèle pour les LAN? Cours de DEA

L’approche modèle de modèles n Faire le méta-modèle pour les LAN? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Statuts des Modèles n n n Un modèle est une entité abstraite Un modèle

Statuts des Modèles n n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Représentation concrète de modèles n Textuelle ¨ Représenter un modèle sous forme de texte

Représentation concrète de modèles n Textuelle ¨ Représenter un modèle sous forme de texte n Objet ¨ Représenter un modèle sous forme d’objets n Graphique ¨ Représenter un modèle sous forme de fichier SVG (réduction à la représentation textuelle) 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

Représentation des modèles en XML Le standard XMI (XML Metadata Interchange) permet le passage des modèles aux documents XML n Il définit des règles permettant de construire des schéma XML à partir de méta-modèle n Ainsi il est possible d’encoder un modèle dans un document XML n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

La passerelle OMG : XMI Cours de DEA UCAD – Dakar – Juillet 2004

La passerelle OMG : XMI Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique Cours de DEA UCAD – Dakar – Juillet 2004 X.

XMI dans la pratique 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 n Toute

XMI dans la pratique Tout package va donner la définition d’un élément n Toute classe va donner la définition d’un élément n ¨ n Toute association va donner la définition d’un élément ¨ n Contenu dans un package Contenu dans la classe … Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique Cours de DEA UCAD – Dakar – Juillet 2004 X.

XMI dans la pratique Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

XMI dans la pratique Cours de DEA UCAD – Dakar – Juillet 2004 X.

XMI dans la pratique 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

XMI pour UML XMI a été utilisé sur UML pour construire le Schéma XML des modèles UML n Ainsi il est possible d’encoder un modèle UML dans un document XML n n Les règles XMI peuvent quasiment s’appliquer sur les diagramme de classe UML 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

Représentation des modèles en Objets Le standard JMI permet le passage des modèles aux objets Java n Il définit des règles permettant de construire des interfaces Java à partir de méta-modèle n Ainsi il est possible d’encoder un modèle sous forme d’objet Java n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

JMI Méta-modèles Cours de DEA UCAD – Dakar – Juillet 2004 Interface Java Objets

JMI Méta-modèles Cours de DEA UCAD – Dakar – Juillet 2004 Interface Java Objets Java X. Blanc – Université Paris 6

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

JMI dans la pratique Tout package va donner la définition d’un package n Toute classe va donner la définition d’une interface n ¨ n Toute association va donner la définition d’une interface ¨ n Contenu dans un package Contenu dans la classe … Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Tester les prototypes n http: //modfact. lip 6. fr Cours de DEA UCAD –

Tester les prototypes n http: //modfact. lip 6. fr Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

L’approche MDA PIM, PSM, Code Transformation de modèles Interopérabilité de modèles Cours de DEA

L’approche MDA PIM, PSM, Code Transformation de modèles Interopérabilité de modèles Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Problème ? RPC, DCE, CORBA, DCOM, EJB, . Net, Web Service, … n Evolution

Problème ? RPC, DCE, CORBA, DCOM, EJB, . Net, Web Service, … n Evolution sans fin des middleware. Les entreprises subissent ces changements en terme de coût mais bénéficient de nouveaux avantages. n « Over the past decade or more, companies have endured a succession of middleware platforms. » Jon Siegel, OMG Director of Technology Transfer Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 n

Pourquoi c’est un problème ? Quelques soient le middleware, la méthode et les techniques

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. n L’évolution est alors problématique car il faut distinguer le code métier (à préserver) du code technique (à jeter). n 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. n Il faut

Une Solution La solution n’est pas nouvelle : séparation des préoccupations. n Il faut séparer la partie métier de la partie technique. n Il faut donc s’abstraire de la technique (et du code) n Il faut donc modéliser et surtout faire que le modèle soit productif (!= contemplatif) n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Pourquoi cette solution est bonne n n 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 ¨ n Les techniques de génération de commencent à être productives ¨ n la réutilisation du code ne marche pas en terme de coût parallèle avec C et assembleur Les techniques de modélisation sont industrielles (UML) Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

L’approche MDA n n n 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

PIM vers PSM Business requirements Standards supporting MDA Analysis & design standardized PIM Modification

PIM vers PSM Business requirements Standards supporting MDA Analysis & design standardized PIM Modification for each required platform PSM PSM . . . Implementation Cours de DEA UCAD – Dakar – Juillet 2004 standardized mapping to PSMs PSM notation Standards for platforms standardized mapping to implementation codes Mapping to implementation Implementation Standards for application areas ・・・ X. Blanc – Université Paris 6

Concepts n n PIM (Plateform Independent Model) : Un PIM est un modèle métier

Concepts n n PIM (Plateform Independent Model) : Un PIM est un modèle métier entièrement indépendant d’une plateforme 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Les standards n n n 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. Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Des Challenges Relations Modèles, Méta-modèles, Métaméta-modèle, … n Transformations de modèles n Définition de

Des Challenges Relations Modèles, Méta-modèles, Métaméta-modèle, … n Transformations de modèles n Définition de Plates-formes standards n Méthode MDA (Cycle en Y ? ) n Stratégie n Evangélisation n ! Plan d’actions orienté utilisateur 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

Un chantier commence Le MDA est un chantier qui commence. Il devrait durer environ 10 ans (ou plus) n A l’heure actuelle n ¨ UML 2. 0 ¨ MOF 2. 0 ¨ XMI 2. 0 ¨ MOF 2. 0 Q/V/T Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

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

Transformation de modèles MOF 2. 0 Q/V/T ¨ Méta-modèle pour la transformation de modèles

Transformation de modèles MOF 2. 0 Q/V/T ¨ Méta-modèle pour la transformation de modèles ¨ Appel de proposition de standard ¨ Huit propositions initiales Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Transformation de modèles Méta-modèle d’entrée (ex : UML) Un modèle (ex : Mon modèle

Transformation de modèles Méta-modèle d’entrée (ex : UML) Un modèle (ex : Mon modèle UML) Méta-modèle MOF 2. 0 Q/V/T Un modèle de transformation (ex : UML 2 Java) Cours de DEA UCAD – Dakar – Juillet 2004 Exécution Méta-modèle de sortie (ex : Java) Un modèle (ex : Mon modèle Java) X. Blanc – Université Paris 6

Intéropérabilité n Considérer les services de modélisation ¨ Une transformation est un service de

Intéropérabilité n Considérer les services de modélisation ¨ Une 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 service ¨ Proposition de Model. Bus ¨ Redaction d’un RFP en cours Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Bilan Que faut-il retenir ? Cours de DEA UCAD – Dakar – Juillet 2004

Bilan Que faut-il retenir ? Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Résumé n n n Le code n’est que le langage de la machine La

Résumé n n n 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 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

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

Recherche n n 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 ¨ n n n 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 … Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6

Merci n N’hésitez pas à me contacter Xavier Blanc n Xavier. Blanc@lip 6. fr

Merci n N’hésitez pas à me contacter Xavier Blanc n Xavier. Blanc@lip 6. fr n http: //modfact. lip 6. fr n http: //meta. lip 6. fr n Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6