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

UML – Langage unifié pour la modélisation objet

Présentations similaires


Présentation au sujet: "UML – Langage unifié pour la modélisation objet"— Transcription de la présentation:

1 UML – Langage unifié pour la modélisation objet
14/11/01 UML – Langage unifié pour la modélisation objet 14/11/01 UML 01 V1-1 UML 01 V1-1

2 14/11/01 Démarche Initialement le cours a été construit sur la base de l’ouvrage: Modélisation objet avec UML Pierre-Alain Muller Eyrolles 1997 [PAM-97] Ensuite, le cours a été adapté sur la base de la 2ème édition de l’ouvrage: Pierre-Alain Muller & Nathalie Gaertner Eyrolles / 2000 [PAM-00] Le chapitre 4 « Encadrement des projets objet » de l’ouvrage de référence n’est pas abordé dans ce cours. Quelques exemples de code Java seront donnés pour illustrer les concepts relativement particuliers à la « programmation objets ». 14/11/01 UML 01 V1-1 UML 01 V1-1

3 Compléments bibliographiques (1)
14/11/01 Compléments bibliographiques (1) De Merise à UML Kettani / Mignet / Paré / Rosenthal-Sabroux Eyrolles, 1998 [KETT-98] Le guide de l’utilisateur UML Booch / Rumbaugh / Jacobson Eyrolles (traduction française) [BRJ-00] UML La notation unifiée de modélisation objet Michel Lai DUNOD, 2000 [ML-00] [KETT-98] Un excellent ouvrage pour les spécialistes de Merise qui veulent établir des correspondances avec UML. [BRJ-00] Quelques références, explications ou exemples très enrichissants. Une approche très progressive des possibilités du langage UML. [ML-00] Une proposition très détaillée de patrons. 14/11/01 UML 01 V1-1 UML 01 V1-1

4 Compléments bibliographiques (2)
14/11/01 Compléments bibliographiques (2) Intégrer UML dans vos projets Lopez / Migueis / Pichon Eyrolles 1998 [LMP-98] UML en action Roques / Vallée 2000 [RV-00] [LMP-98] Une approche didactique excellente, un complément très utile au support de base. 14/11/01 UML 01 V1-1 UML 01 V1-1

5 Bibliographie JAVA Java La synthèse
14/11/01 Bibliographie JAVA Java La synthèse Clavel / Mirouze / Munerot / Pichon / Soukal InterEditions Masson 1998 [JLS-98] [JLS-98] L’ouvrage porte parfaitement son nom; c’est vraiment une excellente synthèse de Java. Nous le conseillons à tout ceux qui veulent entrer dans le monde Java sans se perdre dans le superflu et les détails. 14/11/01 UML 01 V1-1 UML 01 V1-1

6 Bibliographie UML-Web
14/11/01 Bibliographie UML-Web Concevoir des applications Web avec UML Jim Connallen Traduit par M. Saez Eyrolles / 2000 [JC-00] Cet ouvrage présente la problématique du développement d’applications interactives utilisant un navigateur Web comme interface utilisateur. De plus, l’auteur propose un ensemble de règles et une classificationpour spécifier les applications utilisant le Web. 14/11/01 UML 01 V1-1 UML 01 V1-1

7 Bibliographie Oracle Objet-relationnel sous Oracle8
14/11/01 Bibliographie Oracle Objet-relationnel sous Oracle8 Modélisation avec UML Soutou Eyrolles / 1999 [SOU-99] Oracle8 Design Using UML Object Modeling Dorsey/Hudicka OSBORNE - Oracle Press / 1999 [DH-99] [SOU-99] A lire pour celles et ceux qui sont sensibilisés aux problèmes de persistance des objets. [DH-99] A lire pour celles et ceux qui sont familiarisés avec les modèles Entity Relationship de l’AGL Designer d’Oracle et qui veulent passer à la modélisation « objets ». 14/11/01 UML 01 V1-1 UML 01 V1-1

8 Connaître les concepts du langage UML
14/11/01 Objectifs Connaître les concepts du langage UML Mettre en œuvre les diagrammes UML Illustrer les concepts et la modélisation avec l’utilisation de Rational Rose Rational Rose Enterprise Edition 2001 A la fin de ce module, l’étudiant doit connaître les concepts du langage unifié de modélisation UML et être capable d’utiliser les différents diagrammes pour modéliser des cas simples de systèmes informatiques de gestion. Rational Rose est utilisé uniquement pour illustrer les concepts théoriques. Ce cours ne constitue, en aucun cas, un support d’apprentissage de Rational Rose. 14/11/01 UML 01 V1-1 UML 01 V1-1

