Programmation Orientée Objet

Documents pareils
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

Table des matières Sources

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

Diagramme de classes

IFT2255 : Génie logiciel

UML (Diagramme de classes) Unified Modeling Language

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

OCL - Object Constraint Language

Chapitre I : le langage UML et le processus unifié

Cours STIM P8 TD 1 Génie Logiciel

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

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

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

Guichet automatique de banque

3. UML - Unified Modeling Language Diagrammes statiques

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

RTDS G3. Emmanuel Gaudin

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

UML et les Bases de Données

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

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

TP1 : Initiation à Java et Eclipse

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

M1 : Ingénierie du Logiciel

Programmer en JAVA. par Tama

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

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

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

Les diagrammes de modélisation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Génie Logiciel Orienté Objet UML

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

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Programmation Objet Java Correction

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

Analyse,, Conception des Systèmes Informatiques

Chapitre VI- La validation de la composition.

Business Process Design Max Pauron

Auto-évaluation Programmation en Java

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

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

as Architecture des Systèmes d Information

Le Guide Pratique des Processus Métiers

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

Bases de données. Chapitre 1. Introduction

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

Information utiles. webpage : Google+ : digiusto/

Business Process Modeling (BPM)

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

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

Remote Method Invocation (RMI)

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Initiation à JAVA et à la programmation objet.

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

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

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

Rappel sur les bases de données

Les BRMS Business Rules Management System. Groupe GENITECH

Projet Active Object

Nom de l application

Qualité du logiciel: Méthodes de test

Programmation Orientée Objet

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

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Traduction des Langages : Le Compilateur Micro Java

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Patrons de Conception (Design Patterns)

UML. Diagrammes de classes (suite) Delphine Longuet.

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

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

GOL502 Industries de services

UML (Paquetage) Unified Modeling Language

Environnements de développement (intégrés)

Modélisation de Lignes de Produits en UML *

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

LO19. Tutorial Rotional Rose. Alexandre Penfornis Thomas Derive

Cours de Génie Logiciel

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

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

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

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

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

Modèle conceptuel : diagramme entité-association

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

Plateforme AnaXagora. Guide d utilisation

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

AnaXagora LMS v3.0. Guide d utilisation

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

BES WEBDEVELOPER ACTIVITÉ RÔLE

Transcription:

Informatique S4-POO Programmation Orientée Objet UML Cédric Buche École Nationale d Ingénieurs de Brest (ENIB) 20 novembre 2013 Cédric Buche (ENIB) POO 20 novembre 2013 1 / 135

Plan Introduction Objectifs du cours prérequis 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 2 / 135

Plan Introduction Objectifs du cours prérequis 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 3 / 135

Introduction Objectifs du cours prérequis Objectifs du cours prérequis Objectifs : Connaître le langage de modélisation UML Comprendre la sémantique des principaux éléments des différents modèles Prérequis : Maîtriser les principes de la programmation orientée objet Cédric Buche (ENIB) POO 20 novembre 2013 4 / 135

Introduction Importance de la modélisation Importance de la modélisation La niche, la maison familiale et l immeuble : quelques planches, des clous, un marteau et quelques outils. : plans généraux, plans d exécution détaillés (pièces, électricité, plomberie, chauffage) : planification détaillée, nombreux plans et études Cédric Buche (ENIB) POO 20 novembre 2013 5 / 135

Introduction Importance de la modélisation Importance de la modélisation La niche, la maison familiale et l immeuble : quelques planches, des clous, un marteau et quelques outils. : plans généraux, plans d exécution détaillés (pièces, électricité, plomberie, chauffage) : planification détaillée, nombreux plans et études Cédric Buche (ENIB) POO 20 novembre 2013 5 / 135

Introduction Importance de la modélisation Importance de la modélisation La niche, la maison familiale et l immeuble : quelques planches, des clous, un marteau et quelques outils. : plans généraux, plans d exécution détaillés (pièces, électricité, plomberie, chauffage) : planification détaillée, nombreux plans et études Cédric Buche (ENIB) POO 20 novembre 2013 5 / 135

Introduction Pourquoi modéliser? Pourquoi modéliser? Mieux comprendre le système en développement Appréhender ces systèmes dans leur entièreté modèles de systèmes complexes Cédric Buche (ENIB) POO 20 novembre 2013 6 / 135

Introduction Pourquoi modéliser? Pourquoi modéliser? Mieux comprendre le système en développement Appréhender ces systèmes dans leur entièreté modèles de systèmes complexes Cédric Buche (ENIB) POO 20 novembre 2013 6 / 135

