UML (Diagramme de classes) Unified Modeling Language

Documents pareils
UML. Diagrammes de classes (suite) Delphine Longuet.

GOL502 Industries de services

UML (Paquetage) Unified Modeling Language

IFT2255 : Génie logiciel

3. UML - Unified Modeling Language Diagrammes statiques

Bases de données. Chapitre 1. Introduction

Diagramme de classes

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Conception des bases de données : Modèle Entité-Association

OCL - Object Constraint Language

Université de Bangui. Modélisons en UML

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Modèle Entité/Association

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Les diagrammes de modélisation

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre I : le langage UML et le processus unifié

Rappel sur les bases de données

Cours de Génie Logiciel

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Modélisation des données

MEGA Database Builder. Guide d utilisation

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

UML et les Bases de Données

Cours STIM P8 TD 1 Génie Logiciel

Chap. 3: Le modèle de données entité-association (E.A.)

Conception, architecture et urbanisation des systèmes d information

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

II. Modèle conceptuel le modèle entité-association

Modélisation de bases de données : Le modèle relationnel

Programmation Orientée Objet

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Générer du code à partir d une description de haut niveau

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Table des matières Sources

Modèle conceptuel : diagramme entité-association

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Introduction au Génie Logiciel

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Génie Logiciel Orienté Objet UML

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Introduction aux Bases de Données

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Information utiles. webpage : Google+ : digiusto/

Analyse,, Conception des Systèmes Informatiques

Ingénierie des Modèles. Méta-modélisation

Premiers Pas en Programmation Objet : les Classes et les Objets

Le Guide Pratique des Processus Métiers

Chapitre 1 Généralités sur les bases de données

Génie Logiciel Avancé Cours 3 Le modèle à objets

16H Cours / 18H TD / 20H TP

alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Le niveau conceptuel : la modélisation des bases de données

Développement d un interpréteur OCL pour une machine virtuelle UML.

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Concevoir et déployer un data warehouse

Modéliser des données, l exemple du modèle entité-association

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Direction des Ressources Humaines 14/10/04 CLASSIFICATION DU GROUPE CREDIT COOPERATIF

Description de la formation

Programmation en Java IUT GEII (MC-II1) 1

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

OBJECTIFS ET ARCHITECTURE DES SGBD

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

TP1 : Initiation à Java et Eclipse

Systèmes d information et bases de données (niveau 1)

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Méthodologies Orientées-Objet!

CONCEPTION DE PROJET SIG AVEC UML

A. Définition et formalisme

Management des processus opérationnels

Je découvre le diagramme de Venn

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Gestion des Identités et des Autorisations: Modèle générique

Object Constraint Language (OCL) Une introduction

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Chapitre VI- La validation de la composition.

Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz

Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Nom de l application

Présentation du Modèle de Référence pour les Bibliothèques FRBR

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Bases de Données. Plan

Patrons de Conception (Design Patterns)

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Transcription:

UML (Diagramme de classes) Unified Modeling Language

Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association (Nom, rôles) Association réflexive Navigabilité d une association Contraintes sur association Qualificateur d une association Classe associative Types d association (Agrégation, composition, généralisation / spécialisation) Classe et opération abstraites 2

Diagramme de classes Apport en grande partie de la méthode OMT (Rumbaugh) S apparente à un diagramme entité-association (MERISE). Il présente les différents objets (classes) du système ainsi que les liens entre ces objets (associations) Diagramme le plus important dans une modélisation objet 3

Diagramme de classes Objectifs Déterminer les données qui seront manipulées par le système Ces données sont organisées en classes Donner la structure statique de ces données Ce diagramme permet de décrire la structure interne de chacune des classes Représenter les relations statiques existant entre les différentes données du système La navigation parmi les classes est rendue possible par l existence d associations qui les unissent 4

Diagramme de classes Objectifs (suite) Poser les fondements stables régissant la totalité de l architecture du système Ce modèle est le garant du respect du paradigme objet Faire abstraction des aspects temporels et dynamiques de la modélisation Seul l aspect statique compte, la dynamique est prise en charge par d autres modèles 5

Diagramme de classes (Définition) Le diagramme de classes est un diagramme entités-associations décrivant les différentes classes, leur structure et les associations statiques les unissant Le diagramme de classes est un diagramme structurel ne présentant que les classes et pas les instances de classe Il permet de décrire la structure interne des classes en terme d attributs et d opérations Il permet de représenter les associations statiques entre les classes, mais ne décrit pas comment les liens effectifs entre les instances sont effectués 6

Diagramme de classes Exemple Client 1 possède 0..1 CompteCourant 1 souscrit * achète 0..1 Plan Epargne Actions * Actions 7

