Modélisation orientée objets avec UML



Documents pareils
Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

IFT2255 : Génie logiciel

3. UML - Unified Modeling Language Diagrammes statiques

Roques. Programmeur UML 2. Modéliser une une application web. 4 e e édition

les Cahiers Programmeur Modéliser une application web Pascal Roques 3 e édition

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

Université de Bangui. Modélisons en UML

Analyse,, Conception des Systèmes Informatiques

Chapitre I : le langage UML et le processus unifié

Introduction au génie logiciel

UML (Diagramme de classes) Unified Modeling Language

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

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

Cours STIM P8 TD 1 Génie Logiciel

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

Refonte front-office / back-office - Architecture & Conception -

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

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

Chapitre VI- La validation de la composition.

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Génie Logiciel Orienté Objet UML

UML (Paquetage) Unified Modeling Language

Table des matières Sources

Les diagrammes de modélisation

TP1 : Initiation à Java et Eclipse

Programmation en Java IUT GEII (MC-II1) 1

Patrons de Conception (Design Patterns)

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Cours de Génie Logiciel

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

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

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

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

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

Diagramme de classes

Chapitre 2. Classes et objets

Programmer en JAVA. par Tama

Programmation Orientée Objet

Rational Unified Process

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

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

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Gestion distribuée (par sockets) de banque en Java

Cours 1: Java et les objets

Introduction au Génie Logiciel

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

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Initiation à JAVA et à la programmation objet.

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

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

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

as Architecture des Systèmes d Information

CC30 Certificat de compétence Conception, développement et animation de sites Web

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Guichet automatique de banque

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Logiciel de gestion pour restaurants et Bars

Premiers Pas en Programmation Objet : les Classes et les Objets

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

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

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

Projet Active Object

OCL - Object Constraint Language

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Etude et développement d un moteur de recherche

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

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

UML est-il soluble dans les méthodes agiles?

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

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

Le génie logiciel. maintenance de logiciels.

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

Une introduction à Java

Conception des systèmes répartis

GOL502 Industries de services

Java Licence professionnelle CISII,

Le Guide Pratique des Processus Métiers

Remote Method Invocation (RMI)

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

Management des processus opérationnels

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

DES CONCEPTS OBJET PAR JAVA

INITIATION AU LANGAGE JAVA

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

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

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Java c est quoi? Java pourquoi?

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Composants Logiciels. Le modèle de composant de CORBA. Plan

Plan Pédagogique du cours

Transcription:

Modélisation orientée objets avec UML Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) UML 2007 1 / 70

Plan du cours 1 Introduction 2 Vue fonctionnelle 3 Vue statique 4 Vue dynamique 5 Démarche de modélisation 6 Programmation Orientée Objet en C++ 7 Bibliographie G. Laurent (ENSMM) UML 2007 2 / 70

Introduction Genèse de UML (Unified Modeling Langage) Jusqu au milieu des années 1990, de nombreux modèles objets sont proposés : Booch 91 de Grady Booch Object Modeling Technique (OMT) de James Rumbaugh en 1991 puis 1994 Object-Oriented Software Engineering (OOSE) de Ivar Jacobson en 1992 Source P.A. Muller Unification des méthodes par Rumbaugh, Jacobson et Booch et naissance d UML 1.0 en 1997 UML 2.0 en septembre 2004 G. Laurent (ENSMM) UML 2007 3 / 70

Introduction Qu est-ce que UML UML est un langage universel de modélisation objets UML est une notation, un outil de communication visuelle (diagrammes) UML est une norme maintenue par l organisation à but non lucratif OMG (Object Management Group) et disponible gratuitement sur www.uml.org UML n est pas un processus de développement UML n est pas un langage de programmation G. Laurent (ENSMM) UML 2007 4 / 70