Introduction Pourquoi modéliser? Pourquoi modéliser? Mieux comprendre le système en développement Appréhender ces systèmes dans leur entièreté modèles de systèmes complexes Cédric Buche (ENIB) POO 20 novembre 2013 6 / 135

Introduction Pourquoi mode liser? Pourquoi mode liser? Mieux comprendre le syste me en de veloppement Appre hender ces syste mes dans leur entie rete mode les de syste mes complexes Ce dric Buche (ENIB) POO 20 novembre 2013 6 / 135

Introduction Des logiciels au génie logiciel Modélisation informatique : des logiciels au génie logiciel Etude projet informatique 16 % conformes 53 % dépassements 31 % abandon Génie Logiciel Cédric Buche (ENIB) POO 20 novembre 2013 7 / 135

Introduction Des logiciels au génie logiciel Modélisation informatique : des logiciels au génie logiciel Etude projet informatique 16 % conformes 53 % dépassements 31 % abandon Génie Logiciel Cédric Buche (ENIB) POO 20 novembre 2013 7 / 135

Introduction Des logiciels au génie logiciel Modélisation informatique : des logiciels au génie logiciel Etude projet informatique 16 % conformes 53 % dépassements 31 % abandon Génie Logiciel Cédric Buche (ENIB) POO 20 novembre 2013 7 / 135

Introduction Des logiciels au génie logiciel Modélisation informatique : des logiciels au génie logiciel Etude projet informatique 16 % conformes 53 % dépassements 31 % abandon Génie Logiciel Cédric Buche (ENIB) POO 20 novembre 2013 7 / 135

Introduction Introduction à UML 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 8 / 135

Introduction Introduction à UML 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 9 / 135

Introduction Introduction à UML UML : Unified Modeling Language Langage graphique de modélisation pour spécifier, concevoir, construire, et documenter des applications informatiques Synthèse des bonnes pratiques de l ingénierie informatique Unification de modèles Standardisation par l OMG (Object Management Group) Cédric Buche (ENIB) POO 20 novembre 2013 10 / 135

Objectifs Introduction Introduction à UML Fournir un langage visuel et expressif Fournir des mécanismes d extension Etre indépendant des technologies et langages d implémentation Fournir une base formelle pour la modélisation Cédric Buche (ENIB) POO 20 novembre 2013 11 / 135

3 axes de modélisation Introduction Introduction à UML Approche classique - projet 1 Fonctionnel Cahier des charges : diag. cas d utilisation scénarios écrits Scénarios formels : diag. seq / comm objets/classes 2 Statique classes : diag. classes 3 Dynamique dynamique chaque objet : diag. états/transitions dynamique globale : diag. activités Cédric Buche (ENIB) POO 20 novembre 2013 12 / 135

Pour quelles tâches? Introduction Introduction à UML Conception ( forward engineering ) Rétro conception ( reverse engineering ) Documentation d un système Cédric Buche (ENIB) POO 20 novembre 2013 13 / 135

Plan Diagramme de classes (4 UC) 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 14 / 135

Plan Diagramme de classes (4 UC) 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 15 / 135

Diagramme de classes (4 UC) Classes Classe, attribut et opération : notations attribut1 attribut2 Nom operationa operationb operationc nomcompartiment nomelement1 nomelement2 Compartiment identification, propriétés Compartiment des attributs Compartiment des opérations Compartiment(s) optionnels nommés Cédric Buche (ENIB) POO 20 novembre 2013 16 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Attribut : syntaxe Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 17 / 135

Diagramme de classes (4 UC) Attribut : visibilité Classes Accessibilité : quels éléments peuvent le référencer? + public tout élément qui accède à la classe # protected seul un élément de la classe ou de ses descendants - private seul un élément de la classe package seul un élément du même package que la classe élément : une classe qui référence la classe considérée Cédric Buche (ENIB) POO 20 novembre 2013 18 / 135

Exemple Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 19 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Opération : syntaxe Classes Cédric Buche (ENIB) POO 20 novembre 2013 20 / 135

Diagramme de classes (4 UC) Classes Opération : direction des paramètres information que l objet serveur ne possède pas, mais qui est nécessaire à la réalisation de l opération : direction = in information nécessaire à la réalisation de l opération et transformée par celle-ci : direction = inout information produite par l exécution de l opération, donc inexistante avant ; direction = out ou return Cédric Buche (ENIB) POO 20 novembre 2013 21 / 135

Exemple Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 22 / 135

Exemple Diagramme de classes (4 UC) Classes Cédric Buche (ENIB) POO 20 novembre 2013 23 / 135