9 Que doit-on attendre des AGL
14/11/01 Que doit-on attendre des AGL [LMP-98 p155] Les AGL méthodologiques du marché doivent permettre, dans une certaine mesure de s’abstraire des contraintes du formalisme. Ils doivent aider les concepteurs et les analystes dans leur travail aussi bien au niveau de la création des diagrammes, que dans la génération des rapports, ou encore dans la vérification de la cohérence des modèles, voire la génération d’un squelette de code. AGL – Atelier de génie logiciel 14/11/01 UML 01 V1-1 UML 01 V1-1

10 14/11/01 1. La genèse UML 14/11/01 UML 01 V1-1 UML 01 V1-1

11 Problématique du logiciel
14/11/01 Problématique du logiciel 1970 1980 1990 Mécanique Vivant Cahier des charges Objectif Prévisible Réactif [PAM-00 p5] La demande de logiciels sophistiqués alourdit considérablement les contraintes imposées aux équipes de développement. Le futur des informaticiens s’annonce comme un monde de complexité croissante, à la fois du fait de la nature des applications, des environnements distribués et hétérogènes, de la taille des logiciels, de la composition des équipes de développement, et des attentes ergonomiques des utilisateurs. 14/11/01 UML 01 V1-1 [PAM-00 p5] UML 01 V1-1

12 14/11/01 A quoi sert une méthode [PAM-00 p5] Une méthode définit une démarche reproductible pour obtenir des résultats fiables. Tous les domaines de la connaissance utilisent des méthodes plus ou moins sophistiquées et plus ou moins formalisées. Les cuisiniers parlent de recettes de cuisine, les pilotes déroulent des check-listes avant le décollage, les architectes dessinent des plans… 14/11/01 UML 01 V1-1 [PAM-00 p5] UML 01 V1-1

13 Facturation des réparations d’un garage.
14/11/01 Expérience Savoir faire Facturation des réparations d’un garage. Une réparation est toujours relative à un véhicule, elle nécessite toujours le travail d’un ou plusieurs employés selon leur qualification et, éventuellement, des pièces de rechange. La facture est envoyée au propriétaire du véhicule ou à une compagnie d’assurance en cas d’accident; une compagnie d’assurance est un client pour le garage. En cas de réparation en garantie, aucune facture n’est envoyée. Méthode Formalisme Mémorisation [PAM-00 p6] Avec le temps, les utilisateurs développent un savoir-faire lié à sa mise en œuvre. Ce savoir-faire, également appelé expérience, n’est pas toujours formulé clairement, ni aisément transmissible. 14/11/01 UML 01 V1-1 [PAM-00 p6] UML 01 V1-1

14 Évolution des méthodes
14/11/01 Évolution des méthodes Analyse Programmation Conception 14/11/01 UML 01 V1-1 [PAM-00 p7] UML 01 V1-1

15 Vers un langage unifié pour la modélisation
14/11/01 Vers un langage unifié pour la modélisation Booch, Jacobson et Rumbaugh se fixent 4 objectifs: représenter des systèmes entiers (au-delà du seul logiciel) par des concepts objets, établir un couplage explicite entre les concepts et les artefacts exécutables, prendre en compte les facteurs d’échelle inhérents aux systèmes complexes et critiques, créer un langage de modélisation utilisable à la fois par les humains et les machines. 14/11/01 UML 01 V1-1 [PAM-00 p10] UML 01 V1-1

16 Principales étapes de la définition d’UML
14/11/01 Principales étapes de la définition d’UML Juin 1999 UML 1.3 Janvier 1997 UML 1.0 UML 0.9 Octobre 1995 Méthode unifiée 0.8 Booch’93 OMT-2 Autres méthodes Booch’91 OMT-1 OOSE Partenaires 14/11/01 UML 01 V1-1 [PAM-00 p11] UML 01 V1-1

17 14/11/01 Historique UML 14/11/01 UML 01 V1-1 UML 01 V1-1

18 14/11/01 L’unification Les créateurs d’UML insistent tout particulièrement sur le fait que la notation UML est un langage de modélisation objet et non pas une méthode objet. UML n’est pas une notation propriétaire; elle est accessible à tous et les fabricants d’outils ainsi que les entreprises de formation peuvent librement en faire usage. En français, UML pourrait se traduire par langage unifié pour la modélisation objet, mais il est plus probable qu’UML se traduise plutôt par notation unifiée, voire notation UML… 14/11/01 UML 01 V1-1 [PAM-97 p12] UML 01 V1-1

19 14/11/01 Méta-modèle Pour faciliter le travail de définition et pour formaliser UML, tous les différents concepts ont été eux-mêmes modélisés avec UML. Cette définition récursive, appelée métamodélisation, présente le double avantage de permettre de classer les concepts par niveau d’abstraction, de complexité et de domaine d’application, et aussi de faire la preuve de la puissance d’expression de la notation, capable entre autres de se représenter elle-même. 14/11/01 UML 01 V1-1 [PAM-00 p12] UML 01 V1-1

