UML. Diagrammes de classes. Delphine Longuet. Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2015-2016



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

Diagramme de classes

UML (Diagramme de classes) Unified Modeling Language

GOL502 Industries de services

Université de Bangui. Modélisons en UML

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

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

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

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

A. Définition et formalisme

Les diagrammes de modélisation

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

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

UML et les Bases de Données

3. UML - Unified Modeling Language Diagrammes statiques

Bases de données. Chapitre 1. Introduction

Chapitre VI- La validation de la composition.

Table des matières Sources

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

UML (Paquetage) Unified Modeling Language

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Héritage presque multiple en Java (1/2)

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

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

MEGA Database Builder. Guide d utilisation

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

Chapitre 2. Classes et objets

TD/TP PAC - Programmation n 3

Méthodologies Orientées-Objet!

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

Ingénérie logicielle dirigée par les modèles

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

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

Modélisation des données

Cours de Génie Logiciel

Chapitre I : le langage UML et le processus unifié

IFT2255 : Génie logiciel

Application web de gestion de comptes en banques

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

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

OCL - Object Constraint Language

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

Cours STIM P8 TD 1 Génie Logiciel

Information utiles. webpage : Google+ : digiusto/

Object Constraint Language (OCL)

RÈGLES DE TRANSFORMATION DU MCD AU MLD (MRD)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Introduction aux Bases de Données

Modèle Entité/Association

Traduction des Langages : Le Compilateur Micro Java

2 Grad Info Soir Langage C++ Juin Projet BANQUE

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

TD/TP PAC - Programmation n 3

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

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

TP1 : Initiation à Java et Eclipse

Site Web de paris sportifs

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

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

Import de comptes (xls)

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Cours 1 : introduction

I4 : Bases de Données

Objets et Programmation. origine des langages orientés-objet

Généralités sur le Langage Java et éléments syntaxiques.

Génie Logiciel Orienté Objet UML

Auto-évaluation Programmation en Java

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Classes et Objets en Ocaml.

Patrons de Conception (Design Patterns)

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

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Modèle conceptuel : diagramme entité-association

Introduction aux concepts d ez Publish

Ecran principal à l ouverture du logiciel

Programmation Orientée Objet

Initiation à JAVA et à la programmation objet.

Diagrammes de Package, de déploiement et de composants UML

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

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

Le langage UML 2.0 Notion d Objet

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

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Frais et systèmes nationaux d'aides financières aux étudiants dans l'enseignement supérieur en Europe

COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM

Diagramme de déploiement

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

Génie Logiciel avec Ada. 4 février 2013

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

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Cas d'utilisation, une introduction

LES SYSTEMES DE GESTION DE BASES DE DONNEES

Recherche dans un tableau

4. Groupement d objets

Cours 1: Java et les objets

Transcription:

Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2015-2016 UML Diagrammes de classes Delphine Longuet delphine.longuet@lri.fr

Objets et classes Conception orientée objet : Représentation du système comme un ensemble d'objets interagissant Diagramme de classes Représentation de la structure interne du logiciel Utilisé surtout en conception mais peut être utilisé en analyse Diagramme d'objets Représentation de l'état du logiciel (objets + relations) Diagramme évoluant avec l'exécution du logiciel - création et suppression d'objets - modification de l'état des objets (valeurs des atributs) - modification des relations entre objets D. Longuet - UML 2

Objets et classes Objet Entité concrète ou abstraite du domaine d'application Décrit par : identité (adresse mémoire) + état (attributs) + comportement (opérations) nom de l'objet attributs opérations MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 déposer(montant : float) état (valeur des attributs) D. Longuet - UML 3

Objets et classes Classe : Regroupement d'objets de même nature (mêmes attributs + mêmes opérations) Objet = instance d'une classe MonCompteJoint : Compte nom de la classe MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 déposer(montant : float) numéro = 854126 devise = EUR solde = 2215,03 déposer(montant : float) MonCompteSuisse : Compte numéro = 70054568 devise = CHF instances de Compte numéro : int devise : Devise solde : float déposer(montant : float) attributs solde = 121000 déposer(montant : float) opérations D. Longuet - UML 4

Attributs Classes Caractéristique partagée par tous les objets de la classe Associe à chaque objet une valeur Type associé simple (int, bool...), primitif (Date) ou énuméré attributs type énuméré (pas une classe) Compte numéro : int devise : Devise solde : float déposer(montant : float) «enumeration» Devise EUR GBP USD CHF D. Longuet - UML 5

Attributs Classes Caractéristique partagée par tous les objets de la classe Associe à chaque objet une valeur Type associé simple (int, bool...), primitif (Date) ou énuméré Valeur des attributs : État de l'objet Objets différents (identités différentes) peuvent avoir mêmes attributs Jean1 : Personne prénom = "Jean" naissance = 10/07/1985 Jean2 : Personne prénom = "Jean" naissance = 10/07/1985 (mémoire) D. Longuet - UML 6