Types Diagramme de classes (4 UC) Relations entre classes Dépendance Généralisation Réalisation Association Cédric Buche (ENIB) POO 20 novembre 2013 24 / 135

Diagramme de classes (4 UC) Relations entre classes Relation de dépendance entre classes (classifier) A client <<use>> B serveur (fournisseur) Indique une dépendance entre les propriétés d une classe (le client) et une autre classe (le serveur, supplier) En conséquence, une modification du serveur peut affecter le comportement du client Exemples : une opération de la classe A fait appel à une opération de la classe B une opération de A a comme paramètre un objet B Cédric Buche (ENIB) POO 20 novembre 2013 25 / 135

Diagramme de classes (4 UC) Relations entre classes Exemple de dépendance entre classes Cédric Buche (ENIB) POO 20 novembre 2013 26 / 135

Diagramme de classes (4 UC) Relations entre classes Stéréotypes de dépendance entre classes access create instantiate permit use import du contenu d un autre package la classe crée des instances d une autre classe la méthode d une classe crée des instances d une autre donne accès aux éléments privés un élément requiert un autre élément Cédric Buche (ENIB) POO 20 novembre 2013 27 / 135

Diagramme de classes (4 UC) Généralisation spécialisation Relations entre classes Généralisation Super classe Héritage CA A + operation1(in arg1: integer) redéfinition d une opération AA AB CB + operation1(in arg1: integer) ABA ABB ABC Spécialisation Sous classe classe dérivée Dérivation Cédric Buche (ENIB) POO 20 novembre 2013 28 / 135

Diagramme de classes (4 UC) Relations entre classes Généralisation spécialisation : exemple Cédric Buche (ENIB) POO 20 novembre 2013 29 / 135

Diagramme de classes (4 UC) Généralisation : vocabulaire Relations entre classes A est une spécialisation de B A est une sous-classe de B A dérive de B A hérite de B B est une généralisation de A B est une super-classe de A Cédric Buche (ENIB) POO 20 novembre 2013 30 / 135

Diagramme de classes (4 UC) Association : principe Relations entre classes Cédric Buche (ENIB) POO 20 novembre 2013 31 / 135

Association : rôles Diagramme de classes (4 UC) Relations entre classes A nomrolea R nomroleb B nomrole : indique ce que représente l ensemble des instances associées à une instance de la classe par la relation R. L accès peut être +, # ou - nomroleb nomrolea nom de l ensemble des instances de la classe B qui sont en relation avec 1 instance de la classe A par la relation R. nom de l ensemble des instances de la classe A qui sont en relation avec 1 instance de la classe B par la relation R. Cédric Buche (ENIB) POO 20 novembre 2013 32 / 135

Diagramme de classes (4 UC) Association : multiplicités Relations entre classes A multa R multb B valeurs possibles du cardinal de l ensemble des instances associées à une instance de la classe par la relation R. multb multa cardinal de l ensemble des instances de la classe B qui sont en relation avec 1 instance de la classe A par la relation R. cardinal de l ensemble des instances de la classe A qui sont en relation avec 1 instance de la classe B par la relation R. Cédric Buche (ENIB) POO 20 novembre 2013 33 / 135

Diagramme de classes (4 UC) Multiplicité : notation Relations entre classes notation : min.. max abreg. signification 1..1 1 exactement 1 0..1 zéro ou un (optionnel) 0..* * aucun ou plusieurs 1..* au moins 1 n..m, p entre n et m ou exactement p Cédric Buche (ENIB) POO 20 novembre 2013 34 / 135

Diagramme de classes (4 UC) Association unidirectionnelle Relations entre classes Cédric Buche (ENIB) POO 20 novembre 2013 35 / 135

Diagramme de classes (4 UC) Contraintes sur une association Relations entre classes CA collection R 0..1 0..* {ordered} CB Promotion 0..1 0..1 2..* {subset} eleves Personne 2 delegues 0..1 Etablissement ecole {or} 1 residenceadministrative * eleves Personne * enseignants Cédric Buche (ENIB) POO 20 novembre 2013 36 / 135

Diagramme de classes (4 UC) Types d association Relations entre classes A1 R1 B1 Association A2 R2 B2 Agrégation Agrégat élément A3 R3 B3 Composition Composite Composant Cédric Buche (ENIB) POO 20 novembre 2013 37 / 135

Agrégation Diagramme de classes (4 UC) Relations entre classes Agrégation : association simple + contraintes d intégrité + graphe acyclique + éléments partageables Cédric Buche (ENIB) POO 20 novembre 2013 38 / 135