20 Modèle et modélisation
14/11/01 Modèle et modélisation [Guinier] La modélisation n’est qu’une représentation d’un système réel quelle qu’en soit sa forme: physique, graphique, mathématique, verbale ou mentale. Cette représentation intelligible est indispensable pour assurer la compréhension de systèmes naturels complexes. [PAM-00 p12] Un modèle est une description abstraite d’un système ou d’un processus, une représentation simplifiée qui permet de comprendre et de simuler. Le terme modélisation est souvent employé comme synonyme d’analyse, c’est-à-dire de décomposition en éléments simples, plus faciles à comprendre. En informatique, la modélisation consiste tout d’abord à décrire un problème, puis à décrire la solution de ce problème; ces activités s’appellent respectivement l’analyse et la conception. 14/11/01 UML 01 V1-1 UML 01 V1-1

21 Le modèle des classes qui capture la structure statique
14/11/01 Modèles d’UML Le modèle des classes qui capture la structure statique Le modèle des états qui exprime le comportement dynamique des objets Le modèle des cas d’utilisation qui décrit les besoins des utilisateurs Le modèle d’interaction qui représente les scénarios et les flots de messages Le modèle de réalisation qui montre les unités de travail Le modèle de déploiement qui précise la répartition des processus 14/11/01 UML 01 V1-1 [PAM-97 p14] UML 01 V1-1

22 Diagrammes et vues externes
14/11/01 Diagrammes et vues externes Les modèles sont regardés et manipulés par les utilisateurs au moyen de vues graphiques, véritables projections au travers des éléments de modélisation contenus par un ou plusieurs modèles. De nombreuses vues peuvent être construites à partir des modèles de base; elles peuvent montrer tout ou partie des modèles. A chaque vue correspondent un ou plusieurs diagrammes. 14/11/01 UML 01 V1-1 [PAM-00 p13] UML 01 V1-1

23 Vues statiques Vues dynamiques Les diagrammes d’UML
14/11/01 Les diagrammes d’UML Vues statiques Les diagrammes de classes Les diagrammes d’objets Les diagrammes de cas d’utilisation Les diagrammes de composants Les diagrammes de déploiement Vues dynamiques Les diagrammes de séquence Les diagrammes de collaboration Les diagrammes d’états-transition Les diagrammes d’activités 14/11/01 UML 01 V1-1 [PAM-00 p13] UML 01 V1-1

24 14/11/01 2. L’approche objet 14/11/01 UML 01 V1-1 UML 01 V1-1

25 Technologogie à objets
14/11/01 Technologogie à objets UML… Modélisation Objets de l’entreprise Java… Présentation Persistance SGBD… Distribution CORBA… 14/11/01 UML 01 V1-1 [SOU-31 p31] UML 01 V1-1

26 Pourquoi l’approche objet?
14/11/01 Pourquoi l’approche objet? Complexité Complication Besoin d’automatisation Systèmes informatisés [PAM-00 p16] La construction d’un logiciel est une suite d’itérations du genre division-réunion; il faut décomposer – diviser – pour comprendre et il faut composer – réunir – pour construire. Ceci conduit à une situation paradoxale: il faut diviser pour réunir. L’approche objet repose à la fois sur le rationalisme d’une démarche cartésienne et sur une démarche systémique qui considère un système comme une totalité organisée, dont les éléments solidaires ne peuvent être définis que les uns par rapport aux autres. 14/11/01 UML 01 V1-1 UML 01 V1-1

27 14/11/01 Exercice 1 - 1 Décomposition d’un objet « Ascenseur » intégrant la structure et le comportement. Créez un nouveau modèle ou projet Créez un nouveau diagramme de collaboration 14/11/01 UML 01 V1-1 [PAM-00 p16] UML 01 V1-1

28 Exercice 1 - 2 Objet Lien Message 14/11/01 UML 01 V1-1 14/11/01
3. Créez les objets unePorte, uneCabine, unBouton et unVoyant 4. Etablissez les liens entre objets 5. Créez les messages que s’échangent les objets. Les objets, liens et messages ne sont pas enregistrés dans le modèle ou référentiel. Nous verrons plus tard que les objets sont des instances de classes et les liens des instances d’association. Le référentiel contiendra les classes et associations et non toutes les instances possibles. 14/11/01 UML 01 V1-1 UML 01 V1-1