Introduction Les diagrammes UML Diagrammes de cas d utilisation : décrivent les services rendus par le système du point de vue de l utilisateur Diagrammes de classes : décrivent les classes d une application et leurs relations statiques Diagrammes d objets : montrent l état d une application à un instant donné Diagrammes de composants : sont une vue modulaire de l application en regroupant les classes qui collaborent Diagrammes de déploiement : modélisent l aspect matériel de l application Diagrammes de collaboration : sont une représentation spatiale des interactions entre objets Diagrammes de séquence : sont une représentation temporelle des interactions entre objets Diagrammes d états-transitions : représentent le comportement d un objet sous la forme d un automate à états Diagrammes d activités : représentent le comportement d une opération G. Laurent (ENSMM) UML 2007 5 / 70

Introduction Interventions des diagrammes sur les axes de modélisation G. Laurent (ENSMM) UML 2007 6 / 70

Vue fonctionnelle 2.1 Diagrammes de cas d utilisation Diagrammes de cas d utilisation 2 Vue fonctionnelle Diagrammes de cas d utilisation G. Laurent (ENSMM) UML 2007 7 / 70

Vue fonctionnelle Diagrammes de cas d utilisation Diagrammes de cas d utilisation Identifier les acteurs Un acteur représente un rôle joué par une entité extérieure au système (humain ou autre système) et qui interagit directement avec le système étudié Un utilisateur peut être représenté par plusieurs acteurs Plusieurs utilisateurs peuvent être représentés par le même acteur Identifier les cas d utilisation Un cas d utilisation représente un service complet attendu du système Un cas d utilisation a un début et une fin clairement identifiés Un cas d utilisation est décrit par une forme verbale G. Laurent (ENSMM) UML 2007 8 / 70

Vue fonctionnelle Diagrammes de cas d utilisation Diagrammes de cas d utilisation Exemple des cas d utilisation d un distributeur de boissons G. Laurent (ENSMM) UML 2007 9 / 70

Vue fonctionnelle Diagrammes de cas d utilisation Diagrammes de cas d utilisation Relation d utilisation (include) Relation d extension (extend) G. Laurent (ENSMM) UML 2007 10 / 70

Vue fonctionnelle Diagrammes de cas d utilisation Diagrammes de cas d utilisation Relation de spécialisation G. Laurent (ENSMM) UML 2007 11 / 70

Vue fonctionnelle Diagrammes de cas d utilisation Exercices Ex.1 Modéliser les cas d utilisation d un logiciel de jeu d échecs Ex.2 Modéliser les cas d utilisation d une caisse enregistreuse (extrait de UML par la pratique, Pascal Roques, Eyrolles) Le déroulement normal d utilisation de la caisse est le suivant : Un client arrive à la caisse avec des articles à payer Le caissier enregistre le numéro d identification de chaque article, ainsi que la quantité si elle est supérieure à un La caisse affiche le prix de chaque article et son libellé Lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente La caisse affiche le total des achats Le client choisit son mode de paiement : liquide (le caissier encaisse l argent reçu, la caisse indique la monnaie à rendre au client), chèque, carte de crédit (la caisse transmet une demande d autorisation à un centre d autorisation) La caisse enregistre la vente et imprime un ticket. Le caissier donne le ticket de caisse au client. Lorsque un paiement est terminé, la caisse transmet les informations sur le nombre d articles vendus au système de gestion de stocks. Tous les matins, le responsable du magasin initialise la caisse pour la journée. G. Laurent (ENSMM) UML 2007 12 / 70

3.1 Diagrammes d objets Vue statique Diagrammes d objets 3 Vue statique Diagrammes d objets Diagrammes de classes Diagrammes de composants Diagrammes de déploiement G. Laurent (ENSMM) UML 2007 13 / 70

Vue statique Diagrammes d objets Concept d objet Un objet est une entité atomique définie par l union de : Etat : attributs (données membres, champs) Comportement : façon dont un objet évolue, décrit sous formes d opérations (méthodes, fonctions membres) Identité : propriété qui permet de distinguer tout objet des autres (référence en java, adresse en C++) Un objet peut représenter une entité physique (par ex. une voiture), virtuelle (par ex. un compte en banque) ou conceptuelle (par ex. un complexe) Un objet Une voiture 985kgs rouge 80cv Un compte banquaire 01/04/04 157 1+5i 1 5 Guillaume :individu G. Laurent (ENSMM) UML 2007 14 / 70