Composition Diagramme de classes (4 UC) Relations entre classes Composition : agrégation + contrainte de durée de vie + composants non partageables Cédric Buche (ENIB) POO 20 novembre 2013 39 / 135

Diagramme de classes (4 UC) Relations entre classes Agregation/composition : exemple Cédric Buche (ENIB) POO 20 novembre 2013 40 / 135

Diagramme de classes (4 UC) Relations entre classes Agregation/composition : exemple Cédric Buche (ENIB) POO 20 novembre 2013 41 / 135

Package Diagramme de classes (4 UC) Relations entre classes grouper dans des ensembles cohérents. structurer les diagrammes et donnent une vision globale plus claire. Cédric Buche (ENIB) POO 20 novembre 2013 42 / 135

Navigation Diagramme de classes (4 UC) Relations entre classes pkg1 +b1 AA 0..1 #b2 0..1 -b3 0..1 +op1() #op2() -op3() BB 0..1 +c1 0..1 #c2 AB CC Cédric Buche (ENIB) POO 20 novembre 2013 43 / 135

Diagramme de classes (4 UC) Classe abstraite Propriété optionnelle d une classe Concepts avancés Définition : classe non instanciable ensemble de propriétés communes à différentes classes mais partiellement définies. donc, seuls des objets d une classe dérivée sont instanciables Deux raisons : 1 bien que l instanciation d un tel objet serait possible cela n aurait pas de sens ex. Personne Eleve Prof 2 au moins une des propriétés de la classe n est pas définie ex. Shape opération draw Notation : << abstract >> : tagged-value placée après le nom de la classe NomClass : en italique Cédric Buche (ENIB) POO 20 novembre 2013 44 / 135

Attribut dérivé Diagramme de classes (4 UC) Concepts avancés sa valeur se calcule à partir d autres proprietes de la classe (attributs ou autres) symbolisés par l ajout d un / devant leur nom Cédric Buche (ENIB) POO 20 novembre 2013 45 / 135

Interface Diagramme de classes (4 UC) Concepts avancés <<interface>> Nom + attribut1 + attribut2 + operationa + operationb reception signal1 signal2 Variables d état devant être maintenues Services éventuellement un protocole + description de services Cédric Buche (ENIB) POO 20 novembre 2013 46 / 135

Diagramme de classes (4 UC) Concepts avancés Relation de réalisation : entre classes et interfaces attr1 CA service1 service2 operationa realisation <<interface>> IB service1 service2 Cédric Buche (ENIB) POO 20 novembre 2013 47 / 135

Diagramme de classes (4 UC) Interface : Exemple Concepts avancés Cédric Buche (ENIB) POO 20 novembre 2013 48 / 135

Diagramme de classes (4 UC) Relations avec une interface Concepts avancés <<interface>> I1 <<interface>> I3 <<interface>> I2 <<interface>> I4 <<interface>> CA I5 CA I5 I1 <<interface>> I3 I2 I4 CB <<interface>> I6 CB I6 <<interface>> CC CD I7 CC I7 CD Cédric Buche (ENIB) POO 20 novembre 2013 49 / 135

Diagramme de classes (4 UC) Interface : exemple Concepts avancés description symbolique de l interface lien d utilisation Ilog saisie mot de passe << uses >> Password source de l interface symbole de l interface Cédric Buche (ENIB) POO 20 novembre 2013 50 / 135

Diagramme de classes (4 UC) Classe association cas particuliers d association Concepts avancés A ma ra R mb rb B C Classe association L association entre les classes A et B est réalisée par un objet de la classe C (sous sa responsabilité) la classe C a des propriétés qui lui sont propres (attributs, opérations...) Cédric Buche (ENIB) POO 20 novembre 2013 51 / 135

Classe association exemple Diagramme de classes (4 UC) Concepts avancés Cédric Buche (ENIB) POO 20 novembre 2013 52 / 135

Diagramme de classes (4 UC) Association qualifiée Concepts avancés A ma valeurclé: TypeClé ra R mb rb B Clé : attribut de la relation R permettant de définir (qualifier) le sous-ensemble des instances de la classe B (rôle rb) associées à 1 instance de la classe A le couple (Instance de A, valeur Clé) identifie le sous-ensemble rb. Multiplicité : mb = cardinal de rb Exemple : annuaire inversé Cédric Buche (ENIB) POO 20 novembre 2013 53 / 135