29 Pourquoi l’approche objet?
14/11/01 Pourquoi l’approche objet? Dans une organisation unifiée, la distinction des composants va de pair avec leur intégration. La force de l’approche objet provient alors de sa double capacité à décomposer – différencier – et à recomposer –réunir – du fait de la richesse de ses mécanismes d’intégration, qui concernent à la fois les aspects statiques et dynamiques des logiciels. L’approche objet tire sa force de sa capacité à regrouper ce qui a été séparé, à construire le complexe à partir de l’élémentaire, et surtout à intégrer statiquement et dynamiquement les constituants d’un système. 14/11/01 UML 01 V1-1 [PAM-00 p17] UML 01 V1-1

30 Décomposer - recomposer
14/11/01 Décomposer - recomposer décomposer recomposer 14/11/01 UML 01 V1-1 UML 01 V1-1

31 Statique - dynamique statique dynamique 14/11/01 UML 01 V1-1 14/11/01

32 Un objet peut être concret ou abstrait.
14/11/01 Les objets L’objet est une unité atomique formée de l’union d’un état et d’un comportement. Il fournit une relation d’encapsulation qui assure à la fois une cohésion interne très forte et un faible couplage avec l’extérieur. L’objet révèle son vrai rôle et sa vraie responsabilité lorsque, par l’intermédiaire de l’envoi de messages, il s’insère dans un scénario de communication. Un objet peut être concret ou abstrait. 14/11/01 UML 01 V1-1 [PAM-00 p17] UML 01 V1-1

33 Représentation abstraite des entités
14/11/01 Représentation abstraite des entités Les objets informatiques définissent une représentation abstraite des entités d’un monde réel ou virtuel, dans le but de les piloter ou de les simuler. Cette représentation abstraite peut être vue comme une sorte de miroir informatique, qui renvoie une image simplifiée d’un objet qui existe dans le monde perçu par l’utilisateur. Les objets informatiques, que nous appellerons désormais objets, encapsulent une partie de la connaissance du monde dans lequel ils évoluent. 14/11/01 UML 01 V1-1 [PAM-00 p18] UML 01 V1-1

34 Figure 9 / Exercice 2 - 1 14/11/01 UML 01 V1-1 14/11/01
Un objet se représente sous forme d’un rectangle. Le nom de l’objet est souligné. Un lien entre objets se représente par un trait plein. Une note est représentée sous forme d’un rectangle avec le coin supérieur droit replié. Un trait discontinu permet de relier une note à n’importe quel élément de modélisation. 14/11/01 UML 01 V1-1 UML 01 V1-1

35 Exercice 2 - 2 Objets Objet anonyme 14/11/01 UML 01 V1-1 14/11/01
Créez un nouveau modèle ou projet. Créez un nouveau diagramme de collaboration Créez les objets comme ci-dessus, en jouant sur leur nom et leur classe à partir de la fenêtre des spécifications pour obtenir le résultat voulu. 14/11/01 UML 01 V1-1 UML 01 V1-1

36 i Classes et objets 14/11/01 UML 01 V1-1 14/11/01
Nous verrons plus tard la notion de classes qui permet de « classer » les objets sous forme d’ensembles pertinents. Le référentiel de Rational Rose ne stocke pas les objets, mais seulement les classes d’objets. Avec Rational Rose, un diagramme d’objets se construit à partir de l’éditeur de diagramme de collaboration. Un diagramme d’objets est un diagramme de collaboration sans messages. Nous voyons dans la vue du navigateur ci-contre, que le référentiel ne contient que: Le diagramme Banque La classe Client 14/11/01 UML 01 V1-1 i UML 01 V1-1

37 Caractéristiques fondamentales d’un objet
14/11/01 Caractéristiques fondamentales d’un objet Objet = Etat + Comportement + Identité Un objet doit apporter une valeur ajoutée par rapport à la simple juxtaposition d’informations ou (et) de code exécutable. Un objet sans état ou sans comportement peut exister marginalement, mais dans tous les cas, un objet possède une identité. 14/11/01 UML 01 V1-1 [PAM-00 p20] UML 01 V1-1

38 14/11/01 L’état L’état regroupe les valeurs instantanées de tous les attributs d’un objet sachant qu’un attribut est une information qui qualifie l’objet qui le contient. Chaque attribut peut prendre une valeur dans un domaine de définition donné. L’état d’un objet, à un instant donné, correspond à une sélection de valeurs, parmi toutes les valeurs possibles des différents attributs. L’état d’un objet à un moment donné est la conséquence des comportements passés. 14/11/01 UML 01 V1-1 [PAM-00 p20] UML 01 V1-1

39 14/11/01 Le comportement Le comportement regroupe toutes les compétences d’un objet et décrit les actions et les réactions de cet objet. Chaque atome de comportement est appelé opération. Les opérations d’un objet sont déclenchées suite à une stimulation externe, représentée sous la forme d’un message envoyé par un autre objet. 14/11/01 UML 01 V1-1 [PAM-00 p21] UML 01 V1-1

