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