Opérations Classes Service qui peut être demandé à tout objet de la classe Comportement commun à tous les objets de la classe Ne pas confondre avec une méthode = implantation de l'opération Compte opérations numéro : int devise : Devise solde : float déposer(montant : float) D. Longuet - UML 7

Lien entre objets Relations entre objets relation binaire (en général) au plus un lien entre deux objets (pour une association) JeanDupont : Personne prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990 possède lien MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 D. Longuet - UML 8

Lien entre objets Relations entre objets relation binaire (en général) au plus un lien entre deux objets (pour une association) MarieDupont : Personne prénom = "Marie" adresse = "Montrouge" naissance = 4/12/1992 possède possède MonCompteJoint : Compte numéro = 854126 devise = EUR solde = 2215,03 JeanDupont : Personne prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990 possède possède MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 sescomptes MonCompteSuisse : Compte numéro = 70054568 devise = CHF solde = 121000 D. Longuet - UML 9

Lien entre objets Relations entre objets relation binaire (en général) au plus un lien entre deux objets (pour une association) MarieDupont : Personne prénom = "Marie" adresse = "Montrouge" naissance = 4/12/1992 sespropriétaires possède possède MonCompteJoint : Compte numéro = 854126 devise = EUR solde = 2215,03 JeanDupont : Personne prénom = "Jean" adresse = "Montrouge" naissance = 20/08/1990 possède possède MonLivretA : Compte numéro = 123456 devise = EUR solde = 3509,43 MonCompteSuisse : Compte numéro = 70054568 devise = CHF solde = 121000 D. Longuet - UML 10

Relations entre classes Association entre classes : Relation binaire (en général) Rôle : Nomme l'extrémité d'une association, permet d'accéder aux objets liés par l'association à un objet donné Multiplicité : Contraint le nombre d'objets liés par l'association Personne nom : string prénom : string adresse : string naissance : Date ouvrircompte(init : float) rôle sespropriétaires sescomptes 1..2 possède * nom de multiplicité l'association (optionnel) Compte numéro : int devise : Devise solde : float déposer(montant : float) Lien = instance d'association D. Longuet - UML 11

Attribut et association Rappel : Types des attributs simple, primitif ou énuméré En particulier, pas d'attribut dont le type est une classe du diagramme Compte numéro : int devise : Devise solde : float propriétaire : Personne déposer(montant : float) D. Longuet - UML 12

Attribut et association Rappel : Types des attributs simple, primitif ou énuméré En particulier, pas d'attribut dont le type est une classe du diagramme Mais association vers cette classe Personne nom : string prénom : string adresse : string naissance : Date ouvrircompte(init : float) sonpropriétaire 1 possède sescomptes * Compte numéro : int devise : Devise solde : float déposer(montant : float) D. Longuet - UML 13

Multiplicités Nombre d'objets de la classe B associés à un objet de la classe A A n B Exactement n A n,m,p B Exactement n ou m ou p A n..m B Entre n et m A n..* B Au moins n A * B Plusieurs (0 ou plus) D. Longuet - UML 14

Multiplicités en pratique Nombre d'objets de la classe B associés à un objet de la classe A A 1 B Exactement 1 A 0..1 B Au plus 1 (0 ou 1) A 1..* B Au moins 1 (jamais 0) A * B 0 ou plus D. Longuet - UML 15

Association réflexive Diagramme de classes Exemple de diagramme d'objets Personne nom : string prénom : string naissance : Date parents 2 * enfants association réflexive (d'une classe vers elle-même) JeanDupont : Personne MarieVernet : Personne nom = "Vernet" AnneBérou : Personne prénom = "Jean" prénom = "Marie" nom = "Bérou" naissance = 20/08/1990 naissance = 4/12/1992 prénom = "Anne" naissance = 14/12/1965 PierreDupont : Personne MichelDupont : Personne VictorDupont : Personne prénom = "Pierre" naissance = 30/05/1992 prénom = "Michel" prénom = "Victor" naissance = 2/09/1959 LucieDupont : Personne naissance = 12/07/2012 prénom = "Lucie" D. Longuet - UML naissance = 10/02/1996 16

Association multiple Diagramme de classes plusieurs associations entre deux classes Personne nom : string 1 propose * Appartement adresse : string prénom : string loue pièces : int naissance : Date * * loyer : float Exemple de diagramme d'objets JeanDupont : Personne prénom = "Jean" naissance = 20/08/1990 loue propose BLR145 : Appartement adresse = "145 av gal Leclerc, Bourg-la-Reine" pièces = 2 loyer = 900 AlainDupuis : Personne nom = "Dupuis" prénom = "Alain" naissance = 15/01/1983 loue Cach23 : Appartement adresse = "23 rue Dumotel, Cachan" pièces = 3 loyer = 1200 D. Longuet - UML 17

