La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Ingénierie des Modèles."— Transcription de la présentation:

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

2 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Plan Lundi : Un curieux besoin de modèles Etude dune application Java Etude dune application WS Introduction à UML Introduction à lingénierie des modèles Mardi : Des modèles productifs UML pour la génération de documentation UML pour la génération dapplication 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 : lapproche MDA PIM, PSM, Code Modèle de transformation de modèles Interopérabilité des modèles

3 Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Un curieux besoin de modèles Etude dune application Java Etude dune application WS Introduction à UML Introduction à lingénierie des modèles

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

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

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

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

8 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Classes de lapplication Repertoire Personne Adresse UIRepertoire UIPersonne UIActionListener MyAssistant ? Cas 1

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

10 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

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

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

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

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

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

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

17 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Des Méthodes de modélisation Lapparition 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 Certaines méthodes sont outillées UML

18 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

19 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Historique Autres méthodesBooch91OMT-1OOSEPartenaires Booch93OMT-2 Méthode unifiée 0.8 UML 0.9 UML 1.0 UML 1.1 UML 1.2 UML 1.x UML Juin 1998 Novembre 1997 Septembre 1997 Janvier 1997 Juin 1996 Octobre 1995 Définition en cours par une commission de révision Soumission à lOMG Standardisation par lOMG Soumission à lOMG Version bêta OOPSLA96 OOPSLA95 UML

20 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Aujourdhui UML est le langage de modélisation orienté objet le plus connu et le plus utilisé au monde UML sapplique à plusieurs domaines OO, RT, Deployment, Requirement, … UML nest pas une méthode RUP Peut dutilisateurs connaissent le standard, ils ont une vision outillée dUML (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 saccroît IBM, Sun, Borland, Microsoft UML

21 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 dun système. UML

22 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Classes Une classe représente la structure commune dun ensemble dobjets. 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

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

24 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Attributs Une classe peut contenir des attributs La syntaxe dun 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

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

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

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

28 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Héritage Lhéritage est une relation entre un élément plus général et un élément plus spécifique. Lhéritage existe entre des classes, des packages, … Lhéritage multiple est possible en UML UML

29 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 lentité connectée) Une multiplicity (0, 1, *, 1..*, …) Un genre daggregation (composite, aggregation, none) De plusieurs propriétés: isNavigable, isChangeable UML

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

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

32 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. UML

33 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. UML

34 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Interfaces Une interface est la spécification externe (en terme dopérations) dune classe. Une interface peut donc contenir des opérations Une classe réalise une interface si elle est capable dexécuter toutes les opérations de linterface On utilisera une relation de dépendance pour exprimer le fait quune classe est cliente dune interface. UML

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

36 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Contraintes et Notes Il est possible de contraindre ou dannoter nimporte 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 contraintes self.age<60 UML

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

38 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Packages Un package permet de grouper des éléments Un package sert despace de désignation Un package peut inclure dautres package Un package peut importer dautres package Lhéritage entre package est possible UML

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

40 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 dabstraction UML

41 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 A vous de jouer Définir le diagramme de classe dun tournoi de foot (type mondial) Définir le diagramme de classe de lapplication MyAssitant Ing. Modele

42 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 nimporte quelle application Nous avons réalisé un reverse engineering sur lapplication MyAssistant Ing. Modele

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

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

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

46 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Diagramme dimplémentation vs diagramme conceptuel Le diagramme obtenu après reverse engineering est une copie graphique du code : cest un diagramme dimplémentation Le diagramme réalisé en analysant lapplication est un diagramme conceptuel (ex: le diagramme de MyAssistant réalisé précédemment) Ing. Modele

47 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 A vous de jouer Est-il possible de passer dun diagramme conceptuel à un diagramme dimplémentation? Et linverse ? Ing. Modele

48 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

49 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 lingénierie de la modélisation

50 Cours de DEA UCAD – Dakar – Juillet 2004X. Blanc – Université Paris 6 Des modèles productifs UML pour construire Latelier Objecteering

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

52 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é

53 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 dobjet / Object Diagram Diagramme de cas dutilisation / Use Case Diagram Cas dutilisation, Acteur,.. Diagramme de séquence / Sequence Diagram Instance, message, relation Diagramme de collaboration / Collaboration Diagram Diagramme détat / Statechart Diagram Diagramme dactivité / Activity Diagram Diagramme de composant / Component Diagram Diagramme de déploiement / Deployment Diagram UML 1.x

54 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Diagramme de Cas dUtilisation Un diagramme de cas dutilisation décrit des acteurs et leurs relations avec des cas dutilisation Les diagrammes de cas dutilisation décrivent les fonctionnalités dun système

55 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 dutilisation Il est possible de définir des relations dhéritage entre Acteurs