Vue statique 3.2 Diagrammes de classes Diagrammes de classes 3 Vue statique Diagrammes d objets Diagrammes de classes Diagrammes de composants Diagrammes de déploiement G. Laurent (ENSMM) UML 2007 15 / 70

Vue statique Diagrammes de classes Concept de classe Notion de catégorie ou de type d objets Factorise les caractéristiques communes à une catégorie d objets Un objet est une instance d une classe G. Laurent (ENSMM) UML 2007 16 / 70

Vue statique Diagrammes de classes Encapsulation et visibilité des attributs et des opérations Intérêt de l encapsulation Permet de cacher les détails d implantation des attributs d un objet Empêche un client de modifier directement l état d un objet (i.e. ses attributs), obligation d utiliser les opérations 3 niveaux Public : attributs accessibles et modifiables par n importe quelle autre classe, opérations utilisables par n importe quelle autre classe, Privé : attributs inaccessibles pour toute autre classe, opérations inutilisables pour toute autre classe, Protégé : attributs accessibles et modifiables uniquement par les classes dérivées, opérations utilisables uniquement par les classes dérivées. G. Laurent (ENSMM) UML 2007 17 / 70

Vue statique Diagrammes de classes Attributs de classe et classes génériques Attributs (ou opérations) communs à l ensemble des instances d une classe (attributs static en C++) Classes génériques avec type paramétrable (classes template en C++) G. Laurent (ENSMM) UML 2007 18 / 70

Vue statique Diagrammes de classes Associations de classes Reflet d une relation bidirectionnelle entre deux classes (ou plus) Pour pouvoir envoyer des messages (i.e. utiliser les opérations), la classe cliente doit être associée avec la classe serveur Possibilité de décrire les rôles G. Laurent (ENSMM) UML 2007 19 / 70

Associations de classes Vue statique Diagrammes de classes Multiplicité des associations G. Laurent (ENSMM) UML 2007 20 / 70

Classes d association Vue statique Diagrammes de classes Une association peut être représentée par une classe (pour être enrichie par exemple) Les associations n-aires peuvent souvent être réduites G. Laurent (ENSMM) UML 2007 21 / 70

Agrégations de classes Vue statique Diagrammes de classes L agrégation est une association non symétrique : Relation de dominance et de subordination Une classe fait partie d une autre classe Une action sur une classe implique une action sur une autre classe Une classe peut appartenir à plusieurs agrégats G. Laurent (ENSMM) UML 2007 22 / 70

Vue statique Diagrammes de classes Compositions de classes La composition est une agrégation forte Relation d appartenance stricte équivalente à l attribution Une classe ne peut pas appartenir à plusieurs compositions Une classe composée ne peut exister sans son propriétaire G. Laurent (ENSMM) UML 2007 23 / 70

Vue statique Diagrammes de classes Navigation Par défaut, les associations sont navigables dans les deux directions Une association peut ne nécessiter qu un seul sens de navigation : B ne voit pas A B ne peut envoyer de message à A G. Laurent (ENSMM) UML 2007 24 / 70

Vue statique Généralisation/spécialisation Diagrammes de classes Spécialisation de la classe existante par ajout d attributs et/ou ajout/redéfinition de méthodes Héritage, dérivation par extension Relation EST UN G. Laurent (ENSMM) UML 2007 25 / 70

Polymorphisme Vue statique Diagrammes de classes Permet d utiliser un nom unique pour désigner des instances de classes différentes issues d une même arborescence Chaque objet désigné par ce nom réagit de manière propre à la réception d un même message G. Laurent (ENSMM) UML 2007 26 / 70