Diagramme de classes (4 UC) Association qualifiée : exemple Concepts avancés Repertoire Repertoire Entreprise Entreprise 1.. * nom fich 1.. * fonction * 1.. * contient contient emploie emploie * 1 1.. * 1.. * Fichier Fichier Personne Personne sans qualifiant avec qualifiant sans qualifiant avec qualifiant Cédric Buche (ENIB) POO 20 novembre 2013 54 / 135

Diagramme de classes (4 UC) Association qualifiée exemple Concepts avancés Cédric Buche (ENIB) POO 20 novembre 2013 55 / 135

Diagramme de classes (4 UC) Association qualifiée exemple Concepts avancés Cédric Buche (ENIB) POO 20 novembre 2013 56 / 135

Diagramme de classes (4 UC) Élaboration Démarche pour bâtir une diagramme de classes (1/2) 1 Trouver les classes du domaine étudié En collaboration avec un expert du domaine. Les classes correspondent généralement à des concepts ou des substantifs du domaine. 2 Trouver les associations entre classes Les associations correspondent souvent à des verbes, ou des constructions verbales, mettant en relation plusieurs classes, comme est composé de, pilote, travaille pour. Attention, méfiez vous de certains attributs qui sont en réalité des relations entre classes. Cédric Buche (ENIB) POO 20 novembre 2013 57 / 135

Diagramme de classes (4 UC) Élaboration Démarche pour bâtir une diagramme de classes (2/2) 3 Trouver les attributs des classes Les attributs correspondent souvent à des substantifs, ou des groupes nominaux, tels que la masse d une voiture ou le montant d une transaction. Les adjectifs et les valeurs correspondent souvent à des valeurs d attributs. 4 Organiser et simplifier le modèle En éliminant les classes redondantes et en utilisant l héritage. 5 Vérifier les chemins d accès aux classes 6 Itérer et raffiner le modèle Un modèle est rarement correct dès sa première construction. Cédric Buche (ENIB) POO 20 novembre 2013 58 / 135

Plan Diagramme de cas d utilisation (1 UC) 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 59 / 135

Plan Diagramme de cas d utilisation (1 UC) 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 60 / 135

Diagramme de cas d utilisation (1 UC) Exprimer les besoins Introduction Comment donner un moyen simple d exprimer les besoins d utilisateurs non informaticiens? Première étape UML d analyse d un système Cédric Buche (ENIB) POO 20 novembre 2013 61 / 135

Diagramme de cas d utilisation (1 UC) Exigences fonctionnelles Introduction Modèle construit en phase de définition des exigences fonctionnelles et enrichi pendant la phase d analyse en utilisant d autres modèles (entre-autres les modèles d interaction) Objectifs : 1 identifier les fonctionnalités du logiciel 2 en définir le périmètre 3 identifier les éléments externes en interaction directe Cédric Buche (ENIB) POO 20 novembre 2013 62 / 135

Acteur Diagramme de cas d utilisation (1 UC) Éléments des diagrammes Définition : rôle joué par une entité externe qui interagit avec le système il peut consulter et/ou modifier l état du système par messages Comment les identifier? utilisateurs humains systèmes connexes qui interagissent également avec le système Comment les représenter? mot clef <<actor>> Acteur3 Acteur3 symbole stick man Acteur1 Exemple : Client, Conseiller financier, SI Banque... Cédric Buche (ENIB) POO 20 novembre 2013 63 / 135

Diagramme de cas d utilisation (1 UC) Cas d utilisation Éléments des diagrammes Définition : Séquences d actions réalisées par le système (résultat observable pour un acteur) Comportement attendu ( mode de réalisation) : ce que le futur devra faire pas comment il le fera Cédric Buche (ENIB) POO 20 novembre 2013 64 / 135

Exemple : Consulter un compte, Retirer de l argent, Déposer un chèque... Cédric Buche (ENIB) POO 20 novembre 2013 65 / 135 Diagramme de cas d utilisation (1 UC) Cas d utilisation Éléments des diagrammes Comment les identifier? Ensemble des cas utilisation == exigences fonctionnelles du système Un cas == fonction métier selon le point de vue des acteurs Pour chaque acteur : rechercher ses utilisations métiers déterminer dans le cahier des charges les services attendus Nommez les cas d utilisation (point de vue acteur) : verbe à l infinitif + complément Comment les représenter?

Diagramme de cas d utilisation (1 UC) Cas d utilisation et acteurs Relations entre acteurs et cas d utilisation Nom_sujet Nom_cas_utilisation_1 Nom_cas_utilisation_2 Nom_acteur_1 Nom_acteur_2 Acteur : élément externe en interaction directe avec le sujet Cas d utilisation : ensemble fonctionnel cohérent, identifiable extérieurement et fourni par un classeur (le sujet) Association Acteur Cas : chemin de communication indiquant la participation de l acteur à la réalisation du cas Cédric Buche (ENIB) POO 20 novembre 2013 66 / 135