56 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Cas dUtilisation Un cas dutilisation représente une fonctionnalité du système Il est possible de définir des relations de dépendance entre cas dutilisation Il est possible de définir des relations dinclusion entre cas dutilisation Il est possible de définir des relations dhéritage entre cas dutilisation

57 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Diagramme de Cas dUtilisation

58 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Cas dUtilisation -Fin Les diagrammes de cas dutilisation 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 dutilisation aux classes

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

60 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.

61 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 dacteur 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 laxe vertical du diagramme Graphiquement lactivité dune instance se voit grâce à un rectangle sur laxe du temps

62 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 lexécution dune 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 lenvoi de message (if then else)

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

64 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 dun système Ils permettent de faire le lien entre les diagrammes de cas dutilisation et les diagrammes de classes La sémantique de ces diagrammes est encore un peu flou Les techniques de génération de code nexploitent pas encore très pleinement ces diagrammes

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

66 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Diagramme dObjets Un diagramme dobjet représente la vue statique dun ensemble dinstance de classes

67 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 dun ensemble délément Une collaboration définit des rôles (et non pas des classes!)

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

69 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Diagramme dActivité Un diagramme dactivité représente la vue dynamique dun ensemble déléments sous de flux dexécution

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

71 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 dun système

72 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Le Besoin dOrganisation Un modèle UML représente un système et son environnement Les diagrammes UML offrent différentes vues dun même modèle Certains diagrammes sont complémentaires, dautres non Certains diagrammes sont très abstrait, dautres non Il est nécessaire de définir une organisation entre les diagrammes (Une méthode) Objectif: Gagner du temps

73 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

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

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

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

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

78 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 lanalyse. Lidée est que lon doit facilement tracer les liens entre classes danalyse et classes de conception Les classes de conception serviront à la génération du code

79 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 Documentation Génération SQL Génération IDL, EJB, …

80 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

81 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Créer un nouveau projet

82 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 dun diagramme. Console.

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

84 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Objecteering Java Configuration des module de production Utilisation du module Java

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

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

87 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Modélisation de l'implémentation Expert du domaineModélisation du problème Expert Informaticien Règles d'implémentation (langage J) Transformation de modèle - Profile UML Codage des production

88 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Profile Builder PAR LES MENUS : Programmes\Objecteering\Objecteering UML Profile Builder

89 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 1) cliquer dans licône « new » ou litem « new » Du menu File 3) saisir sa localisation 2) Renseigner le nom du projet 3) ou par navigation Création dun projet de profil

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

91 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 1) Expanser le profil « default » 3) cliquer sur le bouton « Créer un profil fils » 4) Donner le nom du nouveau profile (ex: Scan) Création dun profil 2) Expanser le profil « external »

92 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 sattache sur les concepts UML!

93 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 1) Sélectionner la méta-classe 3) Donner le nom de la nouvelle opération (ex: AfficherStatus) 2) Cliquer sur l'icône « Ajouter une opération J » Création dun opération J (1)

94 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 dun opération J (2)

95 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 longlet « items » de la boite de propriétés Saisie dune opération J (1)

96 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Saisir le code Saisie dune opération J (2) StdOut.write("La classe a pour visibilité ", Visibility);

97 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 dun module

98 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 1) Saisir le nom2) Saisir le libellé3) Saisir la version4) Éventuellement un commentaire de la release 5) Éventuellement la compatibilité Avec une autre version Caractéristiques dun module MonModule Mon Premier Module

99 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 1) Sélectionner le module2) 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)

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

101 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és de la commande Profile Méthode J 1) Sélectionner le module Créer une commande

102 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

103 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

104 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 OBJECTIF : PERMETTRE LINSTALLATION DU MODULE SUR LES BASES DU SITE AVOIR LE MODULE SOUS FORMAT FICHIER (.prof) POUR LECHANGER LE PACKAGING DUN 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 ?

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

106 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Lieu de stockage physique du module packagé Versions majeure et mineure 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)

107 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 pour Chaque version

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

109 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 dun module

110 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.

111 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

112 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Object La classe « Object » Toutes les classes du langage J héritent de la classe « Object » Elle définit deux opérateurs : == (égalité) et != (différent) Object [ ] La classe « Object [ ] » La classe Object[] représente un ensemble dobjets. Elle définit un constructeur « [] » qui est défini sur toutes les classes de J. ex: Attribute [ ], String [ ], … Les classes « Mères »

113 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 »

114 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 » nest pas trouvé

115 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 noffre 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)

116 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 La Classe InStream représente le flux dentré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 lexistence du fichier Les Classes« entrée/sortie » (2)

117 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Les Classes de concepts UML J permet daccéder à toutes les informations de tout élément du modèle Classe: Name, Visibility, … PartAttribute, PartOperation

118 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Les opérations J Lappel dune opération se fait avec le symbole «. » Ex: StdOut.write Possibilité de diffuser une opération sur un ensemble Ex: ParOperation.