40 Figure 15 – Exercice 3 - 1 14/11/01 UML 01 V1-1 14/11/01
Créez un nouveau modèle ou projet. Créez un nouveau diagramme de collaboration. Créez les objets des classes Avion et TourDeControle. Ajoutez les attributs EnVol et AuSol à la classe Avion à partir de sa fenêtre de spécification Affichez les attributs AuSol et EnVol à l’aide du menu contextuel Edit Compartment 14/11/01 UML 01 V1-1 Les messages saisis sur les liens entre objets ne sont pas enregistrés dans le référentiel; ils ne servent qu’à documenter le diagramme. UML 01 V1-1

41 14/11/01 Exercice 3-2 Au cours de cet exercice, nous allons créer les opérations Decoller() et Atterrir() de la classe Avion. Nous verrons que Rational Rose nous proposera d’envoyer comme messages les appels à ces méthodes. Créez un nouveau modèle ou projet. Créez un nouveau diagramme de collaboration. Créez les objets des classes Avion et TourDeControle. 14/11/01 Ajoutez les attributs EnVol et AuSol ainsi que les opérations Décoller et Atterrir à la classe Avion à partir de sa fenêtre de spécification. Affichez les attributs AuSol et EnVol à l’aide du menu contextuel Edit. Compartment UML 01 V1-1 UML 01 V1-1

42 14/11/01 Exercice 3 - 3 Les messages de cet exercice correspondent aux opérations que peuvent effectuer les objets de classe Avion. 14/11/01 UML 01 V1-1 UML 01 V1-1

43 14/11/01 L’identité En plus de son état, un objet possède une identité qui caractérise son existence propre. L’identité permet de distinguer tout objet de façon non ambiguë, et cela indépendamment de son état. Cela permet, entre autres, de distinguer deux objets dont toutes les valeurs d’attributs sont identiques. L’identité est un concept, elle ne se représente pas de manière spécifique en modélisation. Chaque objet possède une identité de manière implicite. 14/11/01 UML 01 V1-1 [PAM-00 p22] UML 01 V1-1

44 Contraintes de réalisation
14/11/01 Contraintes de réalisation Les notions d’état, de comportement et d’identité s’appliquent aux objets de manière générale, quel que soit l’environnement de réalisation. Toutefois, les objets peuvent également posséder des caractéristiques plus informatiques, liées aux contingences de réalisation comme la distribution des programmes, les bases de données ou les programmes multilangages. 14/11/01 UML 01 V1-1 [PAM-00 p23] UML 01 V1-1

45 La persistance des objets
14/11/01 La persistance des objets Les objets non persistants sont dits transitoires ou éphémères. Par défaut, les objets ne sont pas considérés comme persistants. Dans leur ensemble, les langages de programmation objet ne proposent pas de support direct pour assurer la persistance des objets. Cela est regrettable et oblige à recourir à des artifices extérieurs pour assurer la persistance des objets. Les constructeurs de bases de données fournissent des solutions pour la sauvegarde des objets, soit totalement objet, soit hybride. 14/11/01 UML 01 V1-1 [PAM-00 p23] UML 01 V1-1

46 14/11/01 La persistance [SOU-99 p31] La gestion de la persistance est une notion intrinsèque des SGBD, elle permet le stockage des données et leur restitution à la demande. Dans un contexte de bases de données, les objets métier sont utilisés au niveau conceptuel et les objets d’implémentation au niveau physique. [SOU-99 p39] Bien que SGBD et langages de programmation aient des points communs, ils diffèrent par un aspect fondamental. En effet, un programme est sensé résoudre un problème donné, alors qu’une base de données a pour objectif de répondre à un ensemble de problèmes qui sont en partie inconnus au moment de la création de la base. 14/11/01 UML 01 V1-1 UML 01 V1-1

47 Persistance 14/11/01 UML 01 V1-1 14/11/01
Le choix entre objet persistant et transitoire se fait par la propriété « Persistence » comme illustré ci-dessus. 14/11/01 UML 01 V1-1 UML 01 V1-1

48 Communication entre objets
14/11/01 Communication entre objets L’étude des formes de communication entre objets du domaine est de première importance dans la modélisation objet et, d’ailleurs, la grande différence entre l’approche fonctionnelle et l’approche objet réside précisément dans cette articulation qui réduit le couplage entre la structure et la fonction. Les standards appliqués par l’ESNIG pour ses développements avec MS-ACCESS privilégient déjà la notion d’objets collaborants en laissant à l’utilisateur le choix de son scénario de travail. 14/11/01 UML 01 V1-1 [PAM-00 p25] UML 01 V1-1