Diagramme de cas d utilisation (1 UC) Association : Exemple Relations entre acteurs et cas d utilisation Cédric Buche (ENIB) POO 20 novembre 2013 67 / 135

Diagramme de cas d utilisation (1 UC) Acteurs principaux et secondaires Relations entre acteurs et cas d utilisation Un acteur est qualifié de principal pour un cas d utilisation lorsque ce cas rend service à cet acteur. Les autres acteurs sont alors qualifiés de secondaires. Un cas d utilisation a au plus un acteur principal. Le stéréotype primary vient orner l association reliant un cas d utilisation à son acteur principal Le stéréotype secondary est utilisé pour les acteurs secondaires Cédric Buche (ENIB) POO 20 novembre 2013 68 / 135

Diagramme de cas d utilisation (1 UC) Relations entre acteurs et cas d utilisation Acteurs principaux et secondaires : Exemple Cédric Buche (ENIB) POO 20 novembre 2013 69 / 135

Diagramme de cas d utilisation (1 UC) Types et représentation Relations entre cas d utilisation CA1 <<include>> CB1 CA1 inclut CB1 1 réalisation de CA1 1 réalisation de CB1 CA2 <<extend>> CB2 CA2 étend CB2 dans un certain contexte Selon le contexte, on réalise soit CA2, soit CB2 CA3 CB3 CA3 spécialise CB3 Selon le contexte, on réalise soit CA3, soit CB3 Cédric Buche (ENIB) POO 20 novembre 2013 70 / 135

Diagramme de cas d utilisation (1 UC) Exemple relation d inclusion Relations entre cas d utilisation Le cas inclus est ajouté obligatoirement au cas de base Cédric Buche (ENIB) POO 20 novembre 2013 71 / 135

Diagramme de cas d utilisation (1 UC) Exemple relation d inclusion Relations entre cas d utilisation Identifier une partie commune aux différents cas d utilisation et de la factoriser dans un nouveau cas inclus dans ces derniers. Cédric Buche (ENIB) POO 20 novembre 2013 72 / 135

Diagramme de cas d utilisation (1 UC) Exemple relation d extension Relations entre cas d utilisation Enrichir un cas d utilisation par un autre, cependant, cet enrichissement est optionnel. Cédric Buche (ENIB) POO 20 novembre 2013 73 / 135

Diagramme de cas d utilisation (1 UC) Exemple relation d extension Relations entre cas d utilisation L extension se fait dans le cas d utilisation de base, en un point précis appelé point d extension Cédric Buche (ENIB) POO 20 novembre 2013 74 / 135

Diagramme de cas d utilisation (1 UC) Relations entre cas d utilisation Exemple relation Généralisation/Spécialisation Formaliser les variations importantes sur le même cas d utilisation Cédric Buche (ENIB) POO 20 novembre 2013 75 / 135

Diagramme de cas d utilisation (1 UC) Exemple complet Relations entre cas d utilisation Cédric Buche (ENIB) POO 20 novembre 2013 76 / 135

Diagramme de cas d utilisation (1 UC) Généralisation Relations entre acteurs La seule relation possible entre deux acteurs est la généralisation un acteur A est une généralisation d un acteur B si l acteur A peut être substitué par l acteur B tous les cas d utilisation accessibles à A le sont aussi à B, mais l inverse n est pas vrai. Cédric Buche (ENIB) POO 20 novembre 2013 77 / 135

Diagramme de cas d utilisation (1 UC) Généralisation : Exemple Relations entre acteurs Cédric Buche (ENIB) POO 20 novembre 2013 78 / 135

Scénario Diagramme de cas d utilisation (1 UC) Scénarios : description textuelle Définition : succession particulière d enchaînements s exécutant du début à la fin du cas Un cas d utilisation contient : un scénario nominal plusieurs scénarios alternatifs (qui se terminent normalement) plusieurs scénarios d erreur (qui se terminent par un échec) Cédric Buche (ENIB) POO 20 novembre 2013 79 / 135