Vue statique Diagrammes de classes Notion de paquetages (package) Regrouper les classes (ou autres diagrammes) liées entre elles Faire apparaître (et minimiser!) les dépendances entre paquetages G. Laurent (ENSMM) UML 2007 27 / 70

Exercice Vue statique Diagrammes de classes Ex.1 Soit le dessin géométrique ci-dessous : Modéliser cette situation par un diagramme d objets Modéliser un dessin géométrique par un diagramme de classes G. Laurent (ENSMM) UML 2007 28 / 70

Exercice Vue statique Diagrammes de classes Ex.2 Modéliser les phrases suivantes par un diagramme de classes Un répertoire contient des fichiers Une pièce a des murs Une transaction bancaire est un achat ou une vente Une enveloppe a une adresse et un timbre Les lapins, les hirondelles, les lions, les requins, les autruches, les vautours, les truites, les pingouins sont des animaux qui se déplacent de manières différentes. Des poupées russes (gigognes) Un pays possède plusieurs villes et une seule capitale G. Laurent (ENSMM) UML 2007 29 / 70

Exercice Vue statique Diagrammes de classes Ex.3 Modéliser la structure statique d un logiciel de jeu d échecs en se focalisant successivement sur : L échiquier et les pièces Les joueurs et leurs pièces Une partie (extrait de UML par la pratique, Pascal Roques, Eyrolles) G. Laurent (ENSMM) UML 2007 30 / 70

Vue statique 3.3 Diagrammes de composants Diagrammes de composants 3 Vue statique Diagrammes d objets Diagrammes de classes Diagrammes de composants Diagrammes de déploiement G. Laurent (ENSMM) UML 2007 31 / 70

Vue statique Diagrammes de composants Diagrammes de composants Permet de décrire l architecture statique d une application en terme de modules (fichiers sources, fichiers compilés, etc.) Les dépendances entre modules permettent d identifier les contraintes de compilation et de mettre en évidence la réutilisation des composants G. Laurent (ENSMM) UML 2007 32 / 70

Vue statique 3.4 Diagrammes de déploiement Diagrammes de déploiement 3 Vue statique Diagrammes d objets Diagrammes de classes Diagrammes de composants Diagrammes de déploiement G. Laurent (ENSMM) UML 2007 33 / 70

Vue statique Diagrammes de déploiement Diagrammes de déploiement Montre la disposition physique des différentes ressources matérielles (noeuds), leurs interconnexions et la répartition des programmes sur ces matériels Un système est généralement décrit par un petit nombre de diagrammes de déploiement (généralement un seul suffit) G. Laurent (ENSMM) UML 2007 34 / 70

Vue dynamique 4.1 Diagrammes de collaboration Diagrammes de collaboration 4 Vue dynamique Diagrammes de collaboration Diagrammes de séquence Diagrammes d états-transitions Diagrammes d activités G. Laurent (ENSMM) UML 2007 35 / 70

Concept de message Vue dynamique Diagrammes de collaboration Message : quand un objet (le client) demande à un autre objet (le serveur) d effectuer une de ses opérations, on parle de message Demander le nombre d'heures effectuées ENSMM Créditer :compte banquaire :vacataire Consulter créer :Cours Doc G. Laurent (ENSMM) UML 2007 36 / 70

Vue dynamique Diagrammes de collaboration Diagrammes de collaboration Représentent les interactions (échanges de messages) entre objets selon un point de vue spatial Extension des diagrammes d objets par l ajout de la représentation des messages échangés Vues généralement partielles et focalisées sur une collaboration de quelques objets Les messages sont numérotés pour indiquer l ordre des envois :vacataire 1 : Demander de donner un cours :école d'ingénieur 2 : Créditer :compte banquaire G. Laurent (ENSMM) UML 2007 37 / 70

Vue dynamique Diagrammes de collaboration Diagrammes de collaboration Itérations :dessin 1 : Translater :polygone *[i:=1..n] 2 : Translater :point Messages conditionnels [X>3] : Message A B Résultats et paramètres (ou arguments) A 1 : val := Message B 2 : Afficher(val) B G. Laurent (ENSMM) UML 2007 38 / 70

