MODÉLISATION DE LA STRUCTURE DIAGRAMMES DE CLASSES DIAGRAMMES DE PACKAGES DIAGRAMMES D OBJETS

Documents pareils
GOL502 Industries de services

UML (Diagramme de classes) Unified Modeling Language

Table des matières Sources

Université de Bangui. Modélisons en UML

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

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

Diagramme de classes

OCL - Object Constraint Language

Cours STIM P8 TD 1 Génie Logiciel

UML. Diagrammes de classes (suite) Delphine Longuet.

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

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

3. UML - Unified Modeling Language Diagrammes statiques

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

Traduction des Langages : Le Compilateur Micro Java

Chapitre 2. Classes et objets

Cours de Génie Logiciel

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

Bases de données. Chapitre 1. Introduction

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TD/TP PAC - Programmation n 3

IFT2255 : Génie logiciel

Initiation à JAVA et à la programmation objet.

TP1 : Initiation à Java et Eclipse

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Chapitre I : le langage UML et le processus unifié

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

Les diagrammes de modélisation

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

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

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

UML et les Bases de Données

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

UML : DIAGRAMME D ETATS

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

LO19. Tutorial Rotional Rose. Alexandre Penfornis Thomas Derive

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

Le Guide Pratique des Processus Métiers

Plan Pédagogique du cours

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Chapitre VI- La validation de la composition.

Introduction au Génie Logiciel

MEGA Database Builder. Guide d utilisation

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

Information utiles. webpage : Google+ : digiusto/

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

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

Conception des systèmes répartis

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

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Application web de gestion de comptes en banques

UML (Paquetage) Unified Modeling Language

Projet gestion d'objets dupliqués

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

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

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

Urbanisation de système d'information. PLM 3 (Product Lifecycle Management) Élaborations, versions, variantes, configurations

INITIATION AU LANGAGE JAVA

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

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

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

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

Classes et Objets en Ocaml.

RTDS G3. Emmanuel Gaudin

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

RMI le langage Java XII-1 JMF

Projet Active Object

OBJECTIFS ET ARCHITECTURE DES SGBD

Premiers Pas en Programmation Objet : les Classes et les Objets

Description de la formation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Génie Logiciel Orienté Objet UML

M1 : Ingénierie du Logiciel

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

TD/TP PAC - Programmation n 3

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

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

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

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

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

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

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

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

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

Plus courts chemins, programmation dynamique

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

TP, première séquence d exercices.

POINTS DE REPÈRE SUR LA FÉVRIER 2015 PRODUCTIVITÉ EN FRANCE

Transcription:

MODÉLISATION DE LA STRUCTURE DIAGRAMMES DE CLASSES DIAGRAMMES DE PACKAGES DIAGRAMMES D OBJETS

DIAGRAMME DE CLASSES Un diagramme de classes exprime la structure statique du système. un diagramme de classes est constitué d'un ensemble de classes, d interfaces, de packages et leurs relations, et qui fournit une vue logique de tout ou partie d un système informatique. 2

LES CLASSES Définition: Une classe est une description abstraite d'un type d'objets. Le nom d une classe abstraite doit être en italique. Représentation graphique: une classe est représentée par un rectangle contenant un ou plusieurs compartiments 3

VISIBILITÉ DES MEMBRES D'UNE CLASSE Niveau de visibilité Symbole Définition Public + Élément visible pour tous les utilisateurs de la classe concernée Protégé # Élément visible au sous élément de la classe concernée (classes dérivées) Privé - Élément visible uniquement pour la classe concernée package ~ Elément visible dans toutes les classes du package auquel appartient sa classe. 4

A) ATTRIBUTS Spécification d un attribut: Visibilité attribut:type[= valeur initiale] Un attribut précédé du symbole / est un attribut dérivé. Le type d un attribut peut être: Un type primitif: entier, réel, Un type complexe : tableau, enregistrement ou une classe Valeur par défaut Attribut dérivé 5

LES OPÉRATIONS Une opération représente les traitements effectués par les objets et les classes. Spécification d une opération : Visibilité opération([arguments:type[=valeur initiale],]):type de retour Le nom d une méthode abstraite doit être en italique. Un membre statique est souligné (méthode ou attribut). 6

LES ASSOCIATIONS Compagnie Personne Nom de l association Compagnie employeur travailler Personne employé Nom du rôle de la classe Compagnie dans l association «travailler» Avion pilote passager Personne Nom du rôle de la classe Personne dans l association «travailler» Une association décrit une relations sémantique qui peut lier deux ou plusieurs classes. UML permet de nommer l association ou bien le nom de rôle d une classe dans l association 7

LES ASSOCIATIONS Les noms de rôle sont aussi appelés terminaisons d association. Une terminaison d association peut avoir les multiplicités suivantes m..n: au minimum m occurrences et au maximum n occurrences 0..*: 0 ou plusieurs occurrences 1..*: au moins une occurrence. 1: équivalent à 1..1 (par défaut, si aucune multiplicité n est mentionnée). *: equivalent à 0..* 1,5,8: une liste de valeurs d occurrences. Une association n-aire est représentée par un losange avec un chemin partant vers chaque classe participante dans l association, le nom de l association doit être à côté du losange. 8

EXEMPLE Un fournisseur peut être associé à 0 ou plusieurs produits Un produit doit être associé à au moins un fournisseur Un produit peut être associé à plusieurs fournisseurs

