UML pour le Master
Transcription
UML pour le Master
UML « Unified Modeling Language » Le Langage de Modélisation Objet Unifié Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Modélisation Le Langage de Modélisation Objet Unifié Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Qu'est-ce qu'un modèle ? • Un modèle est une abstraction de la réalité – Modéliser est un processus qui consiste à identifier les caractéristiques intéressantes d'entités, en vue d'une utilisation précise – L'abstraction désigne aussi le résultat de ce processus, c'est-à-dire l'ensemble des caractéristiques essentielles d'entités, retenues par un observateur • Un modèle est une vue subjective mais pertinente de la réalité – Un modèle définit une frontière entre la réalité et la perspective de l'observateur – Un modèle reflète des aspects importants de la réalité, il en donne une vue pertinente bien qu’imprécise Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Caractéristiques fondamentales des modèles • Faciliter la compréhension du système étudié – Un modèle réduit la complexité du système étudié • Simuler le système étudié – Un modèle représente le système étudié et reproduit ses comportements • Un modèle réduit (décompose) la réalité, dans le but de disposer d'éléments exploitables par des moyens – Mathématiques – Informatiques Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Quelques exemples de modèles • Modèle météorologique – à partir de données d'observation, permet de prévoir des conditions climatiques • Modèle économique – peut permettre de simuler l'évolution de cours boursiers en fonction d'hypothèses macro-économiques • Modèle démographique – définit la composition d'un panel d'une population et son comportement, dans le but de fiabiliser des études statistiques, d'augmenter l'impact de démarches commerciales, etc... Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 L’Orientation Objet Le Langage de Modélisation Objet Unifié Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Qu’est-ce qu’un objet ? • La programmation traditionnelle consiste à traiter des données (éventuellement structurées) au moyen de fonctions ou procédures • Un objet est une entité autonome, qui regroupe un ensemble de propriétés cohérentes et de traitements associés. – Un objet est une entité aux frontières précises qui possède une identité (un nom) – Un ensemble d'attributs caractérise l'état de l'objet – Un ensemble d'opérations (méthodes) en définissent le comportement • Un objet est accessible à travers une interface • Les objets réagissent à des messages, et en envoient à d’autres objets, au travers de leurs interfaces Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exemples d’objets • Individu Objet1 : Individu Nom = Dupont Prénom = Jean Date de naissance = 16/06/40 Sexe = M • Correspondant Objet2 : Correspondant Nom = Dupont Prénom = Jean Adresse = [email protected] Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Encapsulation • Consiste à masquer les détails d'implémentation d'un objet, en définissant une interface • L'interface est la vue externe d'un objet, elle définit les services accessibles (offerts) aux utilisateurs de l'objet • On peut modifier l'implémentation des attributs d'un objet sans modifier son interface • L'encapsulation garantit l'intégrité des données, car elle permet d'interdire l'accès direct aux attributs des objets Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les messages • Message simple dont on ne spécifie aucune caractéristique d'envoi ou de réception particulière • Message asynchrone qui n'interrompt pas l'exécution de l'expéditeur. – Le message envoyé peut être pris en compte par le récepteur à tout moment ou jamais traité • Message synchrone qui bloque l'expéditeur jusqu'à prise en compte du message par le destinataire – Le flot de contrôle passe de l'émetteur au récepteur – L'émetteur devient passif et le récepteur actif à la prise en compte du message • Message dérobant qui n'interrompt pas l'exécution de l'expéditeur – Il ne déclenche une opération chez le récepteur que s'il s'est préalablement mis en attente de ce message Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Encapsulation et messages • Les objets communiquent entre eux par des messages Partie visible Partie cachée M e s s a g e s Objet Interface Implémentation Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exemples de Messages • Message simple – Publicité (papier, radio, télé, Internet, …) • Message asynchrone – Courrier (poste, répondeur, messagerie, …) • Message synchrone – Conversation (orale, téléphone, chat, …) • Message dérobant – Avertissement (alerte, autorisation, …) Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Qu’est-ce qu’une classe d’objets ? • Une classe est un type de données abstrait, caractérisé par des propriétés (attributs et méthodes) communes à des objets et permettant de créer des objets possédant ces propriétés • Exemple Classe Voiture 206 : Voiture -Marque -Couleur -Immatriculation +Démarrer() +Conduire() +Arrêter() Marque = Peugeot Couleur = Gris Immatriculation = 1024 ZZ 13 Objet : instance de classe Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exemples de classes • Les individus Individu -Nom -Prénom -Date de naissance -Sexe +Age() • Les correspondants Correspondant -Nom -Prénom -Adresse +RecevoirMessage() +EnvoyerMessage() Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Héritage • Une classe peut être spécialisée en d'autres classes, afin d'y ajouter des caractéristiques spécifiques ou d'en adapter certaines. • Plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques communes d'un ensemble de classes. • La spécialisation et la généralisation permettent de construire des hiérarchies de classes. L'héritage peut être simple ou multiple • L'héritage est un mécanisme de transmission des propriétés d'une classe (ses attributs et méthodes) vers une sous-classe. Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Hiérarchie de classes Généralisation Oeuvre -Titre -Auteur Livre Roman Opéra BD Film Spécialisation Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Polymorphisme • • Le polymorphisme représente la faculté d'une méthode à pouvoir s'appliquer à des objets de classes différentes Exemple Véhicule +SeDéplacer() Train Voiture Bateau SeDéplacer( "sur des rails" ) SeDéplacer( "sur la route" ) SeDéplacer( "sur l'eau" ) Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Covariance • La covariance est la propriété d’une hiérarchie de classes d’avoir des parties isomorphes • Exemple Animal Quadrupède Bipède Herbivore Carnivore Herbivore Carnivore Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Délégation • La délégation permet de rompre le mécanisme d’héritage entre classe et sous-classes • Exemple Animal Station Bipède Nourriture Quadrupède Herbivore Carnivore Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Composition • Il s'agit d'une relation entre deux classes, spécifiant que les objets d'une classe sont des composants de l'autre classe • Les éléments agrégés font physiquement partie de l’agrégat • Exemple Corps 1 1 Tête Tronc Membres 1 * Inférieurs Supérieurs Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les associations • Les associations décrivent des relations structurelles entre classes d’objets • Chaque classe possède un rôle explicite ou implicite dans une association • Forme générale d’une association binaire Classe1 -Rôle1 Association > -Rôle2 -Attributs2 -Attributs1 +Méthodes1() Classe2 * * +Méthodes2() Cardinalités Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Cardinalités des associations • Les cardinalités possibles sont – – – – 0..* (ou *) : zéro ou plusieurs 1..* : au moins un 0..1 : un au plus 1..1 (ou 1) : un et un seul • Exemples Traite > -Patient Médecin Individu 0..* 1..* Est > Médecin Individu 0..1 1..1 Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Associations n-aires et classes d’associations • Association n-aire Classe d’association Professeur 1..1 Professeur 1..1 Etudiant Salle 1..* 1..1 Salle Etudiant 1..1 1..* -Date -HeureDébut -Durée Cours Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Spécialisation d’une classe d’association • Une classe d’association peut participer au modèle – On peut par exemple la spécialiser -Récepteur Facteur Personne 0..* 1..* Courrier Lettre Colis Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Relations de dépendance • Indiquent une contrainte à respecter au moment d’instancier des éléments d’un modèle -Parent d'élèves Sous-ensemble Ecole Individu -Délégué Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 UML Le Langage de Modélisation Objet Unifié Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Comment modéliser avec UML ? • UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus d'élaboration des modèles • Cependant, dans le cadre de la modélisation d'une application informatique, les auteurs d'UML préconisent d'utiliser une démarche – itérative et incrémentale – guidée par les besoins des utilisateurs du système – centrée sur l'architecture logicielle • Un processus de développement qui possède ces qualités devrait favoriser la réussite d'un projet Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Une démarche itérative et incrémentale • Pour modéliser (comprendre et représenter) un système complexe, il vaut mieux s'y prendre en plusieurs fois, en affinant son analyse par étapes • Cette démarche devrait aussi s'appliquer au cycle de développement dans son ensemble, en favorisant le prototypage • Le but est de mieux maîtriser la part d'inconnu et d'incertitudes qui caractérisent les systèmes complexes Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Une démarche guidée par les besoins des utilisateurs • Ce sont les utilisateurs qui guident la définition des modèles – Le périmètre du système à modéliser est défini par les besoins des utilisateurs – Le but du système à modéliser est de répondre aux besoins de ses utilisateurs • Les besoins des utilisateurs servent aussi de fil rouge – A chaque itération de la phase d'analyse, on clarifie, affine et valide les besoins des utilisateurs – A chaque itération de la phase de conception et de réalisation, on veille à la prise en compte des besoins des utilisateurs – A chaque itération de la phase de test, on vérifie que les besoins des utilisateurs sont satisfaits Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Une démarche centrée sur l'architecture logicielle • Définir une architecture avec UML : « 4+1 » – La vue logique modélise les éléments et mécanismes principaux du système – La vue des composants identifie les modules qui réalisent (physiquement) les éléments de la vue logique – La vue des processus montre la décomposition du système en terme de processus (tâches) et leurs interactions – La vue de déploiement décrit les ressources matérielles et la répartition du logiciel dans ces ressources – La vue des besoins des utilisateurs ( « cas d’utilisation ») guide toutes les autres Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Modéliser les vues statiques et dynamiques d’un système • Vues statiques – Cas d'utilisation (use cases) – Diagrammes de classes • Vues dynamiques – Diagrammes de collaborations – Diagrammes de séquence • Il existe d’autres diagrammes que nous ne présenterons pas dans le cadre de ce cours (voir la bibliographie dans la dernière diapositive) Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exercice ( fil rouge ) Bar en mode client / serveur serveur Ressources demande de boisson gestion : client boisson et informations de service de la file d'attente des ressources des conflits … Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les cas d’utilisation • Ils identifient les utilisateurs du système (acteurs) et leurs interactions avec le système • Ils permettent de structurer les besoins des utilisateurs et les objectifs correspondants d'un système • Ils se limitent aux préoccupations "réelles" des utilisateurs – ils ne présentent pas de solutions d'implémentation – ils ne forment pas un inventaire fonctionnel du système Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exemple de cas d’utilisation On ne peut retirer de l'argent que dans la limite du contenu du coffre du distributeur débite Retirer de l'argent Ravitailler le coffre Client Eteindre/allumer le distributeur Agent de maintenance L'agent de maintenance doit eteindre le distributeur avant de ravitailler le coffre Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exercice : cas d’utilisation Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les diagrammes de classes • Un diagramme de classes fait abstraction des aspects dynamiques et temporels • Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits – On peut par exemple se focaliser sur • les classes qui participent à un cas d'utilisation • les classes associées dans la réalisation d'un scénario précis • la structure hiérarchique d'un ensemble de classes – On peut aussi avoir recours aux associations entre classes Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exercice : diagramme de classes Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les diagrammes de collaboration • Les diagrammes de collaboration montrent des interactions entre objets – Ils permettent de représenter le contexte d'une interaction, car on peut y préciser les états des objets qui interagissent • Exemple AF-A320 : Avion Décoller (simple) Etat = a_terre TourDeControle Attérir (dérobant) DA-B737 : Avion Etat = en_vol Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exercice : diagramme de collaboration Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Les diagrammes de séquences • Les diagrammes de séquences permettent de représenter des collaborations entre objets selon un point de vue temporel – on y met l'accent sur la chronologie des envois de messages • Les diagrammes de séquences peuvent servir à illustrer des cas d'utilisation • L'ordre d'envoi des messages est déterminé par leur position sur l'axe vertical du diagramme – le temps s'écoule "de haut en bas" de cet axe Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Axe temporel des diagrammes de séquences Objet : Classe Message simple Temps Message asynchrone Message synchrone Créer NouvelObjet : Classe Détruire Message de renvoi Lignes de vie Période d’activation Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Conditions dans les diagrammes de séquences AutreObjet Objet Message asynchrone Renvoi explicite SI <Condition> Alors Sinon Cas A Cas B Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Exercice : diagramme de séquences Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Problème • On se propose de modéliser avec UML le fonctionnement du cabinet d’un médecin généraliste – Les cas d’utilisation devront mettre en évidence les acteurs et leurs interactions avec le système – Si nécessaire, un diagramme de classes présentera les spécificités des entités impliquées – Un ou des diagrammes de collaboration préciseront les interactions entre objets et/ou classes – Un diagramme de séquences devra montrer les collaborations dans le temps et/ou illustrer des cas d’utilisation Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004 Bibliographie • Livres – Modélisation objet avec UML. P-A Muller, N Gaertner. Eyrolles – Exercices corrigés d’UML : Génie logiciel. P André, A Vailly. Ellipses Marketing • Sites Internet – Introduction à la notation UML : http://www.commentcamarche.net/uml/umlintro.php3 – UML en français : http://uml.free.fr – Introduction to OMG’s UML : http://www.omg.org/gettingstarted/what_is_uml.htm Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004