49 Catégories de comportement
14/11/01 Catégories de comportement Les objets interagissent pour réaliser les fonctions de l’application. Il est fréquent de retenir trois catégories de comportement: les acteurs, les serveurs et les agents. [PAM-00 p25] Les acteurs sont toujours des objets à l’origine d’une interaction. Ce sont généralement des objets actifs, c’est-à-dire qu’ils possèdent un fil d’exécution (thread) et qu’ils passent la main aux autres objets. Les serveurs, au contraire, ne sont jamais à l’origine d’une interaction, mais sont toujours les destinataires des messages. Ce sont souvent des objets qui attendent qu’un autre objet ait besoin de leurs services. Dans ce cas, le flot de contrôle est passé au serveur par l’objet qui envoie le message et est récupéré après exécution du service 14/11/01 UML 01 V1-1 [PAM-00 p25] UML 01 V1-1

50 14/11/01 Client-Serveur L’objet client passe la main à l’objet serveur, puis attend la fin du service avant de reprendre son exécution. 14/11/01 UML 01 V1-1 [PAM-00 p25] UML 01 V1-1

51 Architecture n-tiers Oracle (1)
14/11/01 Architecture n-tiers Oracle (1) L’architecture n-tiers d’Oracle fonctionne sur le concept de messages. L’utilisateur, par l’intermédiaire de son browser, envoie un message au serveur d’application. Le serveur d’application envoie à son tour un message au serveur de données. L’utilisateur est un acteur du schéma précédent. Dans le cadre de cartouches ou services PL/SQL, le serveur d’application est en fait un agent qui transmet la demande au serveur apte à lui répondre. 14/11/01 UML 01 V1-1 UML 01 V1-1

52 Architecture n-tiers Oracle (2)
14/11/01 Architecture n-tiers Oracle (2) Le serveur d’application, que nous considérons comme un agent, connaît le serveur de données à solliciter à partir d’un DAD, Database Access Descriptor. 14/11/01 UML 01 V1-1 UML 01 V1-1

53 Architecture n-tiers Oracle (3)
14/11/01 Architecture n-tiers Oracle (3) Utilisateur client Serveur OAS hestia.cpln.ch Instance EXOC Adresse URL Requête 1 Demande d'identification 2 3 Identification 3 Identification Navigateur 4 Connexion Oracle SGBD-R Exemple d’échange de messages entre acteur, agent et serveur lors de la connexion de l’utilisateur. Il est intéressant de noter que tout comme dans la figure 2-20 de [PAM-00], l’utilisateur ne connaît pas le serveur. Le routage de la connexion est assuré par le serveur d’application qui agit en tant qu’agent. Un acteur Un agent Un serveur 14/11/01 UML 01 V1-1 UML 01 V1-1

54 14/11/01 Le concept de message L’unité de communication entre objets s’appelle le message. Le message est le support d’une relation de communication qui relie, de façon dynamique, les objets qui ont été séparés par le processus de décomposition. 14/11/01 UML 01 V1-1 [PAM-00 p26] UML 01 V1-1

55 [PAM-97] Inspiré de Figure 23
14/11/01 [PAM-97] Inspiré de Figure 23 Rational Rose ne permet pas d’identifier les flots de données. Le contenu des flots de données a été mis sous forme de texte. [PAM-97 p28] Un message regroupe les flots de contrôle et les flots de données au sein d’une entité unique. La notion de message est un concept abstrait qui peut être mis en œuvre selon de nombreuses variantes, comme l’appel de procédure, l’événement discret, l’interruption… Flot de contrôle Flot de données 14/11/01 UML 01 V1-1 UML 01 V1-1

56 14/11/01 Exercice 4 - 1 Sur la base de la figure 23, utilisez Rational Rose pour créer l’interaction de demande de connexion entre un acteur et un agent. Le message indique le type de paramètres transportés. L’opération de la classe fournisseur (supplier) comporte la signature de la méthode sous-jacente. 14/11/01 Créez un nouveau modèle ou projet. Créez un nouveau diagramme de collaboration. Créez l’objet Un acteur de la classe Acteur et l’objet Un agent de la classe Agent. UML 01 V1-1 UML 01 V1-1

57 14/11/01 Exercice 4 - 2 Ajoutez l’opération Connexion, de type Boolean, à la classe Agent. Ajoutez les paramètres Nom et MotDePasse à l’opération Connexion. Mettez la propriété « Show operation signatures » des options de diagrammes à Vrai. 14/11/01 UML 01 V1-1 UML 01 V1-1

58 Catégories de messages
14/11/01 Catégories de messages Les constructeurs qui créent les objets Les destructeurs qui détruisent les objets Les sélecteurs qui renvoient tout ou partie de l’état d’un objet Les modificateurs qui changent tout ou partie de l’état d’un objet Les itérateurs qui visitent l’état d’un objet ou le contenu d’une structure de données qui contient plusieurs objets 14/11/01 UML 01 V1-1 [PAM-97 p28] UML 01 V1-1