ATTRIBUTS D ASSOCIATION Classe Association, Dans le cas d une association n-aire, la classe association doit être liée au losange.

LA NAVIGABILITÉ navigabilité indique si l association fonctionne de manière unidirectionnelle ou bidirectionnelle, elle est matérialisée par deux extrémité fléchées. La non navigabilité se représente par un «X».

AGRÉGATION Agrégation: une forme d'association qui définit une relation tout-partie entre une classe composant et une classe agrégat ou composée, par exemple : Une voiture a un moteur et 4 roues (agrégat: Voiture, Composants:Moteur, Roue) Familles et enfants

COMPOSITION Un type particulier d'agrégation dans lequel les parties sont fortement liées au tout Un composant ne peut être partie que d'un seul agrégat. L'agrégat gère le cycle de vie (création et destruction) de ces parties.

GÉNÉRALISATION / SPÉCIALISATION C1 Employe {abstract} + imprimerfiche () C2 Développeur Adiministratif La classe C2 hérite de la classe C1

DÉPENDANCE Une dépendance est une relation unidirectionnelle Une classe B est en dépendance de la classe A si des éléments de la classe A sont nécessaires pour construire la classe B. Elle indique qu une modification de la classe cible peut impliquer des modifications dans la classe source. La dépendance est souvent stéréotypée pour mieux expliciter le lien sémantique entre les éléments du modèle. Stéréotypes de dépendance possibles «use»: la source utilise la partie publique de l objet cible «friend»: la classe source possède une visibilité spéciale dans la cible. «derive»: la source est calculée à partir de la cible «call» : appel d une opération de la cible dans la source. «instantiate» : une opération de la source crée une instance de la cible On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans la signature d une opération.

DIAGRAMMES DE PACKAGES Un package permet d organiser les éléments de modélisation en groupes. Un package définit un espace de noms, les noms des éléments dans un packages doivent être uniques. Un élément E1 dans un package P1, peut être utilisé à partir d autres packages en utilisant le nom complétement qualifié P1::E1 Un diagramme de packages est un diagramme UML qui décrit la structure des packages de l application et il offre une vue de haut niveau du système. Il existe deux types de liens entre packages: Liens de généralisation Liens de dépendance. 3 types de représentation: Représentation globale Représentation détaillée Représentation éclatée

Dépendances entre packages: «import»:l import est publique, donc «clients externes» est visible dans «Domaines tiers». «import» est une relation transitive, si A importe B et B importe C, alors A importe indirectement C. «access»: import privé, «clients internes» est visible dans «Domaine client» mais pas dans «Domaine tiers». «merge»: fusion de deux packages.

EXEMPLE Dans l exemple suivant, le package «Gestion de la facturation» importe le package «Gestion des commandes» qui, à son tour, a accès au package «Gestion des clients». Le package Types est montré en vue détaillée: Gestion des commandes <<access>> Gestion des Clients <<import>> <<access>> <<import>> Types - rue - ville Adres se : String : String Gestion de la facturation Informations Bancaire -Date - «Date» est un élément privé dans le package «Types» - «Adresse» et «Informations bancaires» sont visibles dans «Gestion des commandes» - «Date» n est pas visible dans «Gestion des commandes». - «import» est transitive, donc «Adresse» et «Informations bancaires» sont aussi visibles dans «Gestion de la facturation». - Les éléments du package «Gestion des clients» sont visibles dans «Gestion des commandes», mais pas dans le package «Gestion de la facturation».

«MERGE» Les éléments du package destination sont fusionnés dans le package source. Une relation de généralisation est établie entre les éléments du package source et le package destination. Les éléments privés ne sont pas inclus dans l opération de fusion. P1 A - y : int C <<merge>> P0 A - X : int 0..* liste Résultat P0:::A - x : int P0::B C B A - y : int 0..* liste B

DIAGRAMMES D OBJETS Le diagramme d'objets sert à modéliser une situation avant ou après une interaction ou à faciliter le choix des multiplicités, mais également à faciliter la compréhension des structures de données complexes. Les objets (instances de classes) sont reliés par des liens (instances d'associations) sans multiplicité. Le nom d'un objet est toujours souligné : nom_objet :le nom seul correspond à une modélisation incomplète dans laquelle la classe de l'objet n'a pas encore été précisée. nom_objet : nom_classe :nom_classe (désigne un objet quelconque de la classe) : La classe seule évite l'introduction de noms inutiles dans les diagrammes Un objet peut être persistant ou transitoire (Persistent/Transient)

EXEMPLE 1 Tous les objets sont de type Personne 1 grand-mère conjoint 1 grand-mère Enfant enfant 1 collatéral une tante 1 votre père conjoint 1 votre mère enfant enfant enfant 1 un cousin cousin 1 vous-même

EXEMPLE 2 Diagramme de classes Diagramme d objets Entreprise nom:string 1..* Departement nom:string 1 emp3:employe nom:string="emp3" fonction:string="drh" 1 1 entreprise:entreprise nom:string="hp" 1 dep1:departement nom:string="rh" salaries 1..* Employe 1 de2:departement nom:string fonction:string nom:string="production" 1 emp1:employe nom:string="emp1" fonction:string="directeur" 1 emp2:employe nom:string="emp2" fonction:string="chef de production"