Diagramme de cas d utilisation (1 UC) En pratique... Scénarios : description textuelle La fiche de description textuelle d un cas d utilisation n est pas normalisée... Cependant, on peut utiliser la structuration suivante : Sommaire d identification (obligatoire) Description des scénarios (obligatoire) non- (op- Exigences fonctionnelles tionel) Inclut titre, résumé, dates de création et de modification, version, responsable, acteurs... Décrit le scénario nominal, les scénarios d erreur, les pré/postconditions Ajoute, si c est pertinent, les informations suivantes : fréquence ; disponibilté, fiabilité, confidentialité... Cédric Buche (ENIB) POO 20 novembre 2013 80 / 135

Diagramme de cas d utilisation (1 UC) Exemple scénario Scénarios : description textuelle Sommaire Description Scénario nominal Réserver un véhicule 1. Le client saisit son code et son login d identification 2. Le système vérifie le code et le login d identification 3. Le système demande au client de saisir les informations sur la réservation 4. Le client saisit les informations sur la réservation 5. Le système interroge l acteur système bancaire pour vérifier l acompte 6. Le système bancaire donne une réponse favorable 7. Le système envoie au client, un message de confirmation de la demande Cédric Buche (ENIB) POO 20 novembre 2013 81 / 135

Diagramme de cas d utilisation (1 UC) Exemple scénario Scénarios : description textuelle Sommaire Description Scénario alternatif Réserver un véhicule SA1 : code d identification erroné pour la première ou la deuxième fois SA1 démarre au point 2 du scénario nominal 3. Le système indique au client que le code est erroné, pour la première ou la deuxième fois. Le scénario nominal reprend au point 1. Cédric Buche (ENIB) POO 20 novembre 2013 82 / 135

Diagramme de cas d utilisation (1 UC) Exemple scénario Scénarios : description textuelle Sommaire Description Scénario d erreur Réserver un véhicule SE1 : code d identification erroné pour la troisième fois SE1 démarre au point 2 du scénario nominal 3. Le système indique au client que le code est erroné pour la troisième fois. Le cas d utilisation se termine en échec (l objectif n est pas atteint). Cédric Buche (ENIB) POO 20 novembre 2013 83 / 135

Diagramme de cas d utilisation (1 UC) Utilisation Quand utiliser les cas d utilisation? En phase d élaboration En discutant avec les utilisateurs Remarque : Un projet de 10 années-hommes devrait comprendre environ 12 cas d utilisation 1 1. Résulat issu d une commission de l OOPSLA Cédric Buche (ENIB) POO 20 novembre 2013 84 / 135

Plan Diagrammes d interaction (2 UC) 1 Introduction 2 Diagramme de classes (4 UC) 3 Diagramme de cas d utilisation (1 UC) 4 Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 85 / 135

Plan Diagrammes d interaction (2 UC) Cédric Buche (ENIB) POO 20 novembre 2013 86 / 135

Diagrammes d interaction (2 UC) Introduction Du diag. de cas d utilisation au diag. d interactions diag. cas d utilisation scénarios scénario diag. seq/comm Cédric Buche (ENIB) POO 20 novembre 2013 87 / 135

Diagrammes d interaction (2 UC) Introduction Cas d utilisation Piloter scénario nominal pourrait être : un pilote démarre une voiture ce qui allume un moteur. Comment formaliser les communications entre instances (démarrer, allumer)? diag. de communication. Comment formaliser le séquencement des interactions (1 : démarrer ; 2 : allumer)? diag. séquence. Avant cela, il faut représenter les instances (objets) (un pilote, une voiture, un moteur) Cédric Buche (ENIB) POO 20 novembre 2013 88 / 135

Diagrammes d interaction (2 UC) Objet : instance de classifier Introduction nom d instance : nom de classe Exemple jean : Personne pierre : Personne Cédric Buche (ENIB) POO 20 novembre 2013 89 / 135

Diagrammes d interaction (2 UC) Objets : instances de classifier Introduction nomobjet: :NomClasse nomobjet:nomclasse <<stereotype>> :NomClasse :NomActeur nomobjet:nomclasse attr1 = valeur1 nomobjet:nomclasse [etat] Cédric Buche (ENIB) POO 20 novembre 2013 90 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : durée de vie et flots objets temps (logique) : séquencement objet1: message objet2: flots d exécution lignes de vie Cédric Buche (ENIB) POO 20 novembre 2013 91 / 135

Messages Diagrammes d interaction (2 UC) Diagramme de séquence l envoi d un signal ; l invocation d une opération ; la création ou la destruction d une instance. Cédric Buche (ENIB) POO 20 novembre 2013 92 / 135

Diagrammes d interaction (2 UC) Messages asynchrones Diagramme de séquence Cédric Buche (ENIB) POO 20 novembre 2013 93 / 135