59 Exercice 5 – 1 Exemple de catégories
14/11/01 Exercice 5 – 1 Exemple de catégories Constructeur Eleve (String Nom, String Prenom, Age Integer) Crée un nouvel objet élève; les paramètres servent à lui affecter les propriétés correspondantes Sélecteur GetAge() Rend l’âge de l’objet élève Modificateur SetAge(Age Integer) Change la propriété Age de l’objet élève avec la nouvelle valeur passée en paramètre Itérateur La classe ListeEleves est une collection d’objets Elève La collection est stockée dans un vecteur – Liste: Vector Vector est une classe Java La collection est initialisée par l’opération init() Un nouvel objet élève est ajouté par l’opération ajout(UnEleve Eleve) La collection est parcourue par l’itérateur next(); la propriété Position permet à un objet de la classe ListeEleves de mémoriser la position de l’itérateur 14/11/01 UML 01 V1-1 UML 01 V1-1

60 Exercice 5 – 2 Vue du référentiel
14/11/01 Exercice 5 – 2 Vue du référentiel Créez un nouveau modèle ou projet. Créez le diagramme de la page précédente. Observez le contenu du référentiel. 14/11/01 UML 01 V1-1 UML 01 V1-1

61 Formes de synchronisation des messages
14/11/01 Formes de synchronisation des messages Les formes de synchronisation des messages décrivent la nature des mécanismes de communication qui permettent le passage de messages d’un objet vers un autre objet. La notion de synchronisation prend tout son intérêt lorsque plusieurs objets sont actifs simultanément et qu’il faut, par exemple, protéger l’accès à des objets partagés. 14/11/01 UML 01 V1-1 [PAM-97 p29] UML 01 V1-1

62 Synchronisation des messages
14/11/01 Synchronisation des messages Le choix de synchronisation se fait dans l’onglet « Detail » de la fenêtre de propriété des messages. Il faut double-cliquer le message pour afficher la fenêtre de propriétés. 14/11/01 UML 01 V1-1 UML 01 V1-1

63 Envoi de message simple
14/11/01 Envoi de message simple Un seul flot d’exécution Le contrôle passe de l’objet actif à un objet passif. Le formulaire de saisie des élèves est contrôlé par le même flot que la liste. L’ajout d’un élève dans la liste « bloque » l’utilisation du formulaire de saisie pendant le processus d’ajout. 14/11/01 UML 01 V1-1 [PAM-97 p30] UML 01 V1-1

64 Envoi de message synchrone
14/11/01 Envoi de message synchrone 2 flots de contrôles L’expéditeur est bloqué jusqu’à ce que le destinataire accepte le message Un train demande l’entrée dans un secteur sécurisé par un feu; le train ne pourra pas passer tant que le feu ne l’y autorise. 14/11/01 UML 01 V1-1 [PAM-97 p30] UML 01 V1-1

65 Envoi de message dérobant
14/11/01 Envoi de message dérobant 2 flots de contrôles Le destinataire est en attente de messages L’expéditeur n’attend pas que le destinataire soit disponible Un client fait un prélèvement d’argent à un distributeur de billets. Dès que le distributeur a identifié le client, il distribue l’argent en postulant que le client est bien resté devant l’appareil en attente de son argent. 14/11/01 UML 01 V1-1 [PAM-00 p29] UML 01 V1-1

66 Envoi de message minuté
14/11/01 Envoi de message minuté 2 flots de contrôles L’expéditeur est bloqué pendant le temps alloué au récepteur pour répondre au message Le formulaire de saisie des élèves est contrôlé par un flot. Le serveur de données est un processus indépendant contrôlé par un autre flot. Le formulaire demande l’ajout d’un nouvel élève au serveur de données. Celui-ci peut être occupé. Le formulaire attend pendant un certain temps que le serveur veuille bien traiter sa demande. Si le temps alloué au serveur est dépassé et que celui-ci n’a toujours pas traité la demande, le formulaire reprend son exécution; un message devrait être envoyé à l’utilisateur du formulaire lui signifiant que le serveur est indisponible pour l’ajout d’un nouvel élève. 14/11/01 UML 01 V1-1 [PAM-00 p29] UML 01 V1-1

67 Envoi de message asynchrone
14/11/01 Envoi de message asynchrone 2 flots de contrôles L’expéditeur envoie le message sans savoir quand, ni même si, le message sera traité par le destinataire. Pierre envoie un à Marie. Son message parti, le processus est terminé. Pierre peut demander un accusé de réception, de lecture… ces différents éléments sont d’autres processus qui lui renverront à leur tour d’autres messages asynchrones. Marie et Pierre ne doivent pas être à l’écoute de leur messagerie pour que celle-ci fonctionne; Pierre recevra les accusés de réception, de lecture… lors de sa prochaine connexion. 14/11/01 UML 01 V1-1 [PAM-00 p28] UML 01 V1-1