Vue dynamique Diagrammes de collaboration Diagrammes de collaboration Exécutions parallèles et synchronisation A.1 : M1 A.2 : M2 X Y Z A.2, B.3 / C.1 : M7 A B B.2 : M4 B.1 : M3 U V W B.4 : M6 B.3 : M5 G. Laurent (ENSMM) UML 2007 39 / 70

Vue dynamique Diagrammes de collaboration Diagrammes de collaboration Deux objets peuvent échanger un message ssi les classes de ces objets sont en relation (association, agrégation ou composition) M1 A B :A :B Le sens des messages entre deux objets est bidirectionnel ssi aucun sens de navigation n est précisé A B M1 :A :B Le sens des messages entre deux objets est unidirectionnel ssi un sens de navigation est précisé M2 M1 :A :B A B M2 :A :B G. Laurent (ENSMM) UML 2007 40 / 70

Exercice Vue dynamique Diagrammes de collaboration Ex.1 Décrire à l aide d un diagramme de collaboration l enchaînement nominal de distribution d une boisson pour un distributeur de boissons dont la structure est définie par le diagramme de classes ci-dessous G. Laurent (ENSMM) UML 2007 41 / 70

Vue dynamique 4.2 Diagrammes de séquence Diagrammes de séquence 4 Vue dynamique Diagrammes de collaboration Diagrammes de séquence Diagrammes d états-transitions Diagrammes d activités G. Laurent (ENSMM) UML 2007 42 / 70

Vue dynamique Diagrammes de séquence Diagrammes de séquence Représentent les interactions (échanges de messages) entre objets selon un point de vue temporel Le contexte des objets n est pas représenté Un objet Un autre objet Un objet Message synchrone Message asynchrone Créer Un autre objet Message réflexif Détruire G. Laurent (ENSMM) UML 2007 43 / 70

Diagrammes de séquence Vue dynamique Diagrammes de séquence Activation Un objet Un autre objet Un objet Message (retour implicite) Sous-processus Message Retour explicite Appel récursif G. Laurent (ENSMM) UML 2007 44 / 70

Diagrammes de séquence Vue dynamique Diagrammes de séquence Structures de contrôles A B C A B C Si [X] Sinon Message Message [X] message [non X] message FinSi Tantque [X] Message *[X] message FinTantque G. Laurent (ENSMM) UML 2007 45 / 70

Exercices Vue dynamique Diagrammes de séquence Ex.1 Réaliser le diagramme de séquence correspondant au diagramme de collaboration du distributeur de boissons (cf. T41) Ex.2 Réaliser le diagramme de séquence système du cas d utilisation traiter le passage en caisse de l exercice sur la caisse enregistreuse (cf. T12) G. Laurent (ENSMM) UML 2007 46 / 70

Vue dynamique 4.3 Diagrammes d états-transitions Diagrammes d états-transitions 4 Vue dynamique Diagrammes de collaboration Diagrammes de séquence Diagrammes d états-transitions Diagrammes d activités G. Laurent (ENSMM) UML 2007 47 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Permettent de modéliser des automates d états déterministes Représentent le comportement interne d un objet (évolution de son état), en réponse aux interactions avec d autres objets Représentation des états : G. Laurent (ENSMM) UML 2007 48 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Transitions et événements Gardes (événements conditionnels) G. Laurent (ENSMM) UML 2007 49 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Généralisation d états Super-états décomposés en plusieurs états disjoints (décomposition disjonctive) Même démarche que la spécialisation/généralisation des classes, les sous-états héritent des caractéristiques de leur super-état G. Laurent (ENSMM) UML 2007 50 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Généralisation d états Facilite la représentation et permet d occulter les détails G. Laurent (ENSMM) UML 2007 51 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Agrégation d états Composition d un état à partir de plusieurs autres états indépendants (composition conjonctive) Permet de décrire des automates parallèles G. Laurent (ENSMM) UML 2007 52 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Historique Mécanisme pour mémoriser le dernier sous-état visité H* indique une mémorisation pour tous les états imbriqués Déclenchement d un événement au bout d un certain temps passé dans un état (transition temporisée) G. Laurent (ENSMM) UML 2007 53 / 70