Classe (Définition) Une classe est une abstraction de choses du monde réel possédant des caractéristiques et des comportements communs La classe est la fabrique, le moule, à partir duquel on fabrique les instances (les objets) Seules les caractéristiques pertinentes pour le problème étudié entrent dans la composition de la classe 8

Classe Abstraction Abstraction Chien Personne age pedigree age nationalité courir() aboyer() se promener() crier() 9

Classe (Notation) Une classe est représentée par un rectangle découpé en 3 parties Sont présents : le nom de la classe la liste de ses attributs la liste de ses opérations Notation << Stéréotype >> Nom paquetage :: Nom classe Attributs Opérations 10

Nom de la classe Le nom de la classe peut être précédé d un stéréotype qualifiant le type de la classe Le nom de la classe est préfixé par un nom de paquetage si la classe est externe au paquetage courant Le nom d une classe abstraite est donné en Italique << Sécurité >> login :: Code secret Code N << Métier >> Compte Créditer() Débiter() << Métier >> Compte chèque N de compte 11

Attribut de la classe (Définition et notation) Un attribut est une caractéristique intrinsèque partagée par tous les objets d une classe L attribut possède un nom unique dans la classe Notation On peut associer à l attribut le type des valeurs qu il peut prendre On peut donner une valeur initiale à l attribut << Stéréotype >> Nom paquetage :: Nom classe nomattribut1 : typeattribut1 = valeurinitiale1 nomattributn : typeattributn = valeurinitialen 12

Attribut de la classe Recommandations pour trouver les attributs Les 3 règles d or de l attribut : Eliminer les attributs caractérisant une autre classe ex : l attribut «nom client» dans la classe «comptebancaire» Se méfier des attributs multi-valués, ils cachent souvent euxmêmes une classe ex : l attribut «enfants» dans la classe «Personne» Se méfier des attributs structurés, ils cachent souvent euxmêmes une classe ex : l attribut «Adresse» dans une classe «Personne» 13

Attribut de la classe Recommandations pour trouver les attributs Ne donner les types et les valeurs initiales des attributs qu en phase de Conception Lorsqu une classe possède de très nombreux attributs se poser la question du découpage de la classe 14

Opération de la classe (Définition et notation) Une opération est un service que propose une classe sur son interface L opération possède un nom pas forcément unique dans la classe On peut associer à l opération ses arguments Notation << Stéréotype >> Nom paquetage :: Nom classe On peut associer à l opération son type de retour nomopération1 (nomarg1 : TypeArg1 = valeurpardéfaut1,...) : typeretour1 nomopérationn (nomargn : TypeArgN = valeurpardéfautn,...) : typeretourn 15

Opération de la classe Recommandations pour trouver les opérations Ne donner les informations sur les arguments et le type de retour qu en phase de Conception Lorsqu une classe possède de très nombreuses opérations se poser la question du découpage de la classe 16

Exemple de classe Compte numero solde effectuervirement() Accesseurs getsolde() setsolde() getnumero() setnumero() 17

Visibilité et Portée des constituants de la classe La visibilité précise la manière dont un nom peut être vu et utilisé par les autres (public, protégé, privé) La portée précise dans quel contexte un nom prend sa signification (instance ou classe) Par défaut, la visibilité est publique et la portée est d instance Notation Nom Classe +Attribut public #Attribut protégé -Attribut privé Attribut de classe /Attribut dérivé +Opération publique() #Opération protégée() -Opération privée() Opération de classe() 18

Association (Définition) Une association est une abstraction de liens qui peuvent exister entre les instances de plusieurs classes Dans le monde réel, les objets sont liés physiquement ou fonctionnellement les uns avec les autres Ces liens entre objets se traduisent au niveau des classes par des associations Une association traduit donc une relation structurelle statique entre deux ou plusieurs classes 19

Association Abstraction Abstraction Chien Abstraction Personne âge pedigree âge nationalité courir() aboyer() se promener() crier() 20

Association (Notation) Une association est représentée au moyen d un trait orienté reliant chacune des classes concernées Il est possible de nommer l association et de préciser les rôles tenus par chaque classe Notation Client achète Voiture Personne salarié employeur Société 21

Nom de l association Le nom de l association est en général une forme verbale active ou passive qui décrit globalement le lien Notation Le nom de l association est facultatif Client achète Voiture Le nom doit apparaître sur l association, mais ne doit pas être rattaché à l une des extrémité 22

Rôles de l association Le rôle permet de décrire, à l aide d un nom, comment une classe perçoit une autre classe au travers de l association Notation Un rôle doit figurer à l extrémité de l association qu il qualifie Personne salarié employeur Société Les rôles sont facultatifs L association peut faire figurer les deux, un seul ou aucun des rôles 23

Nom et rôles de la classe (Recommandations) L utilisation du nom et des rôles d une association n est pas exclusif Cependant, les deux notations sont rarement utilisées conjointement L usage du nom et des rôles n est pas obligatoire, mais il s avère indispensable si deux objets sont reliés par plusieurs associations ou si une association est réflexive 24