Orientation d'une association Navigabilité Restreint l'accessibilité des objets Depuis un A, on a accès aux objets de B qui lui sont associés, mais pas l'inverse A rôle rôle B Exemple (listes chaînées) Liste 1 tête 0..1 Nœud contenu : int 1 0..1 suivant Par défaut, associations navigables dans les deux sens (pas de flèche) D. Longuet - UML 18

Classe-association Permet de paramétrer une association entre deux classes par une classe Personne nom : string prénom : string naissance : Date 1..* * Emploi Entreprise nom : string ville : string intitulé : string début : Date fin : Date classe-association Instance unique de la classe-association pour chaque lien entre objets Équivalence en termes de classes et d'associations : Personne nom : string prénom : string naissance : Date 1 * Emploi intitulé : string début : Date fin : Date 1..* 1 Entreprise nom : string ville : string D. Longuet - UML 19

Exemple de diagramme d'objets Classe-association AlainDupuis : Personne nom = "Dupuis" prénom = "Alain" naissance = 15/01/1983 DevDupuisFnac : Emploi intitulé = "Développeur web" début =... fin =... Fnac : Entreprise nom = "Fnac" ville = "Bordeaux" DevDupontEssilor : Emploi MarieDupont : Personne intitulé = "Développeur web" début =... prénom = "Marie" fin =... Essilor : Entreprise naissance = 4/12/1992 nom = "Essilor" ProjDupontEssilor : Emploi ville = "Créteil" intitulé = "Chef de projet web" JeanDupont : Personne début =... fin =... prénom = "Jean" naissance = 20/08/1990 SecDupontEssilor : Emploi intitulé = "Secrétaire RH" début =... fin =... D. Longuet - UML 20

Association n-aire Association reliant plus de deux classes Enseignant 1 Étudiant 1..* 1 Cours association ternaire Instance d'une association n-aire = lien entre n objets Ens1:Enseignant C1:Cours Étu1:Étudiant Étu2:Étudiant Étu3:Étudiant D. Longuet - UML 21

Association n-aire Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre d'objets qui lui sont associés Ens1:Enseignant C1:Cours 1..* instances d'étudiant C1:Cours Étu1:Étudiant 1 instance d'enseignant Ens:Enseignant Étu1:Étudiant 1 instance de Cours D. Longuet - UML 22

Agrégation Association particulière entre classes Dissymétrique : une classe prédominante sur l'autre Relation de type composant-composite Deux types d'agrégation Agrégation faible Composition Exemple Lecteur de contenu audio permettant de créer des listes de lecture Liste de lecture * 1..* Morceau 1..* 1 Album agrégation faible composition D. Longuet - UML 23

Agrégation par référence Agrégation faible Le composite fait référence à ses composants La création ou destruction du composite est indépendante de la création ou destruction de ses composants Un objet peut faire partie de plusieurs composites à la fois Exemple Une liste de lecture est composée d'un ensemble de morceaux Un morceau peut appartenir à plusieurs listes de lecture Supprimer la liste ne supprime pas les morceaux Liste de lecture * 1..* Morceau agrégation faible D. Longuet - UML 24

Agrégation par valeur Composition Le composite contient ses composants La création ou destruction du composite entraîne la création ou destruction de ses composants Un objet ne fait partie que d'un composite à la fois Exemple Un morceau n'appartient qu'à un album La suppression de l'album entraîne la suppression de tous ses morceaux Morceau 1..* 1 Album composition D. Longuet - UML 25

Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Spécialisation : raffinement d'une classe en une sous-classe Généralisation : abstraction d'un ensemble de classes en super-classe CompteÉpargne CompteCourant numéro : int numéro : int devise : Devise devise : Devise solde : float solde : float plafond : float découvertautorisé : float taux : float fraisdécouvert : float déposer (montant : float) déposer(montant : float) calculerintérêts() : float D. Longuet - UML 26

Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Spécialisation : raffinement d'une classe en une sous-classe Généralisation : abstraction d'un ensemble de classes en super-classe spécialisation Compte numéro : int devise : Devise solde : float déposer(montant : float) super-classe généralisation CompteÉpargne CompteCourant plafond : float découvertautorisé : float sous-classes taux : float fraisdécouvert : float calculerintérêts() : float D. Longuet - UML 27

Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence Héritage : Construction d'une classe à partir d'une classe plus haute dans la hiérarchie (partage des attributs, opérations, contraintes...) classes héritant de la classe Compte Compte numéro : int devise : Devise solde : float déposer(montant : float) CompteÉpargne CompteCourant plafond : float découvertautorisé : float taux : float fraisdécouvert : float calculerintérêts() : float D. Longuet - UML 28

Classe abstraite Classe sans instance, seulement une base pour classes héritées Notation : nom de la classe en italique (ou stéréotype «abstract») classe abstraite car un compte n'existe pas en soi Compte numéro : int devise : Devise solde : float déposer(montant : float) CompteÉpargne CompteCourant plafond : float découvertautorisé : float taux : float fraisdécouvert : float calculerintérêts() : float D. Longuet - UML 29