Vue dynamique Diagrammes d états-transitions Diagrammes d états-transitions Déclenchements d opérations Déclenchements d événements relatifs à un autre objet G. Laurent (ENSMM) UML 2007 54 / 70

Exercices Vue dynamique Diagrammes d états-transitions Ex.1 Modéliser le fonctionnement d un distributeur de boissons à l aide d un diagramme d états-transitions Ex.2 Modéliser le fonctionnement d un téléphone public à pièces à l aide d un diagramme d états-transitions Le prix minimal d une communication est de 0,2 euros Après l introduction de la monnaie, l utilisateur a 2 minutes pour composer son numéro La ligne peut être libre ou occupée Le correspondant peut raccrocher le premier Le téléphone consomme de l argent dès que l appelé décroche et à chaque unité de temps On peut ajouter des pièces à tout moment Lorsque l on raccroche, le solde de monnaie est rendu (extrait de UML par la pratique, Pascal Roques, Eyrolles) G. Laurent (ENSMM) UML 2007 55 / 70

Vue dynamique 4.4 Diagrammes d activités Diagrammes d activités 4 Vue dynamique Diagrammes de collaboration Diagrammes de séquence Diagrammes d états-transitions Diagrammes d activités G. Laurent (ENSMM) UML 2007 56 / 70

Diagrammes d activités Vue dynamique Diagrammes d activités Représentent le comportement interne d une opération G. Laurent (ENSMM) UML 2007 57 / 70

Exercice Vue dynamique Diagrammes d activités Ex.1 Modéliser le comportement de l opération PréparerBoisson() de l objet Préparateur d un distributeur de boissons G. Laurent (ENSMM) UML 2007 58 / 70

Démarche de modélisation Capture des besoins Cahier des charges Diagrammes de cas d utilisation Utilisation de fiches textuelles (non UML) Identification (titre du cas, acteurs concernés, responsable, date, etc.) Préconditions Enchaînements nominaux Enchaînements alternatifs Enchaînements d exceptions Postconditions Utilisation de diagrammes de séquence système (diagrammes de séquence simplifiés) Un client Un distributeur Un client Un distributeur Choix boisson Choix boisson Montant Liquide Monnaie Boisson Montant Liquide Monnaie Tant que Montant positif Fin Tant que Boisson G. Laurent (ENSMM) UML 2007 59 / 70

Démarche de modélisation Démarche de modélisation objet Ordonner les cas d utilisation Identifier les classes principales à partir des spécifications Élaborer des diagrammes de classes Faire fonctionner les diagrammes de classes sur des diagrammes de séquence et de collaboration Itérer et enrichir!! G. Laurent (ENSMM) UML 2007 60 / 70

Search: LOGO Button Button Button Button Button Go! Démarche de modélisation Home Archives My Account Store About us Article Title Text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text more... Article Title Text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text more... Article Title Text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text more... What's New text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text Advertising Advertising Objet1 - titre : String - soustitre [0..1] : String - isbn : String + getdetails() : String Objet3 - titre : String - soustitre [0..1] : String - isbn : String + getdetails() : String Objet2 - titre : String - soustitre [0..1] : String - isbn : String + getdetails() : String Actor Objet4 - titre : String - soustitre [0..1] : String - isbn : String + getdetails() : String message name an Object an Object an Object message name message name message name message name message name an Object package LogiqueMetier.Gestion; import LogiqueMetier.Catalogue.Livre; import java.util.*;public class Panier { private double total; private List leslignespanier = new ArrayList(); public Panier() {} public double gettotal() { return total; } public void recalculer(list quantites) { total = 0; Iterator lignesit = leslignespanier.iterator(); Iterator quantiteit = leslignespanier.iterator(); while(lignesit.hasnext()){ LignePanier l = (LignePanier)lignesIt.next(); int qte = ((Integer) quantiteit.next().intvalue(); l.recalculer(qte); total += l.gettotal(); } } Synthèse de la démarche System Cas d utilisation Diagrammes de séquence système Besoins utilisateurs Modèle du domaine Diagrammes de classes participantes Diagrammes d interaction Maquette Diagrammes de classes de conception Code (source : Modéliser un site e-commerce, Pascal Roques, Eyrolles) G. Laurent (ENSMM) UML 2007 61 / 70