68 Représentation des interactions entre les objets
14/11/01 Représentation des interactions entre les objets Les objets interagissent pour réaliser collectivement les services offerts par les applications. Les diagrammes d’interaction représentent les objets les uns par rapport aux autres et montrent comment ils communiquent au sein d’une interaction. Chaque interaction possède un nom et un contexte de validité qu’il convient de préciser de manière textuelle. Il existe deux sortes de diagrammes d’interaction: les diagrammes de collaboration et les diagrammes de séquence. [PAM-97 p32] Les diagrammes d’interaction montrent quelques objets dans une situation donnée. Seule une petite interaction est représentable. 14/11/01 UML 01 V1-1 [PAM-00 p30] UML 01 V1-1

69 14/11/01 Diagramme de séquence [KETT-98] Un diagramme de séquence montre les interactions entre les objets, arrangées en séquence dans le temps. En particulier, il montre les objets participants dans l’interaction par leur « ligne de vie » et les messages qu’ils échangent ordonnancés dans le temps. Il ne montre pas les associations entre les objets. 14/11/01 UML 01 V1-1 UML 01 V1-1

70 Exemple de diagramme de séquence
14/11/01 Exemple de diagramme de séquence Message minuté Message asynchrone Chronologie Ce diagramme de séquence représente le scénario de la connexion d’un utilisateur dans le cadre de l’architecture n-tiers Oracle présentée précedemment. Le diagramme met bien en évidence la chronologie d’envoi de messages. 14/11/01 UML 01 V1-1 UML 01 V1-1

71 Diagramme de collaboration
14/11/01 Diagramme de collaboration [KETT-98] Un diagramme de collaboration montre les interactions entre les objets et leurs liens. Contrairement au diagramme de séquence, un diagramme de collaboration montre les relations entre les objets. En revanche, un diagramme de collaboration n’intègre pas la dimension du temps. 14/11/01 UML 01 V1-1 UML 01 V1-1

72 Exemple de diagramme de collaboration
14/11/01 Exemple de diagramme de collaboration Ce diagramme de collaboration représente le même scénario que le diagramme de séquence précédent: la connexion d’un utilisateur dans le cadre de l’architecture n-tiers Oracle. Le diagramme met en évidence les liens existants entre objets; unUtilisateur est en relation avec unAgent mais pas directement avec unServeur. 14/11/01 UML 01 V1-1 UML 01 V1-1

73 Comparaison entre les 2 diagrammes
14/11/01 Comparaison entre les 2 diagrammes [KETT-98] Le diagramme de collaboration et le diagramme de séquence sont équivalents. Le diagramme de collaboration permet de définir les relations entre les classes. S’il existe un message entre deux objets, il existe alors une relation entre leurs classes respectives. 14/11/01 UML 01 V1-1 UML 01 V1-1

74 14/11/01 Exercice 6 - 1 L’opération IdentifieToi() d’un utilisateur ne sera jamais réalisée par une méthode ou tout autre réalisation informatique mais très certainement par une formation qui lui permettra, par l’intermédiaire d’une fenêtre de connexion , de se connecter. Le but de cet exercice est de créer les 2 diagrammes d’interaction présentés précédemment en vérifiant que les 2 sortes de diagrammes d’interaction manipulent bien les mêmes concepts. Pour ce faire, nous créerons les 3 classes: Utilisateur, ServeurApplication et ServeurDeDonnees et leurs opérations réciproques. Ainsi, les objets et les messages des 2 diagrammes seront identiques; seule leur représentation, chronologique ou spatiale, sera différente. 14/11/01 UML 01 V1-1 UML 01 V1-1

75 14/11/01 Exercice 6 - 2 Créez un nouveau modèle ou projet. Créez un nouveau diagramme de classe comme illustré sur la diapositive précédente. Créez les opérations des 3 classes: Utilisateur, ServeurApplication et ServeurDeDonnees. Créez le diagramme de séquence. Créez le diagramme de collaboration. 14/11/01 UML 01 V1-1 UML 01 V1-1

76 Diagrammes d’interaction
14/11/01 Diagrammes d’interaction F5 Les 2 diagrammes de collaboration et de séquence montrant les mêmes concepts sous des formes différentes, Rational Rose permet de passer automatiquement de l’un à l’autre. La touche de fonction <F5> active ce mécanisme. 14/11/01 UML 01 V1-1 UML 01 V1-1


Télécharger ppt "UML – Langage unifié pour la modélisation objet"

Présentations similaires


Annonces Google