Association réflexive Une association peut mettre en jeux deux classes distinctes Client achète Voiture Mais, elle peut aussi apparaître sur une seule et même classe Dans ce cas précis, l association est dite réflexive Exemple d association classique Personne Vit en couple avec Exemple d association réflexive 25

Navigabilité de l association La navigabilité d une association permet de définir dans quel sens l association peut être parcourue La navigabilité d une association est modélisée par une flèche sur l extrémité pouvant être atteinte par navigation La navigabilité peut être bidirectionnelle L absence de flèche sur les deux extrémités signifie que l association est bidirectionnelle Notation Personne a vu Film Chaque personne a accès aux films qu'elle a déjà vus, mais à partir d'un film, on interdit de retrouver la liste des personnes l'ayant vu Client achète Voiture L association peut être parcourue dans les deux sens 26

Multiplicités de l association La cardinalité d un ensemble est le nombre d éléments de cet ensemble La multiplicité est la spécification des valeurs de cardinalité admissibles pour un ensemble La multiplicité est associée à une extrémité de l association et indique combien d instances de la classe considérée peuvent être liées à une instance de l autre classe Notation Personne emploie Société Une société emploie de une à plusieurs personnes Une personne est employée par une seule société Client 1..* 1 achète 0..1 * Voiture Un client achète zéro à plusieurs voitures Une voiture peut être achetée par un client au plus 27

Multiplicités de l association La multiplicité est une spécification respectant les conventions suivantes : 1 : un et un seul (notation facultative) 0..1 : zéro ou un N M..N : exactement N (N: entier naturel) : de M à N (deux entiers naturels) * : de zéro à plusieurs 0..* : de zéro à plusieurs 1..* : de un à plusieurs N..* : N ou plus (N: entier naturel) 28

Contraintes sur association D autres types de contraintes existent sur une association : Des contraintes prédéfinies : Les contraintes ensemblistes : {Sous-ensemble} Les contraintes d ordonnancement : {Ordonné} Les contraintes d exclusion : {Ou - exclusif} Des contraintes spécifiques au moyen du langage OCL (Object Constraint Language) 29

Contraintes ensemblistes sur association Ce type de contrainte permet de modéliser le cas où un ensemble d associations est inclus dans un autre ensemble d association Notation Prix est nominé * * {Sous-ensemble} * 1 est lauréat Personne Les personnes lauréates d un prix sont obligatoirement choisies parmi celles qui sont nominées pour ce prix 30

Contraintes d ordonnancement sur association Ce type de contrainte permet de modéliser le cas où pour une instance donnée, l ensemble des instances avec lesquelles elle est en relation doit être ordonné Notation Grand prix {Ordonné} 0..* 0..6 est dans les points Pilote Lors d un grand prix au maximum 6 pilotes peuvent être dans les points Ces 6 pilotes sont classés à l arrivée 31

Contraintes d exclusion sur association Ce type de contrainte permet de modéliser le cas où pour une instance donnée d une classe, une seule association prise parmi plusieurs possibles, peut être valide à un instant donné Notation Société employé {Ou - exclusif} 0..* Personne employeur Une personne peut être soit employée par une société, soit employeur d une société Mais une personne ne peut pas être à la fois employeur et employé 32

Qualificateur d une association Le qualificateur est un attribut ou un ensemble d attributs permettant de partitionner l ensemble des instances d une classe qui sont en relation avec une instance donnée Le qualificateur permet de restreindre la multiplicité de l association Notation Classe A Qualificateur Classe B Qualificateur = attribut1,, attributn 33

Qualificateur d association Exemples Université possède 1..* Salle Une université possède de une à plusieurs salle(s) Une salle appartient à une et une seule université Université numéro possède 0..1 Salle Une université possède au plus une salle ayant ce numéro Une salle appartient à une et une seule université 34

Qualificateur d association Exemples Personne possède 0..* Compte bancaire Une personne possède de zéro à plusieurs compte(s) bancaire(s) Un compte bancaire appartient à une et une seule personne Personne agence possède 0..* Compte bancaire Une personne possède de zéro à plusieurs compte(s) bancaire(s) par agence Un compte bancaire appartient à une et une seule personne 35

Classe associative Une association peut être matérialisée par une classe dans une des circonstances suivantes : si l association est porteuse d attributs si l association se matérialise par un objet concret dans le monde réel si l association est de multiplicité M.. N Une classe associative est une classe à part entière Elle est modélisée par un lien en pointillé allant de la classe vers l association concernée Notation Classe A Classe associative Classe B 36

Classe associative Exemples Société nom numsiret adresse Emploi 1..* Personne nom prenom age fonction salaire Etudiant nom prénom adresse 1..* Résultat 1..* Concours nom école date lieu note 37