Diagrammes d interaction (2 UC) Messages synchrones Diagramme de séquence Cédric Buche (ENIB) POO 20 novembre 2013 94 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Messages de création et destruction d instance Cédric Buche (ENIB) POO 20 novembre 2013 95 / 135

Diagrammes d interaction (2 UC) Événements et messages Diagramme de séquence Cédric Buche (ENIB) POO 20 novembre 2013 96 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Syntaxe des messages et des réponses Cédric Buche (ENIB) POO 20 novembre 2013 97 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Syntaxe des messages et des réponses Cédric Buche (ENIB) POO 20 novembre 2013 98 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Exécution de méthode et objet actif Cédric Buche (ENIB) POO 20 novembre 2013 99 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Exécution de méthode et objet actif Cédric Buche (ENIB) POO 20 novembre 2013 100 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : fragements d interaction combinés Articulation d interactions par des opérateurs : choix et boucle : alternative, option, break, loop contrôle d envoi en parallèle de messages : parallel, critical region contrôle d envoi de messages : ignore, consider, assertion, negative ordre d envoi des messages : weak sequencing, strict sequencing Cédric Buche (ENIB) POO 20 novembre 2013 101 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle sd nom seq ref seqa alt [condition] ref [else] ref Cédric Buche (ENIB) POO 20 novembre 2013 102 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 103 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 104 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 105 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 106 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : structures de contrôle (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 107 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : parallélisme et séquencement sd nom seq strict par Cédric Buche (ENIB) POO 20 novembre 2013 108 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : parallélisme et séquencement Cédric Buche (ENIB) POO 20 novembre 2013 109 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : parallélisme et séquencement (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 110 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : parallélisme et séquencement (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 111 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : section critique (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 112 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : Ignorer (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 113 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : Considérer (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 114 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : Négatif (exemple) Cédric Buche (ENIB) POO 20 novembre 2013 115 / 135

Diagrammes d interaction (2 UC) Diagramme de séquence Diagramme de séquence : invariants d état sd nom seq obj1 obj2 obj3 msg1 etat1 msg2 etat2 Cédric Buche (ENIB) POO 20 novembre 2013 116 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : Lignes de vie Les lignes de vie sont représentées par des rectangles contenant une étiquette dont la syntaxe est : [<nom du r^ole>] : [<Nom du type>] Cédric Buche (ENIB) POO 20 novembre 2013 117 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : Connecteurs Les relations entre les lignes de vie sont appelées connecteurs se représente par un trait plein reliant deux lignes de vies les extrémités peuvent être ornées de multiplicités. Cédric Buche (ENIB) POO 20 novembre 2013 118 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Communication : interactions entre objets par messages liste labels séquence / seq1, seq2/ struct. controle expression logique message prédécesseur condition séquence valeur_retour := nom(arguments) nombre (séq.) nom (parall.) label récurrence *[iteration] *[condition] arg1, arg2 évaluable dans contexte courant Cédric Buche (ENIB) POO 20 novembre 2013 119 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Messages : structures de contrôle exemples condition récur. message [x > 0] : msg() : msg() [x > 0] : msg() [x > 0] [i := 1..n] : msg() Cédric Buche (ENIB) POO 20 novembre 2013 120 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 121 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 122 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 123 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 124 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 125 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 126 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 127 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 128 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 129 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 130 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 131 / 135

Diagrammes d interaction (2 UC) Diagramme de communication Diagramme de communication : exemple Cédric Buche (ENIB) POO 20 novembre 2013 132 / 135

Diagrammes d interaction (2 UC) Lien avec le diagramme de classes Lien avec le diagramme de classes diag. cas d utilisation scénarios scénario diag. seq/comm diag. seq/comm diag. classe Cédric Buche (ENIB) POO 20 novembre 2013 133 / 135

Diagrammes d interaction (2 UC) Utilisation Quand utiliser le modèle d interaction? Lorsque vous souhaitez visualiser le comportement de plusieurs objets dans un seul cas d utilisation Attention Si vous souhaitez visualisez le comportement d un même objet dans plusieurs cas d utilisation : utiliser le diagramme d états-transitions Si vous souhaitez visualisez un comportement réparti sur plusieurs cas d utilisation : utiliser le diagramme d activité Cédric Buche (ENIB) POO 20 novembre 2013 134 / 135

Diagramme d interactions Informatique S4-POO Programmation Orientée Objet UML Cédric Buche École Nationale d Ingénieurs de Brest (ENIB) 20 novembre 2013 Cédric Buche (ENIB) POO 20 novembre 2013 135 / 135