119 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); }

120 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 FACILITER LA NAVIGATION DANS UN MODÈLE les classes dun package les méthodes dune classe les paramètres dune méthode … NOTATION NOTATION Les ensembles sont définis par la classe « class of the elements [ ] », telle que Object[], String[], Class[], etc. DÉCLARATION DÉCLARATION La déclaration suivante, permet d'obtenir un ensemble vide d'objets « Object » : Object[] E; Les ensembles (1)

121 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 ORDRE DES ÉLÉMENTS 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 « 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 ENSEMBLES 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. ENSEMBLE VIDE ENSEMBLE 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)

122 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 ACCÈS AU IÈME ÉLÉMENT ACCÈS AU IÈME ÉLÉMENT J nautorise 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 lobjet « pElt » le « pIndex » ième élément de lensemble « pSet ». Le 1er élément a lindex 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 lensemble « pSet » par lobjet « pElt ». Les ensembles (3)

123 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 size « size » : renvoie le nombre déléments de lensemble Exemple : PartAttribute.size();// ou PartAttribute.length(); addElement « addElement » : ajoute un élément dans lensemble Exemple : PartOperation.

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

125 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 « while » sur les ensembles 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 : PartAttribute.

126 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 If « If » if (condition1) { // instructions } if (condition1) {// instructions } else { // instructions } if (condition1) { // instructions } else if (condition2) { // instructions } else { // instructions } Structure de contrôle (1)

127 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 »

128 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?

129 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 lon aimerait avoir en dehors de UML Il est intéressant de sortir du domaine UML => Ouverture vers les profiles UML

130 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

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

132 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 dassocier des tagged values à tout concept UML (Classe, Attribut, Association, Use Case) LES CONTRAINTES : Préciser les conditions demploi des éléments du modèle Exemples : {disjoint}, {age >= 18}, … Il est possible dassocier des contrainte à tout concept UML (Classe, Attribut, Association, Use Case)

133 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 lEJBBean (entity, session) Contrainte Un EJBBean doit avoir une EJBHomeInterface

134 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)

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

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

137 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é

138 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Objectif Il serait intéressant de disposer dautres 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 ?

139 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Lapproche modèle de modèles Seriez-vous capable de construire le diagramme de classes expliquant les concepts dun diagramme de Use Case? Seriez-vous capable de construire le diagramme de classes dun diagramme de classe ?

140 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 dun 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

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

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

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

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

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

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

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

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

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

150 Lapproche 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?

151 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 dun 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 grammaire Méta-Modèle = grammaire

152 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 lOMG Il définit les concepts nécessaires et suffisants pour élaborer des méta-modèles

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

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

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

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

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

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

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

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

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

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

163 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

164 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Représentation concrète de modèles Textuelle Représenter un modèle sous forme de texte Objet Représenter un modèle sous forme dobjets Graphique Représenter un modèle sous forme de fichier SVG (réduction à la représentation textuelle)

165 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 dencoder un modèle dans un document XML

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

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

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

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

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

171 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 dencoder un modèle UML dans un document XML Les règles XMI peuvent quasiment sappliquer sur les diagramme de classe UML

172 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 dencoder un modèle sous forme dobjet Java

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

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

175 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Tester les prototypes

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

177 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

178 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Pourquoi cest un problème ? Quelques soient le middleware, la méthode et les techniques utilisés (patterns, framework, …); le code métier est toujours, dune manière ou dune 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).

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

180 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Pourquoi cette solution est bonne Rien ne permet daffirmer à 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)

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

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

183 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 dune 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.

184 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 dapplication 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.

185 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 dactions orienté utilisateur

186 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 lheure actuelle UML 2.0 MOF 2.0 XMI 2.0 MOF 2.0 Q/V/T

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

188 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

189 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Transformation de modèles Méta-modèle MOF2.0 Q/V/T Méta-modèle dentré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

190 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Intéropérabilité Considérer les services de modélisation Une transformation est un service de modélisation au même titre que lexécution de modèles ou la génération de tests Interopérabilité de service Proposition de ModelBus Redaction dun RFP en cours

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

192 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Résumé Le code nest que le langage de la machine La construction et la maintenance dapplications nécessitent dautres langage (différents niveaux dabstraction, différents intervenants) Lingé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 lingénierie des modèles (cest même le langage précurseur) Il est important de savoir maitriser la diversité des langages de modélisation Il est plus quimportant de rendre ces langages de modélisation produtifs

193 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 dapplication dirigé par les modèles Le passage du code aux modèles (Reverse Engineering, ADM) La génération automatique de code …

194 Cours de DEA UCAD – Dakar – Juillet 2004 X. Blanc – Université Paris 6 Merci Nhésitez pas à me contacter Xavier Blanc


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

Présentations similaires


Annonces Google