Diagramme de classes



Documents pareils
3. UML - Unified Modeling Language Diagrammes statiques

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

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

Université de Bangui. Modélisons en UML

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

UML (Diagramme de classes) Unified Modeling Language

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

UML. Diagrammes de classes (suite) Delphine Longuet.

Les diagrammes de modélisation

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

Cours de Génie Logiciel

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

IFT2255 : Génie logiciel

Chapitre I : le langage UML et le processus unifié

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MEGA Database Builder. Guide d utilisation

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

Table des matières Sources

OCL - Object Constraint Language

Programmation Orientée Objet en C#

Chapitre 2. Classes et objets

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

Application web de gestion de comptes en banques

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 )

OASIS Date de publication

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

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

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

TP1 : Initiation à Java et Eclipse

INITIATION AU LANGAGE JAVA

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

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

Modélisation UML. Christine Solnon INSA de Lyon - 3IF 1/140.

Préparer la synchronisation d'annuaires

GOL502 Industries de services

UML et les Bases de Données

Initiation à JAVA et à la programmation objet.

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

Cours STIM P8 TD 1 Génie Logiciel

Object Constraint Language (OCL)

Chapitre VI- La validation de la composition.

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Traduction des Langages : Le Compilateur Micro Java

WINDOWS SHAREPOINT SERVICES 2007

Méthodologies Orientées-Objet!

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Projet Active Object

Architecture d'entreprise : Guide Pratique de l'architecture Logique

RMI le langage Java XII-1 JMF

Programmation par composants (1/3) Programmation par composants (2/3)

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Compte-rendu de projet de Système de gestion de base de données

Qu'est-ce que le BPM?

2 Grad Info Soir Langage C++ Juin Projet BANQUE

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Module ebay pour PrestaShop Guide du vendeur

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

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

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Description de la formation

MEDIAplus elearning. version 6.6

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

as Architecture des Systèmes d Information

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

A. Définition et formalisme

Programmer en JAVA. par Tama

Nouveautés FDS Pour créer des équipements 2D et les publier à partir d'autocad

Bases de données. Chapitre 1. Introduction

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

Plan Pédagogique du cours

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

Introduction aux services Active Directory

Chapitre 1 : Introduction aux bases de données

Le Guide Pratique des Processus Métiers

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

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Guide de prise en main Symantec Protection Center 2.1

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

Le langage UML 2.0 Notion d Objet

Didacticiel du service cartographique en cache

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

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

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

Guide de déploiement

ACTIVITÉ DE PROGRAMMATION

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

UML (Paquetage) Unified Modeling Language

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

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

Modélisation des données

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Configuration d'un annuaire LDAP

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Transcription:

Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage

Diagramme de classes : classe Une classe abstraite a son nom en italique (ou marquée avec le stéréotype <<abstract>>). Le stéréotype <<interface>> est utilisé pour les interfaces. Une classe générique donne son paramètre de type. Autres stéréotypes : <<type>> (la classe représente un type de données), <<utility>> (classe contenant des méthodes statiques), <<metaclass>> (classe dont les instances sont des classes),... classe générique instanciation d'une classe générique