Programmation Orientée Objet en C++ Spécification d une classe (.h) class Nom_de_classe { // Attributs type attribut1; type attribut2;... // Constructeur Nom_de_classe(arg1,arg2,...); // Destructeur Nom_de_classe(void); // Méthodes type methode1(arg1,arg2,...); type methode2(arg1,arg2,...); void methode3(arg1,arg2,...);... }; G. Laurent (ENSMM) UML 2007 62 / 70

Programmation Orientée Objet en C++ Implantation d une classe (.cpp) Nom_de_classe::Nom_de_classe(arg1,arg2,...) {... } Nom_de_classe:: Nom_de_classe(void) {... } type Nom_de_classe::methode1(arg1,arg2,...) {... return...; } type Nom_de_classe::methode2(arg1,arg2,...) {... return...; } void Nom_de_classe::methode3(arg1,arg2,...) {... } G. Laurent (ENSMM) UML 2007 63 / 70

Programmation Orientée Objet en C++ Instanciation, envoie de messages et destruction Instanciation Nom_de_classe Objet1,Objet2; Nom_de_classe Objet3(x,y,...); Nom_de_classe *RefObjet4; RefObjet4=new Nom_de_classe(x,y,...); Envoie de messages x=objet1.methode1(x,y,...); RefObjet4->Methode3(x,y,...); Destruction // La destruction des objets 1, 2 et 3 est automatique // en fin de bloc delete RefObjet4; G. Laurent (ENSMM) UML 2007 64 / 70

Association 1/1 Programmation Orientée Objet en C++ class A {... B *Rb;... }; class B {... A *Ra;... }; G. Laurent (ENSMM) UML 2007 65 / 70

Programmation Orientée Objet en C++ Association 1/1 unidirectionnelle class A {... B *Rb;... }; class B {... }; G. Laurent (ENSMM) UML 2007 66 / 70

Association 0..*/0..* Programmation Orientée Objet en C++ class A {... set<b*> Rb;... }; class B {... set<a*> Ra;... }; G. Laurent (ENSMM) UML 2007 67 / 70

Composition 1/1 Programmation Orientée Objet en C++ class A {... B Rb;... }; class B {... A *Ra;... }; G. Laurent (ENSMM) UML 2007 68 / 70

Programmation Orientée Objet en C++ Généralisation/spécialisation class A { // Attributs type attribut1; type attribut2; // Constructeur A(...); // Méthodes type methode1(...); type methode2(...); }; class B : public A { // La classe B hérite de tous les // attributs et méthodes de la // classe A // Nouveaux attributs propres à B type attribut3; type attribut4; // Constructeur (obligatoire) B(...) // Méthodes de A redéfinies pour B type methode2(...); // Nouvelles méthodes propres à B type methode3(...); }; G. Laurent (ENSMM) UML 2007 69 / 70

Bibliographie Bibliographie Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide. Addison Wesley, 2005. Object Management Group (OMG). Unified Modeling Language (UML), version 2.0. Pierre-Alain Muller and Nathalie Gaertner. Modélisation Objet avec UML. Eyrolles, 2000. Pascal Roques. UML en action. Eyrolles, 2003. Pascal Roques. UML 2 par la pratique, études de cas et exercices corrigés. Eyrolles, 2004. G. Laurent (ENSMM) UML 2007 70 / 70