Les différents types d association Il existe plusieurs types d association L agrégation Forme spéciale d association entre un tout et une partie La composition Forme spéciale d agrégation où le cycle de vie de la partie est régi par celui du tout L héritage Forme spéciale d association permettant de factoriser les caractéristiques et comportement communs à un ensemble de classes L association simple Ce sont les associations qui ne se réclament d aucune des catégories précédemment citées 38

Agrégation Une agrégation est une association non symétrique dans laquelle l une des deux classes joue un rôle prépondérant Une agrégation est une relation tout-partie entre un agrégat (le tout) et un composant (la partie) L agrégation est représentée par un losange blanc du côté de l agrégat Le composant peut appartenir simultanément à plusieurs agrégats Le cycle de vie des composants n est pas tributaire de celui de l agrégat Personne étudie 1..* 0..* Université Une personne peut étudier dans aucune à plusieurs universités Une université peut accueillir de une à plusieurs personnes 39

Composition Une composition est une agrégation à part entière La composition est représentée par un losange noir du côté de l agrégat Le composant ne peut pas appartenir simultanément à plusieurs agrégats (multiplicité 1 ou 0..1 côté agrégat) Le cycle de vie des composants est tributaire de celui de l agrégat Si la multiplicité est 0..1 côté agrégat, le composant peut ne pas être associé à l agrégat immédiatement, mais une fois l association effectué le composant vit et meurt avec l agrégat Université possède 1..* Salle Une université est composée de une à plusieurs salles Une salle n appartient qu à une et une seule université 40

Composition : abus de langage! Attention : on parle très souvent de composition pour désigner une simple association entre deux classes. Cela ce traduit par l existence d un attribut qui référence une (des) instance(s) d une autre classe. Personne * Compte Une personne possède des comptes mais n est pas composée de comptes 41

Généralisation / Spécialisation La généralisation / spécialisation est une relation de classification entre une classe plus générale et une classe plus spécialisée Notation Super-classe On l appelle aussi relation d héritage ou relation «estune-sorte-de» Spécialisation Généralisation La généralisation est représentée au moyen d une flèche pointant de la classe la plus spécialisée vers la classe la plus générale Sous-classe 42

Généralisation / Spécialisation Exemple numéro solde Compte getsolde() CompteCourant montantdécouvertautorise getdecouvert() tauxepargne CompteEpargne calculerintérêts() 43

Classe et opération abstraites Une classe abstraite est une classe pour laquelle il n est pas possible de créer d instances directement Son nom est écrit en italique Une opération abstraite d une classe A est une opération ne possédant pas d implémentation dans A mais qui doit obligatoirement être implémentée dans les sous-classes de A Sa signature est écrite en italique Forme géométrique Dessiner() Rectangle Rond Toute classe contenant au moins une opération abstraite est abstraite Dessiner() Dessiner() 44

Discriminant sur relation d héritage La spécialisation d une super-classe peut avoir lieu selon différents critères simultanés Chacun de ces critères est représenté par une chaîne de caractères et s appelle un discriminant Le discriminant est positionné à côté de la sous-arborescence qu il qualifie Personne sexe travail Homme Femme Etudiant Employé 45

Contraintes sur généralisation / spécialisation Il est possible d exprimer deux types de contraintes prédéfinies sur les sous-classes d une généralisation: La contrainte de complétude Précise l état d avancement de la classification proposée par la généralisation / spécialisation La contrainte de chevauchement Contrainte ensembliste sur les instances de la sous-classe visà-vis des instances de la super-classe 46

Contrainte de complétude sur relation d héritage La contrainte de complétude permet d indiquer si la généralisation peut être étendue ou non {complète} indique que l on ne peut plus ajouter de classe à l arborescence Personne {complète} Homme Femme {incomplète} indique que l arborescence peut être complétée ultérieurement {incomplète} Mammifère Chien Chat Loup 47

Contrainte de chevauchement sur relation d héritage La contrainte de chevauchement apporte des précisions sur la nature des instances de la super-classe {disjoint} indique que l ensemble des instances des sous-classes forment une partition de la super-classe {chevauchement} indique qu il peut exister des instances qui soient à la fois instance de deux sousclasses Personne {disjoint} Homme Femme Véhicule {chevauchement} Terrestre Marin 48

Diagramme de classes (Recommandations) Toujours garder à l esprit qu un diagramme de classe propose une vision statique des données du problème Les associations d un diagramme de classes sont statiques, mais la création des liens entre objets est dynamique Ne jamais hésiter à donner les multiplicités 49

Diagramme de classes (Recommandations) Dans la mesure du possible, éviter les discriminants dans les associations de type généralisation / spécialisation Eviter l utilisation des contraintes de chevauchement dans les associations de type généralisation / spécialisation Privilégier la délégation à l héritage 50