Diagramme de classes : attributs Format d'attribut : [visibilité] ["/"] nom [multiplicité] [":" type] ["=" valeur initiale] ["{" propriétés "}"] / : indique que l'attribut est dérivé (redondant, calculé à partir d'autres) Visibilité : + (public), - (privé), # (protégé), ~ (paquetage) Multiplicité : n (exactement n instances), n..m (de n à m instances), a,b (exactement a ou exactement b instances) Propriété : redefines, readonly, frozen, ordered, Un attribut statique est souligné Exemples : # / age : int = 0 ~ notes[1..12] : int {ordered} + PI : float = 3.1415927 {frozen}

Diagramme de classes : méthodes Format de méthode : [visibilité] nom "(" [paramètres] ")" [":" type de retour] Visibilité : + (public), - (privé), # (protégé), ~ (paquetage) Paramètre : [mode] nom : type mode = in (défault), out ou inout Une méthode statique est soulignée, une méthode abstraite est en italique Un constructeur est nommé create et un destructeur destroy Exemples : + trier (inout tableau : int[]) + getname() : String

Diagramme de classes : associations (1/2) nombre d'instances de C1 pouvant être associées à une instance de C2 sens de lecture Multiplicité : *, 1, 0..1, 1..1, 0..*, 1..*, 3..7, Exemple : un joueur dirige un groupe de joueurs, il joue le rôle de chef pour une équipe. Un groupe a exactement un chef et un joueur peut diriger au plus 3 équipes. En termes d'implémentation, C1 aura un attribut nommé rôle2 (ou une collection d'attributs si multiplicité2 est supérieure à 1).

Diagramme de classes : associations (2/2) Il est possible de spécifier la navigabilité d'une association et la visibilité des rôles. un Joueur n'a pas attribut privé de lien navigable vers l'équipe qu'il dirige un GroupeDeJoueurs a un attribut chef Propriétés sur les extrémités : addonly, frozen, ordered, Propriétés entre associations : xor, subset,... un Modérateur ne peut pas jouer le chef d'un groupe en est aussi membre

Diagramme de classes : associations dérivées Il est possible de spécifier qu'une association est dérivée c'est-à-dire déduite d'autres. Les associations dérivées peuvent être spécifiées pour améliorer la lisibilité du diagramme. deux syntaxes possibles

Diagramme de classes : associations synchronisées Il est possible de spécifier que deux associations sont synchronisées c'est-à-dire se déduisent l'une de l'autre.

Diagramme de classes : types d'associations Une association qualifiée entre classes est l'équivalent d'un attribut de type tableau associatif : l'instance est lié à une valeur clé. Une association n-aire permet d'associer plus de 2 classes (peu lisible, à éviter) : Une association réflexive associe une classe à elle-même :

Diagramme de classes : classe-association Une association peut être réifiée par une classe : Une classe-association peut ne pas être nommée :

Diagramme de classes : composition et agrégation Une composition est une association de type composant/composite : - transitive et antisymétrique - la création ou destruction du composite entraîne celle des composants - un composant ne peut appartenir qu'à un composite Dans le cas d'une agrégation, les composants ont une existence indépendante de celle du composite et peuvent appartenir à plusieurs composites : Une composition est une agrégation forte. La distinction entre composition et agrégation dépend souvent du domaine.

Diagramme de classes : généralisation La généralisation correspond à la notion d'héritage. héritage multiple deux syntaxes possibles

Diagramme de classes : généralisation vs composition Exemple : un personnage a un nom et un sexe, peut parler, peut accoucher si c'est une femme et faire pipi debout si c'est un homme. Exemple : un personnage peut parler, peut être rouge ou bleu.

Diagramme de classes : généralisation où composition? La composition peut être préférable à la généralisation, car elle est plus résistante aux changements. Exemple : finalement, les personnages peuvent aussi être verts La composition peut même servir à attribuer des comportements différents à des instances de la même classe (délégation). N'utiliser que la composition est cependant aussi dangereux que ne pas l'utiliser.

Diagramme de classes : stéréotypes Les liens de généralisation peuvent porter des propriétés : {disjoint}, {complete}, {leaf}, {root}, partition Des liens de dépendance typés ou non peuvent exister entre classes.

Diagramme de classes : interfaces Les interfaces sont spécifiées par un stéréotype et peuvent être réalisées (implémentées) ou utilisées par des classes. réalisation utilisation

Diagramme de classes : classes internes Les classes internes sont spécifiées par un type de lien particulier avec leur classe englobante.

Diagramme d'objets Un diagramme d'objets décrit l'état des objets dans le système en train de s'exécuter à un moment donné. Il permet de représenter un cas de test, mais aussi d'analyser des exemples d'exécution. les liens représentent des attributs ou des dépendances

Diagramme de paquetages (1/2) Un diagramme de paquetage décrit à grande échelle l'architecture du système. sous nom du paquetage paquetage

Diagramme de paquetages (2/2) Autre syntaxe possible : Stéréotypes : les éléments publics de pack2 sont ajoutés à l'espace de nommage de pack3 les éléments publics de pack1 sont visibles depuis pack3 Attention aux ambiguités en cas d'éléments de même nom! pack3 «étend» le contenu de pack4

Modèle d'analyse Dans UP, le modèle d'analyse décrit le système d'un point de vue structurel. Il est construit à partir du modèle de cas d'utilisation. Il permet de définir l'architecture générale du système à l'aide principalement des diagrammes de classes et de paquetages, complétés avec des diagrammes d'objets et d'interaction. Les classes n'ont pas à être forcément détaillées à ce stade (types des attributs, visibilité des membres, ). Le modèle de conception va compléter le modèle d'analyse en spécifiant les détails structurels et comportementaux.