Cours de

Méthodologies de conception orientée objet
Institut Supérieur d’Informatique de Mahdia AU : 2012-2013

Proposé par : Riadh HADJ M’TIR Riadh.hadjmtir@riadi.rnu.tn Classe : LAI 2

Objectifs du cours Vos compétences actuelles
Programmation individuelle sur de petits problèmes Algorithmiques, langages de programmation et structures de données

Vous devez savoir (au cours d’un projet)
Travail en équipes sur des projets longs et complexes Spécifications de départ peu précises Dialogue avec le client/utilisateur (parler métier ou non info) Organisation, planification, gestion du risque

Démarche «Ingénierique » : Génie Logiciel
Riadh HADJ M’TIR – 2012/2013

2

Plan du cours

Introduction Le paradigme objet
De l’approche fonctionnelle vers l’approche objet Concepts principaux de l’approche objet Objets et relations entre les objets

Le Langage UML
Introduction Description du processus du développement : « Le processus Unifié » Les diagrammes de UML
Riadh HADJ M’TIR – 2012/2013

3

Chapitre I

Introduction

Riadh HADJ M’TIR – 2012/2013

4

Introduction Cycle de vie d’un logiciel Qu’est-ce qu’un cycle de vie logiciel ? Enchaînement des activités de développement logiciel Définition des Pré et Post conditions pour chaque phase Procédures de gestion et d’encadrement Procédures de mesures Cycle de vie logiciel : synonyme de méthodologie logiciel Riadh HADJ M’TIR – 2012/2013 5 .

décomposition du processus globale de la production du logiciels afin de mieux maîtriser la complexité 3 Q? POURQUOI le faire Etude préalable QUOI faire spécification COMMENT le faire Conception Riadh HADJ M’TIR – 2012/2013 6 .Introduction Processus logiciel CVL : Cycle de vie d’un logiciel Démarre par la décision de développement d’un logiciel Se termine par la mise hors service du logiciel Processus de développement Une certaine modélisation.

Introduction Cycle de vie d’un logiciel Etapes d’un cycle de vie Analyse : opportunité fonctionnelle et faisabilité technique. spécification des besoins Conception : choix tactiques de réalisation et d’architecture Codage / implémentation: réalisation informatique du détail des opérations Test / validation: tests unitaires et d’intégration Riadh HADJ M’TIR – 2012/2013 7 .

Introduction CVL : Analyse des besoins Etape préalable si le client n’a qu’une idée peu précise du système à réaliser Etude informelle des fonctionnalités (externe) du système sans considération technique : point de vue métier / utilisateur Dialogue fournisseur/Client en terme intelligibles pour ce dernier : l’aider à formaliser le problème à résoudre Produit un document textuel avec des schémas Conduit généralement à un cahier des charges Riadh HADJ M’TIR – 2012/2013 8 .

besoins supplémentaire … Riadh HADJ M’TIR – 2012/2013 9 .Introduction CVL : Spécifications Ce que doit faire le système (coté client) Document précis spécifiant les fonctionnalités attendues Base du contrat commercial avec le client Document facile à comprendre par le client Exemple : définition de la frontière du système. interactions Les spécifications ne sont jamais complètes et définitives : évolution du domaine. description des fonctionnalité du système avec scénarios.

états par lesquels ils passent suivant certains événements. L’analyse n’est jamais complète mais doit être juste Riadh HADJ M’TIR – 2012/2013 10 . structures et relations.Introduction CVL : Analyse du système « QUOI FAIRE? » comprendre et modéliser Réflexion hors de toute considération technique Reste un support de discussion avec le client Premier modèle du système • Identifier les éléments intervenants hors (acteur) et dans le système : fonctionnalités.

Introduction CVL : Exemple le DAB Réaliser l’analyse des besoins et la spécification d’un distributeur automatique de billets Riadh HADJ M’TIR – 2012/2013 11 .

infrastructure (implémentation). portabilité. • Permet la définition des phases de l’implémentation.Introduction CVL : Conception Comment faire le système : choix techniques Choix d’une architecture technique (matériel. efficacité. logiciel) suivant certaines priorités (facteurs qualités : robustesse. de validation et de maintenance Riadh HADJ M’TIR – 2012/2013 12 .…) Expertise informatique : hors compréhension du client Modèle de l’architecture logicielle du système • Décomposition en sous systèmes : application (interfaces) domaines (métier).

Introduction CVL : Implémentation Souvent trop de temps consacré au codage au détriment des phases d’analyse et de conception : mauvaise pratique parfois très coûteuse… Savoir user de la réutilisation de composant voire d’outils de génération de code (mise en place automatique du squelette du code à partir du modèle systèmes ) l’activité de développement sera de plus en plus tournée vers la réutilisation des composants existants Riadh HADJ M’TIR – 2012/2013 13 .

Introduction Test de vérification CVL : Validation Vérification de la robustesse et cohérence du système en particulier dans les cas d’exceptions Testeurs ≠ concepteur ou programmeur Logiciels de test : toute ligne de code doit être testée Recette : Validation client : accord avec les besoins Une fois les tests de vérification satisfaisants Planification des spécifications : cahier des recettes Activité souvent sous estimée Riadh HADJ M’TIR – 2012/2013 14 .

Chapitre II Le paradigme objet Riadh HADJ M’TIR – 2012/2013 15 .

De l’approche fonctionnelle vers l’approche objet L’approche fonctionnelle Les approches fonctionnelles (méthodes structurées) trouvent leur origine dans les langages procéduraux Elles mettent en évidence les fonctions à assurer et proposent une approche hiérarchique descendante et modulaire Décomposition fonctionnelle descendante raffinements successifs pour produire des spécifications Riadh HADJ M’TIR – 2012/2013 16 .

De l’approche fonctionnelle vers l’approche objet L’approche fonctionnelle (2) Raisonnement en terme de fonctions du système l’accent est mis sur les fonctions et non sur les données Séparation des données et du code de traitement dissocier le problème de la représentation des données. du problème du traitement de ces données Diffusion des responsabilités Intégrité des données non garantie Ajout possible de nouvelles opérations à tout moment Riadh HADJ M’TIR – 2012/2013 17 .

int rapidite.…). Marcher (Héros. Riadh HADJ M’TIR – 2012/2013 18 .De l’approche fonctionnelle vers l’approche objet L’approche fonctionnelle (3) Héros Marcher Courir Sauter Tomber Coucher Application « MonJeu » struct Héros { char* nom. Coucher (Héros.…). }. int Taille.

De l’approche fonctionnelle vers l’approche objet L’approche fonctionnelle (3) Limites Un programme est conçu comme un ensemble de modules fonctionnels (procédures ou fonctions) qui manipulent des données Communication entre fonctions : par passage de paramètres par variables globales Accès libre aux données par n’importe quelle fonction Difficulté de réutiliser du code déjà écrit et testé une modification des données entraîne généralement une modification d’un nombre important de fonctions éparpillées et difficiles à identifier dans une hiérarchie de décomposition Riadh HADJ M’TIR – 2012/2013 19 .

De l’approche fonctionnelle vers l’approche objet L’approche fonctionnelle (4) La solution à ces limites et problèmes ? L’approche Objet Riadh HADJ M’TIR – 2012/2013 20 .

tangible et surtout stable quant au problème traité Diminution de l’écart entre le monde réel et sa représentation informatique (approche naturelle) Localisation des responsabilités : encapsulation Suite à la modification d’une donnée. généralisation/spécialisation Riadh HADJ M’TIR – 2012/2013 21 .De l’approche fonctionnelle vers l’approche objet L’approche Objet Regroupement données-traitements L’approche objet est une approche orientée donnée les fonctions se déduisent d’un regroupement de champs de données formant une entité cohérente. logique. seul l’objet encapsulant cette donnée sera modifié les fonctions à modifier sont bien identifiées : elles se trouvent dans ce même objet : ce sont ses méthodes Décomposition par identification des relations entre objets : Association. composition.

coucher(…) nom. rapidite Coucher Courir Riadh HADJ M’TIR – 2012/2013 22 .De l’approche fonctionnelle vers l’approche objet L’approche Objet (2) Les données ne sont manipulables que par l’objet lui-même Héros Application « MonJeu » Tomber Marcher Heros. taille.

L’approche Objet POO. chacun étant une instance d'une classe. COO et AOO Programmation Orientée-Objet (POO) .une méthode d'implantation dans laquelle les programmes sont organisés comme une collection d'objets.une méthode d'analyse qui examine les besoins d'un point de vue de classes et d'objets trouvés dans le domaine du problème Riadh HADJ M’TIR – 2012/2013 23 .une méthode de conception contenant le processus de décomposition en objets et une notation décrivant les modèles logique et physique aussi bien que les modèles statiques et dynamiques du système à concevoir Analyse Orientée Objet (AOO) . lesquels font partie d'une hiérarchie de classes unifiées via des relations d'héritage Conception Orientée Objet (COO) .

L’approche Objet relations entre POO. COO et AOO AOO Est suivi par Est suivi par Construit Objets Utilisés dans Construit COO Utilisés dans Objets POO Riadh HADJ M’TIR – 2012/2013 24 .

généricité Riadh HADJ M’TIR – 2012/2013 25 . Réduit le code produit héritage (le retour) liaison dynamique. confidentialité du code héritage ..L’approche Objet récapitulatif Sépare spécification et implantation Organise le développement en unités plusieurs programmeurs plusieurs niveaux de programmation Exploite des composants écrits par d’autres encapsulation..

des traitements Spécification (rédaction d’un cahier des charges) Conception Organiser données et traitements en objets Organiser les objets en types d’objets Relier ces types entre eux Déclaration de chaque type (interface) Implantation (choix d’un langage objet) Programmation des méthodes de chaque type Riadh HADJ M’TIR – 2012/2013 26 .Concepts de base l’approche Objet Analyse d’un sujet Repérer des données.

Concepts de base l’approche Objet Objets Identité État Comportement Relations entre objets Message Interface Abstraction Classe/Interface Hiérarchie Polymorphisme Riadh HADJ M’TIR – 2012/2013 27 .

c’est à dire les traitements que l’on peut faire dessus Riadh HADJ M’TIR – 2012/2013 28 . Les objets encapsulent une partie des connaissances du monde dans lequel ils évoluent.Concepts Objets Qu’est ce qu’un objet? Un objet définit une représentation d’une entité atomique réelle ou virtuelle. dans le but de le piloter ou de le simuler. Un objet associe données et traitements en ne laissant visible que l’interface de l’objet.

Riadh HADJ M’TIR – 2012/2013 29 .Concepts Objets Qu’est ce qu’un objet? Objet = Identité + Etat + Comportement L’Identité : caractérise de manière univoque l’existence propre de l’objet. L’état : décrit les propriétés d’un objet à un moment donné Le comportement : définit les propriétés dynamiques de l’objet : comment il agit et comment il réagit aux informations qui lui parviennent de son environnement.

Concepts Objets Objet : Identité Existence propre d’un objet Distinguer des objets ayant le même état Si on le souhaite. on peut cependant rajouter un identifiant dans l’état de l’objet (clé naturelle) • Numéro ISIMA • Numéro étudiant • Numéro Notion de clé primaire en base de données Riadh HADJ M’TIR – 2012/2013 30 .

Concepts Objets Objet : Etat Etat = Ensemble d’attributs Chaque attribut caractérise une propriété précise Les attributs peuvent prendre à un moment donné toutes les valeurs d’un domaine de définition donné Exemple : Base de Données Une personne nom = Ali age = 35 métier = Médecin Riadh HADJ M’TIR – 2012/2013 31 .

Concepts Objets Objet : Etat Exemple : OLE dans MicrosoftTM Access Attributs de l’objet graphique Riadh HADJ M’TIR – 2012/2013 32 .

Concepts Objets Objet : Comportement Comportement = Ensemble de méthodes Méthode = opération atomique qu’un objet réalise soit de son propre chef. soit en réaction à une stimulation de l’environnement (envoi de message d’un autre objet) L’action réalisée dépend de l’état de l’objet Exemple : Base de Données Une personne nom = Ali age = 35 métier = Médecin ChangerAge Riadh HADJ M’TIR – 2012/2013 33 .

Concepts Objets Objet : Comportement Types de méthodes constructeur : crée et initialise l’objet CreerPersonne modificateur : modifie l’état de l’objet ChangerAge observateur : donne une information sur l’état DonnerAge destructeur : détruit l’objet OterPersonne Cycle de vie d’un objet Tout objet est créé. et est détruit … Riadh HADJ M’TIR – 2012/2013 34 . évolue.

Concepts Objets Objet : Comportement Exemple : OLE dans MicrosoftTM Access modifieur ChangeItalique Riadh HADJ M’TIR – 2012/2013 35 .

Concepts Objets Relations entre objets : messages Système : société d’objet en relation Dynamique du système : collaborations entre objets Interaction non structurée par passage de message Interface : contrôle de la modularité Interface = méthode invocable par l’extérieur L’état d’un objet ne peut être modifié par l’extérieur qu’en invoquant une méthode de l’interface L’objet peut refuser de répondre à une invocation de l’extérieur L’objet garde toujours la maîtrise de son état Riadh HADJ M’TIR – 2012/2013 36 .

Concepts Objets Relations entre objets : interface Abstraction des données Un objet est complètement défini par son interface Les autres objets n’ont pas à connaître l’implémentation interne de l’objet pour communiquer avec lui Méthodes d’implémentation Autres objets interface attributs Partie publique Riadh HADJ M’TIR – 2012/2013 Partie privée 37 .

DonnerMetier Méthodes d’implémentation VerifMajuscule.Concepts Objets Relations entre objets : exemple BD Une personne nom = Ali age = 35 métier = Médecin Méthodes publiques : interfaces ChangerNom. ChangerAge. VerifSupZero Riadh HADJ M’TIR – 2012/2013 38 . DonnerAge. ChangerMetier DonnerNom.

Concepts Objets Relations entre objets : exemple BD (1) Message(ChangerAge(-36)) objet IHM « saisie âge » (2) VerifSupZero(-36) (3) Message(ERREUR) objet « personne : Ali » Riadh HADJ M’TIR – 2012/2013 39 .

Concepts Objets Relations entre objets : exemple « Access » objet graphique (1) Clic(ItaliqueArea) objet contrôle souris (2) Message(On(Italique)) (3) Message(ChangeItalique(1)) objet IHM « italique » Riadh HADJ M’TIR – 2012/2013 40 .

Concepts Objets Classe La classe : une nouvelle étape dans l’abstraction Rechercher les similitudes et ignorer les différences Personne nom age Abstraction pour réduire la complexité Riadh HADJ M’TIR – 2012/2013 41 .

comportements) communs aux éléments de la classe Classe = ensemble d’objets réunis Classe et objet Toute classe est un objet : identité + état + comportement Riadh HADJ M’TIR – 2012/2013 42 .Concepts Objets Classe (2) Classe = objet prototypique décrivant l’ensemble des propriétés (structure d’attribut.

Concepts Objets Classe (3) Description d’une famille d’objets ayant même structure et même comportement : abstraction Chaque classe possède : une composante «statique» : attributs ou champs possédant une valeur une composante «dynamique» : méthodes qui représentent le comportement commun des objets de la classe Riadh HADJ M’TIR – 2012/2013 43 .

05 * prixHT) retirer(q) : // quantité = quantité .q ajouter(q) : // quantité = quantité + q Riadh HADJ M’TIR – 2012/2013 44 .206 * prixHT) prixTransport() : // retourner (0.Concepts Objets Classe (4) Exemple de définition de classe d’objets CLASSE Article ATTRIBUTS référence désignation prixHT quantité METHODES prixTTC() : // retourner (1.

Concepts Objets Classe : Instanciation Instance Tout objet d’une classe est appelé instance de la classe La classe décrit la structure des ses instances : elles auront les même attributs et méthodes que la classe Cycle de vie d’une instance Création d’instance : constructeur méthode de classe qui ne sera pas dans le comportement de l’instance L’état courant d’une instance est défini en contexte et en toute indépendance par l’objet créé Riadh HADJ M’TIR – 2012/2013 45 .

Concepts Objets Classe : Instanciation (exemple) Personne1 Nom = Salah Age = 1 ChangerAge Instance de Instance de Personne2 Nom = Hamza Age = 1 ChangerAge Personne nom age ChangerAge CreerPers Classe Personne3 Instance de Nom = Anis Age = 5 ChangerAge Riadh HADJ M’TIR – 2012/2013 46 .

Concepts Objets Classe : Hiérarchie des classes La super-classe. elle peut être elle aussi comme l’instance d’une classe supérieure est_un est_un Faune est_un Humain Animal Instance_de Fleur Instance_de classes est_un Vivant Super-classes instances Riadh HADJ M’TIR – 2012/2013 47 . ou l’abstraction récursive Puisque une classe est un objet.

comportement) d’une classe vers ses sous classes Ce qui est générique est défini au niveau de la superclasse.Concepts Objets Classe : Héritage Héritage Mécanisme de transmission des propriétés (attributs. Spécialisation : création d’une sous-classe par mise en avant de propriétés spécifiques non communes à toutes les (classes) instances de la super-classe Riadh HADJ M’TIR – 2012/2013 48 . ce qui est spécifique est défini au niveau de la sous-classe Généralisation/spécialisation Généralisation : mise en commun des propriétés communes entre différentes classes dans une superclasse.

Concepts Objets Classe : Héritage (exemple) Vivant age hérite_de Faune aliment hérite_de Spécialisation hérite_de Fleur espèce Instance_de Généralisation hérite_de Humain nom métier Instance_de Animal espèce Riadh HADJ M’TIR – 2012/2013 49 .

Concepts Objets Classe : Héritage (Classe abstraite) Classe ne permettant pas d’instancier d’objets Exemple Classe Vivant Classe Faune Vivant age Faune age aliment Utilité Représentation de concepts centraux pour l’application Riadh HADJ M’TIR – 2012/2013 50 .

Concepts Objets Classe : Héritage Difficulté de la classification analyse/ conception Vivant age Faune aliment Humain nom métier Animal espèce Fleur espèce Riadh HADJ M’TIR – 2012/2013 51 .

Concepts Objets Classe : Héritage Elément Vivant age Faune aliment Humain nom métier Animal espèce Fleur espèce Objet • 1ère solution Riadh HADJ M’TIR – 2012/2013 52 .

Concepts Objets Classe : Héritage • 2ème solution Elément Animé Inanimé Humain Animal Fleur Objet Riadh HADJ M’TIR – 2012/2013 53 .

Concepts Objets Classe : Héritage multiple Définition lorsque une classe hérite des propriétés de plusieurs super-classes Exemple : Base de données personne personnel étudiant Administratif Enseignant Doctorant Riadh HADJ M’TIR – 2012/2013 54 .

O. préfixage de la propriété. propriétés entre classes Héritage multiple inconnu de certains L.O Riadh HADJ M’TIR – 2012/2013 55 .Concepts Objets Classe : Héritage multiple Conflits entre propriétés héritées Exemple : filière d’inscription et d’enseignement Solution : interdiction de conflits de noms d’attributs.

Chapitre III Le langage UML « Unified Modeling Language » Langage unifié pour la modélisation objet Riadh HADJ M’TIR – 2012/2013 56 .

d’ailes en soufflerie etc.Introduction à UML La Modélisation Pourquoi modéliser? Un modèle est une abstraction de la réalité Modéliser = identifier les caractéristiques intéressantes et pertinentes d’un système Avant de construire un avion. on conçoit des plans... des essais de moteurs. Riadh HADJ M’TIR – 2012/2013 57 . des tests.

Introduction à UML La Modélisation La modélisation permet de mieux visualiser et contrôler la construction du système C’est aussi un outil pour communiquer entre les membres de l’équipe La compréhension du système est facilitée par celle du modèle Riadh HADJ M’TIR – 2012/2013 58 .

il doit permettre de simuler le phénomène étudié. il réduit la complexité 2. il reproduit ses comportements Le logiciel n’échappe pas à la règle c’est-àdire obtenir des logiciels de bonne qualité Riadh HADJ M’TIR – 2012/2013 59 . il doit faciliter la compréhension du phénomène étudié.Introduction à UML Caractéristiques essentielles d’un bon modèle 1.

Introduction à UML Modèle d’un système Informatique Il doit aider à: mieux comprendre. percevoir les relations et les interactions à l’intérieur du système visualiser les conséquences de modifications apportées au système visualiser également les raisons du comportement du système par rapport à une situation donnée C’est donc un guide pour construire un système stable et fiable Le modèle doit également aider à documenter le système construit Riadh HADJ M’TIR – 2012/2013 60 .

Le langage UML Introduction Fondations issues de diverses méthodes Orientées Objet Rumbaugh (OMT) Booch (OOD) Jacobson (OOSE) Il s’agit d’un langage de modélisation Riadh HADJ M’TIR – 2012/2013 61 .

Le langage UML Qu’est ce que UML ? UML est un langage pour la modélisation Langage visuel de modélisation Adapté à toutes les phases du développement Compatible avec toutes les techniques de réalisation Mécanismes d’extension et de spécialisation en vue d’étendre les concepts de base Indépendant des langages de programmation Riadh HADJ M’TIR – 2012/2013 62 .

Son indépendance (par rapport aux langages d'implémentation. qui permettent de mieux contrôler la complexité dans l'expression des solutions objets..) en font un langage universel.. plusieurs niveaux d'abstraction. Riadh HADJ M’TIR – 2012/2013 63 . UML est un support de communication Sa notation graphique permet d'exprimer visuellement une solution objet. domaine d'application.Le langage UML Objectifs UML cadre l'analyse objet. Son aspect visuel facilite la comparaison et l'évaluation de solutions. processus. en offrant : différentes vues (perspectives) complémentaires d'un système. qui guident l'utilisation des concept objets. L'aspect formel de sa notation limite les ambiguïtés et les incompréhensions.

Le langage UML A quoi sert UML ? UML est un langage pseudo-formel UML est fondé sur un métamodèle. Le métamodèle d'UML permet de classer les concepts du langage (selon leur niveau d'abstraction ou domaine d'application) et expose sa structure. qui définit : o les éléments de modélisation (les concepts manipulés par le langage). UML n'est pas une méthode ou un processus Il doit être complété par une méthode pour obtenir un processus de génie logiciel complet RUP (Rational Unified Process) XP (eXtreme Programming) 2TUP (Two Track Unified Process) Riadh HADJ M’TIR – 2012/2013 64 . o la sémantique de ces éléments (leur définition et le sens de leur utilisation).

Le langage UML Processus de développement ? Un processus définit QUI fait QUOI. Riadh HADJ M’TIR – 2012/2013 65 . QUAND et COMMENT pour atteindre un certain objectif Construction des modèles d’un ou de plusieurs systèmes Organisation du projet Gérer le cycle de vie du projet de A à Z Gérer les risques Obtenir de manière répétitive des produits de qualité constante Le Processus Unifié de Rational (RUP) est un processus générique qui utilise UML comme langage de modélisation.

Le langage UML RUP : Caractéristiques ? Propose une démarche de développement guidée par les besoins des utilisateurs du système (les cas d’utilisation) centrée sur l'architecture logicielle itérative et incrémentale Riadh HADJ M’TIR – 2012/2013 66 .

les développeurs créent une série de modèles de conception et d’implémentation réalisant les CU Chacun des modèles successifs est ensuite révisé pour en contrôler la conformité par rapport au modèle des cas d’utilisation Enfin. les testeurs testent l’implémentation pour s’assurer que les composants du modèle d’implémentation mettent correctement en œuvre les cas d’utilisation.Le langage UML RUP : Guidé par les besoins des utilisateurs Le processus est centré sur l’utilisateur Que doit pouvoir faire le système pour chaque utilisateur ? A partir du modèle des CU. Riadh HADJ M’TIR – 2012/2013 67 .

Sélectionner d’autres cas d’utilisation et refaire de même. Adapter l’architecture pour qu’elle prenne en compte ces cas d’utilisation. Elle doit prévoir la réalisation de tous les cas d’utilisation. Travailler sur les cas d’utilisation représentant les fonctions essentielles.Le langage UML RUP : Centré sur l’architecture L’architecture regroupe les différentes vues du système qui doit être construit. Riadh HADJ M’TIR – 2012/2013 68 . Démarche à suivre: Créer une ébauche grossière de l’architecture.

qui permettent de définir un modèle d'architecture (Ph. Kruchten. Vue logique Analystes/ Concepteurs Structure Fonctionnalités pour l’utilisateur final Vue d’implémentation Programmeurs Génie logiciel Cas d’utilisation Vue du processus Intégrateurs systèmes Performance Échelles de mesure Capacité de traitement Riadh HADJ M’TIR – 2012/2013 Vue de déploiement System Engineering Topologie du système Livraison.Le langage UML RUP : Centré sur l’architecture Différentes perspectives proposées. installation communication 69 . IEEE. 1995). indépendantes et complémentaires.

Elle identifie la plupart des paquetages. threads ou processus.Le langage UML RUP : Centré sur l’architecture Le Processus Unifié de Rational identifie 4 vues + 1 : • La vue logique concerne les exigences fonctionnelles du système. • La vue du processus concerne les aspects concurrents du système à l’exécution: tâches. • La vue d’implémentation décrit l’organisation des modules du logiciel. • La vue de déploiement montre comment les différents exécutables sont structurés dans la plate-forme ou les différents nœuds. et leur interaction. Riadh HADJ M’TIR – 2012/2013 70 . sous-systèmes et classes. • La vue des cas d’utilisation contient les scénarios principaux qui sont utilisés pour faire fonctionner l’architecture et pour la valider.

Une itération reprend les livrables dans l’état où les a laissé l’itération précédente et les enrichit progressivement (incrémental).Le langage UML RUP : Itératif et incrémental Découpe un projet en “mini-projets” : des ITÉRATIONS qui donnent lieu à un INCRÉMENT Chaque itération comprend un certain nombre de cas d’utilisation et doit traiter en priorité les risques majeurs. Riadh HADJ M’TIR – 2012/2013 71 .

Le langage UML RUP : Cycle de vie UP répète un certain nombre de fois une série de cycle qui s'articule autours de 4 phases : analyse des besoins élaboration construction transition Riadh HADJ M’TIR – 2012/2013 72 .

Le langage UML RUP : Cycle de vie (Les phases) Analyse Temps Vision Elaboration Construction Transition Analyse des besoins :Traduit une idée en vision de produit fini et présente une étude de rentabilité pour ce produit Que va faire le système pour les utilisateurs ? Déterminer les besoins fonctionnels et non fonctionnels Définir les frontières et identifier les interfaces Développer les cas d’utilisation A quoi peut ressembler l’architecture d’un tel système ? Identifier les risques les plus sérieux Démontrer que le système proposé est en mesure de résoudre les problèmes ou de prendre en charge les objectifs fixés Quels sont l’organisation et les coûts du développement de ce produit ? Riadh HADJ M’TIR – 2012/2013 73 .

Le langage UML RUP : Cycle de vie (Les phases) Analyse Temps Vision Architecture Elaboration Construction Transition Elaboration : Permet de préciser la plupart des cas d’utilisation et de concevoir l’architecture du système. le chef de projet doit être en mesure de prévoir les activités et d’estimer les ressources nécessaires à l’achèvement du projet. Riadh HADJ M’TIR – 2012/2013 74 . Formuler les cas d'utilisation pour couvrir les besoins fonctionnels et planifier la phase de construction A l’issue de cette phase.

Le produit contient tous les cas d'utilisation que les chefs de projet. L'architecture de référence se métamorphose en produit complet.Le langage UML RUP : Cycle de vie (Les phases) Analyse Temps Vision Architecture Premières fonctionnalités Elaboration Construction Transition Construction : La construction est le moment où l'on construit le produit. en accord avec les utilisateurs ont décidé de mettre au point pour cette version. Riadh HADJ M’TIR – 2012/2013 75 .

Le langage UML RUP : Cycle de vie (Les phases) Analyse Temps Vision Architecture Premières fonctionnalités Livraison Produit Elaboration Construction Transition Transition : Préparation des activités Recommandations au client sur la mise à jour de l’environnement logiciel Elaboration des manuels et de la documentation concernant la version du produit Adaptation du logiciel Correction des anomalies Livraison du produit aux utilisateurs Riadh HADJ M’TIR – 2012/2013 76 .

Riadh HADJ M’TIR – 2012/2013 77 . Le modèle de cas d'utilisation présente le système du point de vue de l'utilisateur et représente sous forme de cas d'utilisation et d'acteur. les besoins du client.Le langage UML RUP : Cycle de vie (Les activités) Expression des besoins inventorier les besoins principaux et fournir une liste de leurs fonctions recenser les besoins fonctionnels (du point de vue de l'utilisateur) qui conduisent à l'élaboration des modèles de cas d'utilisation Appréhender les besoins non fonctionnels (technique) et livrer une liste des exigences.

structures et relations. Il s'agit de livrer des spécifications pour permettre de choisir la conception de la solution. la modification et la maintenance du futur système. états par lesquels ils passent suivant certains événements. Riadh HADJ M’TIR – 2012/2013 78 . L'objectif de l'analyse est d'accéder à une compréhension des besoins et des exigences du client. Un modèle d'analyse livre une spécification complète des besoins issus des cas d'utilisation et les structure sous une forme qui facilite la compréhension (scénarios). la préparation (définition de l'architecture).Le langage UML RUP : Cycle de vie (Les activités) Analyse : « QUOI FAIRE? » comprendre et modéliser Réflexion hors de toute considération technique Premier modèle du système • Identifier les éléments intervenants hors (acteur) et dans le système : fonctionnalités.

de validation et de maintenance Elle détermine les principales interfaces et les transcrit à l'aide d'une notation commune.Le langage UML RUP : Cycle de vie (Les activités) Conception : Comment faire le système : choix techniques Choix d’une architecture technique (matériel. infrastructure (implémentation). Elle constitue un point de départ à l'implémentation : • elle décompose le travail d'implémentation en sous-système • elle créée une abstraction transparente de l'implémentation Riadh HADJ M’TIR – 2012/2013 79 . logiciel) Modèle de l’architecture logicielle du système • Décomposition en sous systèmes : application (interfaces) domaines (métier). • Permet la définition des phases de l’implémentation.

Le langage UML RUP : Cycle de vie (Les activités) Implémentation L'implémentation est le résultat de la conception pour implémenter le système sous formes de composants. Les objectifs principaux de l'implémentation sont de planifier les intégrations des composants pour chaque itération. c'est-à-dire. de binaires. de scripts. Riadh HADJ M’TIR – 2012/2013 80 . de code source. et de produire les classes et les sous-systèmes sous formes de codes sources. d'exécutables et d'autres éléments du même type.

Riadh HADJ M’TIR – 2012/2013 81 . Pour mener à bien ces tests. les implémenter en créant des cas de tests. effectuer ces tests et prendre en compte le résultat de chacun.Le langage UML RUP : Cycle de vie (Les activités) Tests et validation Les tests permettent de vérifier des résultats de l'implémentation en testant la construction. il faut les planifier pour chaque itération.

Le langage UML Diagrammes En UML : 9 principaux diagrammes 5 Diagrammes structurels (vue statique) • • • • • • • • • Cas d’utilisation Classes Objets Composants Déploiement Séquence Activités Etats-Transitions Collaboration 4 diagrammes comportementaux (vue dynamique) Riadh HADJ M’TIR – 2012/2013 82 .

Le langage UML Structure Composants Structuraux Classe Interface Collaboration Cas d’utilisation Classe active Composant Nœud Interaction Machine à états Package note Dépendance Association Généralisation Réalisation Vues statiques Diagrammes de cas d’utilisation Diagrammes d’objets Diagrammes de classes Diagrammes de composants Diagrammes de déploiement Diagrammes de collaboration Diagrammes séquence Diagrammes d’états-transitions Diagrammes d’activités 83 Comportementaux Regroupement Annotation Relations Diagrammes Vues dynamiques Riadh HADJ M’TIR – 2012/2013 .

Le langage UML Liens entre les diagrammes Diagramme de composants Diagramme de cas d’utilisation Diagramme de classes Diagramme de déploiement Cas d’utilisation Diagramme de séquences Diagramme de collaboration Diagramme des états-transitions est utilisé par Riadh HADJ M’TIR – 2012/2013 84 .

Le langage UML Relation entre diagrammes et étapes du processus Découverte des besoins & Analyse Diagramme de cas d’utilisation : décrit les fonctions du système selon le point de vue de ses futurs utilisateurs (Jacobson) Diagramme de séquence : représentation des interactions temporelles entre objets dans la réalisation d’une interface Homme-Système Conception : Diagramme de classes : structure des données du système définies comme un ensemble de relations entre classes Diagramme d’objets : illustration des objets et de leur relations Diagramme de collaboration : représentation des interactions entre objets Diagramme d’états-transitions : représentation du comportement des objets d’une classe en terme d’états et de transitions d’états Diagramme d’activités : structure d’une opération en actions Riadh HADJ M’TIR – 2012/2013 85 .

Le langage UML Relation entre diagrammes et étapes du processus Conception Diagramme de séquence : représentation des interactions temporelles entre objets dans la réalisation d’une opération Diagramme de déploiement : description du déploiement des composants sur les dispositifs matériels Diagrammes de composants : architecture des composants physiques d’une application Riadh HADJ M’TIR – 2012/2013 86 .

debugage. fetchDoc( ) sortByName( ) FileList fList 1 Diagramme d’état transition add file add file [ numberOffile==MAX ] / flag OFF Writing Openning Acteur A Use-Case 2 close file Acteur B close file Reading rep Repository (from Persistence) name : char * = 0 File GrpFile Closing read( ) Expert du Domaine readDoc( ) readFile( ) read( ) open( ) create( ) fillFile( ) Use-Case 3 UI <<entity>> Customer name addr receive() withdraw() fetch() send() MFC Classe Repository DocumentList Diagramme de déploiement ºÐ»ê ȯ °æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬° á ¸ðµ¨ . 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù.EXE Solaris Alpha UNIX ÀÀ¿ë¼-¹ö.À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® . 9: sortByName ( ) Diagramme de séquence Programme exécutable Riadh HADJ M’TIR – 2012/2013 87 .À¯ ´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö..EXE Windows NT GraphicFile File IBM Mainf rame FileList µ¥ÀÌŸº£À̽º¼-¹ö 7: readFile ( ) 5: readDoc ( ) document : Document repository : Repository Diagramme de Collaboration mainWnd user fileMgr : FileMgr document : Document gFile repository Ư Á¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. Åë½Å ¼-¹ö DocumentApp RogueWave Persistence Window95 Windows95 Windows95 9: sortByNam e ( ) global FileManager mainWnd : MainWnd 1: Doc view request ( ) L ¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®. 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) Diagramme de composant Forward Engineering(Code Generation) and Reverse Engineering Codage.Le langage UML Relation entre diagrammes et étapes du processus Diagramme de cas d’utilisation Use-Case 1 add( ) delete( ) Diagramme de classes DocumentList FileMgr add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) read() fill the code.À©µµ¿ì NT: ÀÀ¿ë¼-¹ö .IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö. compilation. Åë½Å ¼-¹ö .EXE ¹®¼-°ü¸® ¾ÖÇø´ Windows NT 2: fetchDoc( ) 4: create ( ) gFile : GrpFile Définition d’une interface utilisateur 8: fillFile ( ) user : »ç¿ëÀÚ fileMgr : FileMgr 3: create ( ) 6: fillDocum ent ( ) Diagramme de paquetage Document ¹®¼-°ü¸® ¿£Áø. édition de lien 5: readDoc ( ) È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

Les diagrammes de UML Diagrammes de cas d’utilisation Riadh HADJ M’TIR – 2012/2013 88 .

ce que devrait faire le système Comprendre les besoins Délimiter le système Analyse centrée utilisateur Définir les besoins du point de vue de l’utilisateur Intégrer les vues (différentes) des utilisateurs Riadh HADJ M’TIR – 2012/2013 89 .Diagramme de cas d’utilisation (use cases) Résoudre le bon problème Analyse des besoins Déterminer les besoins .

Diagramme de cas d’utilisation (use cases) Représenter les besoins La phase d’analyse des besoins nécessite de comprendre les besoins à couvrir d’exprimer et de formaliser les besoins Moyens pour représenter les besoins en UML Diagramme de cas d’utilisation : organisation générale de l’utilisation du système par ses acteurs Diagramme de séquence : pour chaque cas d’utilisation : description temporelle de l’interaction d’un acteur sur le système = scénario Riadh HADJ M’TIR – 2012/2013 90 .

Diagramme de cas d’utilisation (use cases) Principes Que devrait faire le système (comportement désiré) ≠ comment réaliser ce comportement Pas de détail de programmation Indépendant de l’implémentation Un outil de communication utilisateur / expert du domaine  concepteur développeur / Riadh HADJ M’TIR – 2012/2013 91 .

Diagramme de cas d’utilisation (use cases) Cas d’utilisation Constatations : Le système existe pour servir ses utilisateurs Cas d’utilisation (use cases) [Jacobson 92] = Idée : description du comportement du système du point de vue de son utilisateur (facilite l’expression des besoins) Comportement = {Actions}+{Réactions} Les Cas d’utilisation facilitent la structuration des besoins des utilisateurs représentation simple et expressive expriment les limites et les objectifs du système Riadh HADJ M’TIR – 2012/2013 92 .

déclenchée en réponse à une stimulation du système Cas d’utilisation Acteur Riadh HADJ M’TIR – 2012/2013 93 .Diagramme de cas d’utilisation (use cases) Cas d’utilisation (2) Un cas d’utilisation correspond à une manière spécifique d’utiliser le système C’est la représentation d’une fonctionnalité.

Diagramme de cas d’utilisation (use cases) Définitions Acteur : entité externe qui agit sur le système prend les décisions contrairement à un élément logiciel possède un rôle par rapport au système une même personne peut jouer plusieurs rôles soit utilisateur soit un autre système Riadh HADJ M’TIR – 2012/2013 94 .

Diagramme de cas d’utilisation (use cases) Définitions (2) Pour chaque acteur : choisir un identificateur représentatif du rôle éventuellement accompagné d’une brève description textuelle Un guichetier est un employé de la banque jouant un rôle d’interface entre le système informatique et les clients qu’il reçoit au comptoir Guichetier Riadh HADJ M’TIR – 2012/2013 95 .

Diagramme de cas d’utilisation (use cases) Définitions Acteurs vs Utilisateurs Ne pas confondre acteur et personne utilisant le système • une même personne peut jouer plusieurs rôles • plusieurs personnes peuvent jouer un même rôle • un acteur n’est pas forcément une personne physique… Types d’acteurs • Utilisateur principaux • Utilisateurs secondaires • Périphériques externes • Systèmes externes Riadh HADJ M’TIR – 2012/2013 96 .

Diagramme de cas d’utilisation (use cases) Définitions Exemple 1: une bibliothèque Chercheur Système bibliothèque Bibliotécaire Département Riadh HADJ M’TIR – 2012/2013 97 .

Diagramme de cas d’utilisation (use cases) Définitions Exemple 2: vente par correspondance Institution de carte de crédits Service postal Client Online Shopping System Gestionnaire "Ali" Riadh HADJ M’TIR – 2012/2013 Vendeur Internet 98 .

Diagramme de cas d’utilisation (use cases) Définitions Cas d’utilisation : ensemble des actions réalisées par le système en réponse à une action d’un acteur suite d’interactions entre un acteur et le système correspond à une fonction visible par l’utilisateur permet d’atteindre un objectif aux yeux de l’utilisateur doit être utile NB : les cas d’utilisation ne doivent pas se chevaucher Riadh HADJ M’TIR – 2012/2013 99 .

Diagramme de cas d’utilisation (use cases) L’utilisateur et le système Consulter catalogue Payer cotisation membre Enregistrer nouvel utilisateur Réserver un livre Emprunter un livre Bibliothèque Use Case 1 Use Case 2 Utilisateur Services Use Case 3 Système Riadh HADJ M’TIR – 2012/2013 100 .

Diagramme de cas d’utilisation (use cases) Exemple de la bibliothèque (UC + acteurs) Utilisateur extérieur Chercheur Payer la cotisation Consulter catalogue Bibliotécaire Enregistrer nouvel utilisateur Réserver un livre Emprunter un livre Riadh HADJ M’TIR – 2012/2013 101 .

Diagramme de cas d’utilisation (use cases) Exemple DAB Retirer de l’argent Déposer de l’argent Effectuer des virements entre comptes Consulter le solde d’un compte Employé de caisse Ravitailler le distributeur Réparer le distributeur Agent de maintenance Client de la banque Riadh HADJ M’TIR – 2012/2013 102 .

mais simplement des relations d’utilisation (uses ou include) ou d’extension (extends) Les communications entre les acteurs ne sont pas représentées Use Case 1 Use Case 2 Utilisateur Relations entre CU Interactions acteur-système Riadh HADJ M’TIR – 2012/2013 Use Case 3 Use Case 4 Système 103 .Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation Pas de communication entre les CU d’un système.

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation (2) Il existe principalement deux types de relations entre cas d’utilisation : les dépendances stéréotypées: qui sont explicitées par un stéréotype l’utilisation ou l’inclusion(uses ou include) l’extension (extends) la généralisation/spécialisation (héritage) Riadh HADJ M’TIR – 2012/2013 104 .

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation: L’inclusion Définition: Un cas A inclut un cas B si le comportement décrit par le cas A inclut le comportement du cas B le cas A dépend de B Lorsque A est sollicité. B l’est obligatoirement. comme une partie de A Cette dépendance est symbolisée par le stéréotype << include >> A <<Include>> B Riadh HADJ M’TIR – 2012/2013 105 .

puisqu’il n’y a aucune représentation temporelle dans un diagramme de cas d’utilisation Riadh HADJ M’TIR – 2012/2013 106 .Diagramme de cas d’utilisation (use cases) Exemple « include » Exemple 1 Utiliser le comportement d’un autre use-case Déposer de l’argent <<Include>> Retirer de l’argent <<Include>> S’identifier Exemple 2 Décomposition d’un comportement complexe <<Include>> Acheter un article <<Include>> Vérifier identité utilisateur Valider le payement NB: les cas d’utilisation ne s’enchaînent pas.

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation: L’extension Définition: On dit qu’un cas d’utilisation A étend un cas d’utilisation B lorsque le cas d’utilisation A peut être appelé au cours de l’exécution du cas d’utilisation B Exécuter B peut éventuellement entraîner l’exécution de A Contrairement à l’inclusion. l’extension est optionnelle Cette dépendance est symbolisée par le stéréotype << extends >> A <<extends>> B Riadh HADJ M’TIR – 2012/2013 107 .

Diagramme de cas d’utilisation (use cases) Exemples « extends » Rechercher le document <<Extends>> Bibliothécaire Mettre à jour un document <<Extends>> Ajouter le document <<Extends>> Exemple 1 Retirer le document <<Extends>> Déposer en numéraire Déposer de l’argent Client de banque <<Extends>> Déposer des chèques Exemple 2 Riadh HADJ M’TIR – 2012/2013 108 .

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation: L’extension L’extension peut intervenir à un point précis du cas étendu appelé point d’extension il porte un nom. la condition est exprimée sous la forme d’une note Riadh HADJ M’TIR – 2012/2013 109 . qui figure dans un compartiment du cas étendu sous la rubrique point d’extension éventuellement associé à une contrainte indiquant le moment où l’extension intervient Une extension est souvent soumise à une condition Graphiquement.

Diagramme de cas d’utilisation (use cases) Exemple « extends » La vérification du solde du compte n’intervient que si la demande de retrait dépasse 20 euros Riadh HADJ M’TIR – 2012/2013 110 .

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation: La généralisation Définition: Un cas A est une généralisation d’un cas B si B est un cas particulier de A La relation de généralisation/spécialisation est présente dans la plupart des diagrammes UML et se traduit par le concept d’héritage dans les langages orientés objet A Spécialisation Généralisation B Riadh HADJ M’TIR – 2012/2013 111 .

Diagramme de cas d’utilisation (use cases) Relations entre cas d’utilisation: La généralisation Exemple la consultation d’un compte via Internet est un cas particulier de la consultation Riadh HADJ M’TIR – 2012/2013 112 .

tous les cas d’utilisation accessibles à A le sont aussi à B. mais l’inverse n’est pas vrai Acteur A Acteur B Riadh HADJ M’TIR – 2012/2013 113 .Diagramme de cas d’utilisation (use cases) 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 Dans ce cas.

le préposé aux commandes ne peut pas gérer le stock Riadh HADJ M’TIR – 2012/2013 114 . il peut gérer le stock Par contre.Diagramme de cas d’utilisation (use cases) Relations entre acteurs (exemple) Le directeur des ventes est un préposé aux commandes avec un pouvoir supplémentaire : en plus de pouvoir passer et suivre une commande.

Les diagrammes de UML

Diagrammes de classes et d’objets

Riadh HADJ M’TIR – 2012/2013

115

Diagrammes de classes et d’objets
Définitions

Un diagramme de classes représente la structure du système sous la forme de classes et de relations entre ces classes Un diagramme d’objets illustre les objets et les liens qui les unissent

Riadh HADJ M’TIR – 2012/2013

116

Diagramme de classes
Une classe

Une classe est une description abstraite d’un ensemble d’objets ayant
des propriétés similaires un comportement commun des relations communes avec d’autres objets des sémantiques communes

Les compartiments d’une classe peuvent être omis si leur contenu n’est pas pertinent dans le contexte d’un diagramme
Nom de la classe Liste des attributs Liste des méthodes
Riadh HADJ M’TIR – 2012/2013

117

Diagramme de classes
Classe : Exemple

Personne

Personne Nom Prénom Date de naissance

Poste de travail

Age()

Département

Riadh HADJ M’TIR – 2012/2013

118

instance d’une classe. indépendante des valeurs de ses attributs. L’identification d’un objet est donc facultative. Riadh HADJ M’TIR – 2012/2013 119 . Chaque objet. a sa propre identité. Nom de classe Nom d’attribut : type = valeur initiale Méthodes Les noms d’attributs d’une classe sont uniques.Diagramme de classes Attributs d’une classe Un attribut de classe définit une propriété commune aux objets d’une classe.

Diagramme de classes Attributs d’une classe : Exemple Personne Nom : chaîne Prénom : chaîne Date de naissance : date Age() Film Titre : chaîne Réalisateur : chaîne Date de production : date Date de sortie : date Riadh HADJ M’TIR – 2012/2013 120 .

Diagramme de classes Opération ou Méthode d’une classe Une opération définit une fonction appliquée à des objets d’une classe : Nom de classe Nom d’opération ( liste d’arguments ) : type de retour Riadh HADJ M’TIR – 2012/2013 121 .

Diagramme de classes Opération ou Méthode d’une classe : Exemple Personne Nom : chaîne Prénom : chaîne Date de naissance : date Age() Change age() Objet géométrique Couleur : chaîne Position : entier Déplacer (deltaX : vecteur) Sélectionner (p : Point) : Booléen Riadh HADJ M’TIR – 2012/2013 122 .

Diagramme de classes Propriétés des attributs et des opérations Accessibilité aux attributs et opérations d’une classe Trois niveaux de protection • Public (+) : accès à partir de toute entité interne ou externe à la classe • Protégé (#) : accès à partir de la classe ou des sous-classes • Privé (-) : accès à partir des opérations de la classe Personne -Nom : chaîne -Prénom : chaîne -Date de naissance : date +Age() +Change age() Riadh HADJ M’TIR – 2012/2013 123 .

Diagramme de classes Attributs dérivés Au niveau de l’analyse des besoins. des propriétés redondantes peuvent être proposées… Un attribut dérivé permet d’indiquer clairement qu’un attribut découle d’autres propriétés allouées Les attributs dérivés (noté : /nom attribut) ont des valeurs calculées à partir de celles d’autres propriétés : Rectangle Longueur Largeur /surface En conception Rectangle Longueur Largeur Surface () Riadh HADJ M’TIR – 2012/2013 124 .

Diagramme de classes Association Une association représente une classe d’associations structurelles entre classes d’objets Classe A Classe B Société Personne Voiture Personne Riadh HADJ M’TIR – 2012/2013 125 .

lorsque l’association possède des attributs ou des opérations : Enseignant Classe Cours Durée Début Contenu EcrireContenu() Riadh HADJ M’TIR – 2012/2013 Matière 126 .Diagramme de classes Classe association Une association peut être réifiée par une classe appelée classe associative ou classe association Par exemple.

Diagramme de classes Association : Classe attribuée Une association qui contient des attributs et qui ne participe pas à des relations avec d’autres classes est appelée classe attribuée. Classe A Classe B Classe C Attributs Riadh HADJ M’TIR – 2012/2013 127 .

Diagramme de classes Association n-aire Une association ternaire entre salle. classe et enseignant est réifiée comme une classe cours ayant deux attributs : début et fin Salle Enseignant Classe Cours Début Fin Riadh HADJ M’TIR – 2012/2013 128 .

soit active. soit passive Classe A Nom Classe B Société < travaille pour Personne Voiture Est la propriété de > Personne Riadh HADJ M’TIR – 2012/2013 129 .Diagramme de classes Nommage des associations Nom de l’association en italique au milieu de la ligne On note en général les associations par une forme verbale.

Diagramme de classes Nommage des rôles Toute association binaire possède 2 rôles Un rôle définit la manière dont une classe intervient dans une relation Le nommage des associations et le nommage des rôles ne sont pas exclusifs l’un de l’autre Société < travaille pour employeur employé Personne Intérêt des rôles dans le cas où plusieurs associations lient deux classes : distinction des concepts attachés aux associations Riadh HADJ M’TIR – 2012/2013 130 .

Diagramme de classes Nommage des rôles (2) Avion Pilote Passagers Personne La présence d’un grand nombre d’associations entre deux classes est suspecte Voiture < Conduire < Démarrer < Posséder < Laver < Arrêter Personne Riadh HADJ M’TIR – 2012/2013 131 .

Diagramme de classes Association réflexive Nommage des rôles indispensable à la clarté du diagramme Personne Enfants * 2 Parents Riadh HADJ M’TIR – 2012/2013 132 .

qui quantifie le nombre de fois où un objet participe à une instance de relation Riadh HADJ M’TIR – 2012/2013 133 .Diagramme de classes Multiplicité des associations La multiplicité est une information portée par le rôle.

Diagramme de classes Multiplicité des associations (2) 1 : Chaque personne travaille pour une et une seule société (toutes les personnes ont un emploi) 0 .* employé Personne employeur Riadh HADJ M’TIR – 2012/2013 134 .. * : Une société emploie de zéro à plusieurs personnes Société 1 < travaille pour 0..

placée sur un rôle.Diagramme de classes Contraintes sur les associations Contrainte d’association : porte sur une relation ou sur un groupe de relations (notée {contrainte }) Par exemple. la contrainte {ordonnée} définit une relation d’ordre entre les objets de la collection (les comptes) qui sont liés à une personne Personne Propriétaire 1 0.n {ordonnée} Compte Riadh HADJ M’TIR – 2012/2013 135 ..

pour un objet donné. une seule association parmi un groupe d’associations est valide Université Enseignants {OU-exclusif} Étudiants Riadh HADJ M’TIR – 2012/2013 * Personne * 136 .Diagramme de classes Contraintes sur les associations (2) La contrainte {sous-ensemble} indique qu’une collection est incluse dans une autre collection Classe Parents d’élève {Sous ensemble} Délégués * * Personne La contrainte {Ou-exclusif} précise que.

Diagramme de classes
Association particulière : Agrégation

Une agrégation est une association non symétrique : l’une des extrémités joue un rôle prédominant par rapport à l’autre Elle se justifie dans les cas suivants
Une classe B « fait partie » intégrante d’une classe A Les valeurs d’attributs de la classe B se propagent dans les valeurs d’attributs de la classe A Une action sur la classa A implique une action sur la classe B Les objets de la classe B sont subordonnés aux objets de la classe A
Agrégat A Agrégé B

Riadh HADJ M’TIR – 2012/2013

137

Diagramme de classes
Association particulière : Agrégation (2)

L’agrégation peut être multiple comme une association classique

Personne

propriétaire * 1..*

Immeuble B

En tant que « propriétaire », une personne est un agrégat d’immeubles … Les immeubles dont elle est propriétaire font partie de la description d’une personne
Riadh HADJ M’TIR – 2012/2013

138

Diagramme de classes
Agrégation particulière : Composition

La composition est une forme particulière d’agrégation Le composant est « physiquement » contenu dans l’agrégat La composition implique une contrainte sur la valeur de la multiplicité du coté de l’agrégat : (0 ou 1) La valeur 0 du coté de l’agrégat implique un attribut non renseigné
composé 0..1 * Composant

Riadh HADJ M’TIR – 2012/2013

139

Diagramme de classes
Agrégation particulière : Composition (2)

La composition peut être modélisée au moyen d’attributs La notation par composition doit être retenue lorsque d’un attribut participe à des relations
Voiture - Moteur Voiture Moteur

Cylindre

Carburateur

Riadh HADJ M’TIR – 2012/2013

140

la composition nous permet de décrire la structure de gestion des communes Une composition est une association contraignante : la suppression d’un objet agrégat entraîne la suppression des objets agrégés La suppression d’une commune supprime sa mairie.* Services Dans l’exemple. son conseil municipal et ses services Riadh HADJ M’TIR – 2012/2013 141 .Diagramme de classes Agrégation particulière : Composition (3) Commune 1 1 Mairie 1 Conseil municipal 1..

Agrégation et Composition Association Agrégation Composition Riadh HADJ M’TIR – 2012/2013 142 .Diagramme de classes Association.

Diagramme de classes Généralisation – Spécialisation La relation de généralisation signifie est de ou est une sorte de : notion d’héritage Animal Classe mère Généralisation Spécialisation Chat Souris Éléphant Sous-classes = instances d’une seule classe Animal (héritage simple) Riadh HADJ M’TIR – 2012/2013 143 .

Diagramme de classes Héritage multiple Véhicule Tapis Terrestre Marin Aérien Tapis volant Riadh HADJ M’TIR – 2012/2013 144 .

la généralisation symbolise une décomposition exclusive Véhicule Motorisation A voile A moteur terrestre Milieu Marin Riadh HADJ M’TIR – 2012/2013 145 .Diagramme de classes Contraintes de généralisation Une classe peut être spécialisée selon plusieurs critères Certaines contraintes peuvent être posées sur les relations de généralisation Par défaut.

Diagramme de classes Contraintes de généralisation : {disjoint} (={exclusif}) La contrainte {Disjoint} (ou {exclusif}) indique la participation exclusive d’un objet à l’une des collections spécialisées Champignon Salarié {exclusif} Agaricus Boletus {exclusif} Titulaire Stagiaire Pied bleu Blet de loup Riadh HADJ M’TIR – 2012/2013 146 .

Diagramme de classes Contraintes de généralisation : {chevauchement} (={inclusif}) Véhicule La contrainte {chevauchement} Motorisation (ou {inclusif}) {inclusif} indique la A voile A moteur terrestre participation possible d’un objet à plusieurs collections Mobylette spécialisées Milieu Marin Riadh HADJ M’TIR – 2012/2013 147 .

la contrainte {Incomplète} indique une généralisation extensible Cours {Incomplète} Math Allemand Anglais Riadh HADJ M’TIR – 2012/2013 148 .Diagramme de classes Contraintes de généralisation : {Complète} ≠ {Incomplète} La contrainte {Complète} indique la généralisation est terminée : tout ajout de sous-classe est alors impossible à l’inverse.

extensive. c’est-à-dire trouver un ensemble d’objets dont la structure correspond à celle de la classe ? Règle 2 : il existe au moins un identifiant . Peut -on exprimer la signification de l’entité informationnelle et vérifier qu’elle est comprise par les gestionnaires ? Peut-on trouver une liste d’attributs qui décrivent le concept global ? Peut-on instancier le concept global d’information. ensembliste) sont vérifiées.Diagramme de classes Règles d’élaboration Les règles suivantes permettent de s’assurer qu’il est pertinent de faire apparaître une classe Règle 1 : les trois définitions complémentaires d’une classe (intensive. Peut-on trouver un attribut qui puisse jouer le rôle d’identifiant ou peut-on en définir un qui ait un sens pour les gestionnaires du domaine ? Riadh HADJ M’TIR – 2012/2013 149 .

Diagramme d’Objets Présentation Représente les liens structurels entre instances de classes Facilite la compréhension de structures complexes Trois représentations possibles des instances Nom de l’objet Nom de l’objet:NomClasse :NomClasse Riadh HADJ M’TIR – 2012/2013 150 .

Diagramme d’Objets Présentation (2) Les valeurs des attributs sont optionnelles ainsi que les liens entre objets :Voiture Couleur = rouge Voiture 1 1 Moteur :Voiture 1 4 Roue :Roue Roue Roue Roue :Moteur Riadh HADJ M’TIR – 2012/2013 151 .

Diagramme d’Objets Présentation (3) Les liens instances des associations réflexives peuvent relier un objet à lui même Salah:Personne Personne Collaborateur * 1 Patron Omar:Personne Patron Ali:Personne Patron Riadh HADJ M’TIR – 2012/2013 152 .

Diagramme d’Objets Liens entre Objets Les liens d’arité supérieure à 2 ou la multiplicité peuvent être représentés :Professeur :Étudiant Roue Roue Roue :Salle Professeur Salle Étudiant Riadh HADJ M’TIR – 2012/2013 153 .

Diagramme d’Objets Liens entre Objets (2) Les objets composés de sous-objets peuvent être visualisés Objet composite:NomClasseComposite :Partie :Partie :Partie Les objets composites sont instances de classes composites fenêtre 2 Ascenseur 1 Zone de travail :Ascenseur :Fenêtre :Zone de travail :Ascenceur Riadh HADJ M’TIR – 2012/2013 154 .

Les diagrammes de UML Diagrammes de séquence Riadh HADJ M’TIR – 2012/2013 155 .

Diagramme de séquence : les scénarios Scénario le système = ensemble de cas d’utilisation le système possède les cas d’utilisation mais pas les acteurs Un cas d’utilisation = ensemble de « chemins d’exécution » possibles Un scénario = un chemin particulier d’exécution = une séquence d’événements Un scénario = Instance de cas d’utilisation Une instance d’acteur créer un scénario Riadh HADJ M’TIR – 2012/2013 156 .

Diagramme de séquence : les scénarios Scénario (2) Décrit le flux des événements En langage naturel en termes des objets du domaine ( diagrammes des objets) et des actions Un scénario principal (événement des scénarios alternatifs) Riadh HADJ M’TIR – 2012/2013 157 .

Diagramme de séquence : les scénarios Scénario (3) Cas d’utilisation Acteur Diagramme de cas d’utilisations Diagramme de séquence = scénario Classe Classe_Acteur Riadh HADJ M’TIR – 2012/2013 158 .

voire impossible sélection des scénarii les plus intéressants scénario optimal : décrit l’interaction la plus fréquente scénarios dérivés : décrit certaines alternatives importantes non décrites dans le scénario optimal Riadh HADJ M’TIR – 2012/2013 159 .Diagramme de séquence : les scénarios Scénario (4) spécification exhaustive de tous les scénarios difficile.

Diagramme de séquence : les scénarios Scénario (5) un scénario peut être représenté par diagramme de séquence qui décrit un échange particulier entre un ou plusieurs acteurs et le système nature des infos échangées entre des instances d’acteurs ou d’objets du système aspect temporel : flot ordonné d’événements un scénario peut également être représenté par un diagramme de collaboration Riadh HADJ M’TIR – 2012/2013 160 .

Diagramme de séquence : les scénarios Exemple : Scénario du DAB DAB Client Code Code? Code Menu action Action retrait Argent + Somme Compte solvable Riadh HADJ M’TIR – 2012/2013 161 .

logiciels.Diagramme de séquence : les scénarios Exemple : Le système d’une médiathèque Énoncé (réalité perçue) L’objectif du système est d’assister les usagers à utiliser la médiathèque et la médiathèque sert à gérer les prêts et les retours des médias (livres. vidéos). Riadh HADJ M’TIR – 2012/2013 162 . CD.

Diagramme de séquence : les scénarios
Exemple : Le système d’une médiathèque (2)

Les fonctionnalités du systèmes comprennent
maintenir un catalogue de tous les articles de médias pour offrir une assistance pour leur recherche maintenir un journal des prêts de médias par emprunteur et par article de média maintenir un journal des retours de médias par emprunteur et par article de média produire les rappels et les amendes pour les prêts en retard

Riadh HADJ M’TIR – 2012/2013

163

Diagramme de séquence : les scénarios
Exemple : Le système d’une médiathèque (3)

Les cas d’utilisation du système

Usager extérieur

Chercher média Produire les rappels Bibliotécaire Maintenir catalogue des médias

Gérer emprunteurs
164

Riadh HADJ M’TIR – 2012/2013

Diagramme de séquence : les scénarios
Exemple : Le système d’une médiathèque (4)

Cas d’utilisation « chercher un média »
Scénario principal: (Média trouvé) • Les bibliothécaires et les emprunteurs vont utiliser une fenêtre d’ordinateur pour rechercher un média. • La recherche d’un média peut se faire par type, titre, auteur, mots clé ou par type de média recherché (i.e. format de logiciel). • Le résultat de la recherche est affichée sous forme résumée. Sur demande, une description détaillée peut également être affichée ou imprimée. Scénario alternatif: (Média introuvable) Le système n’a pas trouvé de média répondant aux critères de recherche. Le chercheur est informé de ce résultat. Le chercheur peut alors soit modifier soit abandonner sa recherche.
Riadh HADJ M’TIR – 2012/2013

165

Diagramme de séquence
Présentation

Diagramme de séquence
Modélisation des interactions entre objets suite à un événement externe Aspect temporel : messages asynchrones ou synchrones
:NomClasse :Client :NomClasse

Riadh HADJ M’TIR – 2012/2013

166

Diagramme de séquence Catégories de messages 2 catégories de messages synchrone : l’émetteur est bloqué jusqu’au traitement effectif du message asynchrone : l’émetteur n’est pas bloqué. il peut poursuivre son exécution :NomClasse Message synchrone :NomClasse Message asynchrone Riadh HADJ M’TIR – 2012/2013 167 .

Diagramme de séquence Envoi de messages d’un objet sur lui même Un objet peut s’envoyer des messages à luimême :NomClasse Message réflexif :ObjetComposite :composant A :composant B Riadh HADJ M’TIR – 2012/2013 168 .

Diagramme de séquence
Création et destruction d’un objet par message

:A création :B

Message pointant sur l’objet crée

détruire

X = Destruction de l’objet

Riadh HADJ M’TIR – 2012/2013

169

Diagramme de séquence
Période d’activité des objets

activation

:A

:A Msg synchrone

:B

Retour implicite Période d’activité :A Msg asynchrone :B

Retour explicite
Riadh HADJ M’TIR – 2012/2013

170

Diagramme de séquence
Envoi conditionnel de messages

:A

:B

:C

[condition] Message

[Non condition] Message

Riadh HADJ M’TIR – 2012/2013

171

Diagramme de séquence
Contraintes temporelles

appelant:Client décroche

:ligne téléphonique

appelé:Client

x {y-x < 10s} y

tonalité

numérotation Indication sonnerie décroche w sonnerie Z {w-z < 20s}

Riadh HADJ M’TIR – 2012/2013

172

Diagramme de séquence Traitement conditionnel d’un message reçu :Abonné Retourner [bon état] :Livre [mauvais état] Riadh HADJ M’TIR – 2012/2013 173 .

Les diagrammes de UML Diagrammes de collaboration Riadh HADJ M’TIR – 2012/2013 174 .

Diagramme de collaboration Introduction Diagramme de collaboration (d’objets) : extension des diagrammes d’objets : vue dynamique décrit le comportement collectif d’un ensemble d’objets en vue de réaliser une opération en décrivant leurs interactions modélisées par des envois (éventuellement numérotés) de messages Collaboration = 1) Ensemble d’objets qui interagissent ensemble pour réaliser une tâche commune 2) Ensemble de liens (pertinents) existant entre ces objets Riadh HADJ M’TIR – 2012/2013 175 .

L’acteur initiant un cas d’utilisation est appelé initiateur Riadh HADJ M’TIR – 2012/2013 176 .Diagramme de collaboration Introduction (2) Éléments composant une collaboration Objets : instance d’une classe • Rectangle avec étiquette de la forme nomObjet:nomClasse ou :nomClasse • On représente uniquement les objets pertinents (interagissant dans le cas d’utilisation ou le scénario qu’on veut décrire) Liens : instances de certaines associations dans le diagramme de classes. On ne représente que les instances d’associations pertinentes pour la collaboration décrite Acteurs : on peut représenter les acteurs participant au cas d’utilisation ou scénario décrit.

Diagramme de collaboration Représentation des interactions Message = nom opération nom_opération Objet1:C1 Objet2:C2 Envois éventuellement numérotés : ordre des envois de message au cours d’une opération Num : nom_opération Objet1:C1 Objet2:C2 Riadh HADJ M’TIR – 2012/2013 177 .

synchrone. etc. les messages de retour n’apparaissent pas explicitement dans les diagrammes de collaboration. Types de messages: simple.Diagramme de collaboration Représentation des interactions (2) Numéro du message: Lorsqu’un objet O reçoit un message (synchrone). itération. En général. asynchrone… Aussi: condition. le numéro de ce message est utilisé comme préfixe pour tous les messages envoyés par O… jusqu’à ce que O réponde à ce message. Riadh HADJ M’TIR – 2012/2013 178 .

Diagramme de collaboration Représentation des interactions (3): Exemple Riadh HADJ M’TIR – 2012/2013 179 .

etc.Diagramme de collaboration Représentation des interactions (4) : Remarques à l’instar du diagramme de séquence. les diagrammes de classes et d’interaction (collaboration ou séquence) doivent demeurer «corrects» et «cohérents» Riadh HADJ M’TIR – 2012/2013 180 . le diagramme de collaboration permet de découvrir de nouvelles propriétés de classes peut servir à compléter et développer le diagramme de classes ajout d’opération. d’associations.

Diagramme de collaboration Création et destruction dynamiques d’objets Les objets (et les liens) créés ou détruits au cours d’une interaction peuvent respectivement porter les contraintes : {Nouveau} / {New} {Détruit} / {Destroyed} Objet1:C1 détruit Objet1:C1 création Objet2:C2 {Nouveau} Objet3:C3 {Détruit} Riadh HADJ M’TIR – 2012/2013 181 .

on utilise la contrainte {transitoire} / {transient} Objet1:C1 MAJ Objet4:C4 {transitoire} Riadh HADJ M’TIR – 2012/2013 182 .Diagramme de collaboration Création et destruction dynamiques d’objets (2) Si au cours des interactions représentées par le diagramme. un objet est créé puis détruit.

Diagramme de collaboration Création et destruction dynamiques d’objets (3) Riadh HADJ M’TIR – 2012/2013 183 .

Diagramme de collaboration Messages : envoi et retour de valeurs Une liste de valeurs peut être retournée suite à l’envoi d’un message [condition]:nom_opération :A Valeurs retournées :B AfficherAge :Universite Age :Etudiant Riadh HADJ M’TIR – 2012/2013 184 .

Diagramme de collaboration Messages : arguments Liste des paramètres du message séparés par des virgules Les arguments et le nom de l’action déterminent sans ambiguïté l’action à réaliser Les arguments peuvent contenir des valeurs retournées par des messages envoyés précédemment Exemples Afficher ( x. DateDeNaissance ) – calculer le nombre de jours entre deux dates Riadh HADJ M’TIR – 2012/2013 185 . y ) – affiche les valeurs x et y Soustraire( Aujourd’hui.

Diagramme de collaboration Messages : résultat Le résultat est constitué d’une liste de valeurs retournées par le message Ces valeurs peuvent être utilisées comme paramètres des autres messages Riadh HADJ M’TIR – 2012/2013 186 .

n]: Message :A :B Roue Roue Roue 187 Riadh HADJ M’TIR – 2012/2013 . Syntaxe : *||[clause d’itération] *[i:=1.. Syntaxe : *[clause d’itération] Itération parallèle : envoi parallèle de n instances du même message.Diagramme de collaboration Itérations Possibilité d’exprimer l’envoi répétitif de messages (éventuellement en parallèle) sur une collection d’objets Itération séquentielle : envoi séquentiel de n instances du même message.

Diagramme de collaboration Itérations : exemple Instit:instituteur instituteur Instit:instituteur * || [tous]:Debout :Élève *[tous]:Debout * Élève :Élève Riadh HADJ M’TIR – 2012/2013 188 .

Diagramme de collaboration Conditions sur les envois de messages L’envoi d’un message peut être assorti d’une condition [condition]:nom_opération Objet1:C1 Objet2:C2 [poids > 300]:sonner :Cabine :Alarme * || [age > 18]:Voter :Mairie :Personne Riadh HADJ M’TIR – 2012/2013 189 .

1:gobelet :Gobelet Riadh HADJ M’TIR – 2012/2013 190 .2:Reponse:= Disponibilité :Gestionnaire de pièces 2.1: afficher Somme_versée Café:Boisson 2.3: finoperation 2.1.1: Reponse:= VérifierPrix(prix) 2: Boisson := choisir :Pièce 1.1: comptabiliser (valeur) 1.Diagramme de collaboration Exemple : Distributeur de boisson Diagramme de collaboration « demande d’une boisson disponible (café) avec introduction de la somme exacte » :Utilisateur 1: introduire 2.2.

Les diagrammes de UML Diagrammes d’états-transitions Riadh HADJ M’TIR – 2012/2013 191 .

Diagramme d’états-transitions Introduction Décrit le comportement des objets d’une classe au moyen d’un automate d’états associé à la classe Le comportement est modélisé par un graphe : Noeuds = états possibles des objets Arcs = transitions d’état à état Une transition : = exécution d’une action = réaction de l’objet sous l’effet d’une occurrence d’événement Riadh HADJ M’TIR – 2012/2013 192 .

Diagramme d’états-transitions Notion d’état un état = étape dans le cycle de vie d’un objet durant lequel il satisfait à certaines conditions il réalise certaines actions ou attend certains événements chaque objet possède à un instant donné un état particulier chaque état est identifié par un nom un état est stable et durable Riadh HADJ M’TIR – 2012/2013 193 .

.* Personne En activité A la retraite Au chômage Riadh HADJ M’TIR – 2012/2013 194 .Diagramme d’états-transitions Notion d’état (2) Société 0..1 1.

Diagramme d’états-transitions Notion d’état (3) un état = image de la conjonction instantanée des valeurs des attributs d’un objet + présence ou non de ses liens à d’autres objets Exemple : présence d’un lien vers société ou âge d’une personne Ali Omar Age = 40 Tarek Age = 75 Au chômage :Société En activité A la retraite Riadh HADJ M’TIR – 2012/2013 195 .

Il est possible de n’avoir aucun état final : ex : un système que ne s’arrête jamais. État intermédiaire État initial État final Riadh HADJ M’TIR – 2012/2013 196 . mais plusieurs états finaux correspondant chacun à une fin de vie de l’objet différente. Pour un niveau hiérarchique donné.Diagramme d’états-transitions Notion d’état (4) Chaque diagramme d’états-transitions comprend un état initial. il y a un et un seul état initial.

les objets changent d’état en respectant les règles décrites par l’automate associé à leur classe Les diagrammes d’états-transitions sont des graphes orientés Les états sont reliés par des connexions unidirectionnelles appelées transitions État A État B Ex : classe « Place de parking » Disponible Riadh HADJ M’TIR – 2012/2013 Réservée 197 .Diagramme d’états-transitions Notion de transition Lorsque les événements se produisent.

attend l’occurrence d’un événement pour passer dans un autre état évt État A État B Riadh HADJ M’TIR – 2012/2013 198 .Diagramme d’états-transitions Notion d’événement un événement correspond à l’occurrence d’une situation donnée dans le domaine étudié un événement est une information instantanée qui doit être traitée dans l’instant où il se produit l’événement est déclencheur de la transition d’état à état. Un objet. placé dans un état donné.

…) La description complète d’un événement est donnée par : • • • • • nom de l’événement liste des paramètres objet expéditeur objet destinataire sa description textuelle Riadh HADJ M’TIR – 2012/2013 199 .Diagramme d’états-transitions Notion d’événement (2) Syntaxe d’un événement Nom de l’événement (Nom de paramètre : Type.

Diagramme d’états-transitions Notion d’événement (3) En activité Plus de 60 ans Embauche Perte d’emploi A la retraite Au chômage Plus de 60 ans Riadh HADJ M’TIR – 2012/2013 200 .

Diagramme d’états-transitions Communication entre objets par événements La communication est de type asynchrone. atomique et unidirectionnelle. Un objet peut envoyer un événement à un autre objet qui doit toujours être à même de l’interpréter Un évt Un objet Un autre objet Les besoins de communication par événements synchrones ou les échanges bidirectionnels peuvent se représenter au moyen de deux échanges asynchrones de directions opposées Une question Un objet La réponse Riadh HADJ M’TIR – 2012/2013 Un autre objet 201 .

Diagramme d’états-transitions Communication entre objets par événements (2) L’objet émetteur de la requête se met en attente de la réponse de l’objet récepteur de la requête A Question posée à l’objet X Attente réponse Réponse reçue de la part de l’objet X B Riadh HADJ M’TIR – 2012/2013 202 .

Diagramme d’états-transitions Communication entre objets par événements (3) Notion de garde Une garde est une condition booléenne qui permet ou non le déclenchement d’une transition lors de l’occurrence d’un événement A Evt [condition] B Riadh HADJ M’TIR – 2012/2013 203 .

Lorsqu’une occurrence d’événement survient. Le résultat de cette évaluation permet de valider puis de déclencher une transition possible Retour [bon état] Emprunté Retour [mauvais état] Disponible Riadh HADJ M’TIR – 2012/2013 En réparation 204 . qui doivent être mutuellement exclusives. sont évaluées. les gardes.Diagramme d’états-transitions Communication entre objets par événements (4) Les gardes permettent de conserver la propriété de déterminisme d’un automate d’états finis.

Diagramme d’états-transitions Notion d’opération et d’action Actions et activités = le lien entre les opérations définies dans la spécification d’une classe et les événements apparaissant dans le diagramme d’états-transitions Chaque transition peut avoir une action à exécuter lorsqu’elle est déclenchée L’action est considérée comme instantanée et atomique Une action correspond à l’exécution d’une des opérations déclarées dans la classe de l’objet destinataire de l’événement. A Événement / Action B L’action a accès aux paramètres de l’événement ainsi qu’aux attributs de l’objet sur lequel elle s’applique Riadh HADJ M’TIR – 2012/2013 205 .

Diagramme d’états-transitions Actions dans un état Les états peuvent également contenir des actions : elles sont exécutées • à l’entrée ou à la sortie de l’état – l’action d’entrée (entry) est exécutée de manière instantanée et atomique – l’action de sortie (exit) est exécutée à la sortie de l’état • lorsqu’une occurrence d’événement interne survient – l’action sur un événement interne (on) est exécutée lors de l’occurrence d’un événement qui ne conduit pas à un autre état Riadh HADJ M’TIR – 2012/2013 206 .

Diagramme d’états-transitions Actions dans un état (2) Nom d’un état entry : action d’entrée on nom_événement : action exit : action de sortie Riadh HADJ M’TIR – 2012/2013 207 .

actions et activités un événement interne n’entraîne pas l’exécution des actions de sortie et d’entrée.Diagramme d’états-transitions Opérations. contrairement au déclenchement d’une transition réflexive A entry : action d’entrée on nom_événement : action exit : action de sortie exit : action de sortie E1/ Action B entry : action d’entrée Riadh HADJ M’TIR – 2012/2013 208 .

Diagramme d’états-transitions Opérations. actions et activités (2) Les actions correspondent à des opérations dont la durée d’exécution est négligeable Une opération qui prend un certain temps doit être modélisée à travers un état plutôt que par une action… Une telle opération est appelée activité Le mot clé do: indique une activité Contrairement aux actions. les activités peuvent être interrompues à tout moment. dès qu’une transition de sortie est déclenchée Riadh HADJ M’TIR – 2012/2013 209 .

Lorsqu’elle parvient à son terme (autoterminaison).Diagramme d’états-transitions Opérations. éventuellement protégée par une garde Riadh HADJ M’TIR – 2012/2013 210 . C’est une transition automatique. actions et activités (3) Il existe deux formes d’activités Activité cyclique : qui ne s’arrête que par le biais d’une transition de sortie Activité séquentielle : qui démarre à l’entrée de l’état. l’état peut être quitté si l’une des transitions de sortie est franchissable.

Diagramme d’états-transitions Opérations. les transitions automatiques (sans événement). sont déclenchées A B do : activé séquentielle [X] [ not X] A do : activé séquentielle B C 211 Riadh HADJ M’TIR – 2012/2013 . actions et activités (4) Lorsqu’une activité se termine. mais éventuellement protégées par des gardes.

Diagramme d’états-transitions Point d’exécution des opérations 6 manières d’associer une opération à une transition : l’action associée à la transition d’entrée (op1) l’action d’entrée de l’état (op2) l’activité dans l’état (op3) l’action de sortie de l’état (op4) l’action associée aux événements internes (op5) l’action associée à la transition de la sortie de l’état (op6) /op1 A Entry : op2 do : op3 on evt : op5 exit : op4 /op6 Riadh HADJ M’TIR – 2012/2013 212 .

Diagramme d’états-transitions Exemple : Distributeur Automatique de Boissons Encaissement de l’argent do : augmenter le montant En attente Article sélectionné [Article vide] [montant < prix article] Test d’article [montant = prix article] do : tester article et calculer la monnaie à rendre [montant > prix article] Distribution do : distribuer article Encaissement do : rendre monnaie Riadh HADJ M’TIR – 2012/2013 213 .

Diagramme d’états-transitions Généralisation d’états Un état peut être décomposé en plusieurs sous-états disjoints. les sous-états héritent des caractéristiques de leur super-états Décomposition disjonctive : l’objet doit être dans un seul sous-état à la fois A e2 C C e1 AB B e2 e2 A e1 B Riadh HADJ M’TIR – 2012/2013 214 .

seul un état peut être cible de la transition A A B B B1 B2 Riadh HADJ M’TIR – 2012/2013 215 .Diagramme d’états-transitions Généralisation d’états (2) Les transitions d’entrée ne sont pas héritées par tous les états.

Diagramme d’états-transitions Généralisation d’états (3) Il est préférable de limiter les liens entre niveaux hiérarchiques d’un automate en définissant systématiquement un état initial pour chaque niveau B A B1 B2 Riadh HADJ M’TIR – 2012/2013 216 .

Diagramme d’états-transitions Agrégation d’états L’agrégation d’états est la composition d’un état à partir de plusieurs autres états indépendants La composition est de type conjonctive ce qui implique que l’objet doit être simultanément dans tous les états composant l’agrégation d’états Forme de parallélisme entre automates S A B C B1 B2 Riadh HADJ M’TIR – 2012/2013 217 .

Diagramme d’états-transitions Agrégation d’états (2) Exemple : activité d’émission de billets do : Distribuer billets Préparation do : Éjecter carte Retour à l’accueil Riadh HADJ M’TIR – 2012/2013 218 .

Les diagrammes de UML Diagrammes d’activités Riadh HADJ M’TIR – 2012/2013 219 .

Diagramme d’activités Introduction Variante des diagrammes d’états-transitions : ce diagramme met l’accent sur les activités. leurs relations et leurs impacts sur les objets E1 do: activité Activités E2 Riadh HADJ M’TIR – 2012/2013 220 .

mutuellement exclusives. Les gardes sont les labels des transitions dont elles valident le déclenchement Mesurer Température [trop froid] [trop chaud] Chauffer Refroidir Riadh HADJ M’TIR – 2012/2013 221 .Diagramme d’activités Gardes Les transitions entre activités peuvent être gardées par des conditions booléennes.

Diagramme d’activités Gardes (2) Une condition peut être matérialisée par un losange dont sortent plusieurs transitions : Mesurer Température [trop froid] [trop chaud] Chauffer Refroidir Riadh HADJ M’TIR – 2012/2013 222 .

Diagramme d’activités Synchronisations Les diagrammes d’activités représentent les synchronisations d’activités au moyen de barres de synchronisation Refroidir Arréter le chauffage Aérer Riadh HADJ M’TIR – 2012/2013 223 .

Diagramme d’activités Synchronisations (2) Les diagrammes d’activités représentent les synchronisations d’activités au moyen de barres de synchronisation Arrêter le chauffage Aérer Mesurer la Température Riadh HADJ M’TIR – 2012/2013 224 .

Diagramme d’activités Décomposition Les diagrammes d’activités peuvent être découpés en couloirs d’activités : répartition des responsabilités au sein d’un mécanisme logiciel : Enseignant Enseigner Etudiant Apprendre Jury Controler les connaissances Composer Evaluer Riadh HADJ M’TIR – 2012/2013 225 .

Diagramme d’activités Objets Il est possible de faire apparaître des objets dans un diagramme d’activités. soit au sein d’un couloir d’activité soit en dehors de ces couloirs Objet1 Objet2 Objetn Objetj Objeti Riadh HADJ M’TIR – 2012/2013 226 .

Diagramme d’activités Objets (2) Les diagrammes d’activités peuvent faire référence à des états et à des événements Ouvrir fenêtre ^Termostat.DonnerUneConsigne Aérer Consigne atteinte Fermer la fenêtre Riadh HADJ M’TIR – 2012/2013 227 .

Les diagrammes de UML Diagrammes de composants et de déploiement Riadh HADJ M’TIR – 2012/2013 228 .

Diagrammes de déploiement : identifient les éléments matériels (PC. met en évidence les relations de dépendance entre composants.) . Diagrammes de composants : modélisation du système sous forme de composants réutilisables .Introduction Ce sont les deux derniers types de vues statiques en UML.) sur ces éléments matériels. librairies. la disposition des fichiers (exécutables. Modem. etc. leurs interconnexions physiques . Serveur. Station de travail. Riadh HADJ M’TIR – 2012/2013 229 . etc.

de part sa faible granularité et ses connexions figées. ne favorise pas la réutilisabilité Pour faire face à ce problème : les composants Riadh HADJ M’TIR – 2012/2013 230 .Diagramme de composants Pourquoi des composants ? La réutilisabilité est un facteur important pour la qualité d’un logiciel Une classe.

Riadh HADJ M’TIR – 2012/2013 231 . mais au niveau de l’architecture générale du logiciel (changement d’échelle). non pas au niveau du code. CORBA. WSDL. .Diagramme de composants Programmation par composants Constitue une évolution technologique soutenue par de nombreuses plateformes : composants EJB. . . Met l’accent sur la réutilisation du composant et l’indépendance de son évolution vis-à-vis des applications qui l’utilisent. S’intègre très bien dans le contexte de la programmation orientée objet : assimilable à une approche objet. .Net.

Les fonctionnalités qu’il encapsule doivent être cohérentes entre elles et génériques. Riadh HADJ M’TIR – 2012/2013 232 .Diagramme de composants Notion de composant Un composant doit fournir un service bien précis. Représenté par un classeur structuré. stéréotypé ((component)). Pour pouvoir substituer un composant par un autre il suffit de respecter les interfaces requises et offertes. comportant une ou plusieurs interfaces requises ou offertes. Son comportement interne est masqué.

Diagramme de composants Représentation d’un composant Riadh HADJ M’TIR – 2012/2013 233 .

Diagramme de composants Représentation des composants et des interfaces Riadh HADJ M’TIR – 2012/2013 234 .

Diagramme de composants Notion de port Définition d’un port : Point de connexion entre un classeur et son environnement. Généralement. On peut faire figurer le nom du port à proximité de sa représentation. Riadh HADJ M’TIR – 2012/2013 235 . un port est représenté par un petit carré à cheval sur la bordure du contour du classeur. L’utilisation des ports permet de modifier la structure interne d’un classeur sans affecter les clients externes. Graphiquement. un port est associé à une interface requise ou offerte.

Diagramme de composants Représentation d’un composant avec ses ports Riadh HADJ M’TIR – 2012/2013 236 .

Diagramme de composants Implémentation d’un composant complexe Riadh HADJ M’TIR – 2012/2013 237 .

Diagramme de composants Relation de dépendance Relation de dépendance : un élément de l’implémentation d’un composant fait appel aux services offerts par les éléments de l’implémentation d’un autre composant Riadh HADJ M’TIR – 2012/2013 238 .

Diagramme de déploiement Objectifs Décrit la disposition physique des ressources matérielles qui composent le système Montre la répartition des composants sur ces matériels Chaque ressource est matérialisée par un nœud Précise comment les composants sont répartis sur les nœuds Précise les connexions entre les composants ou les nœuds Existent sous deux formes : spécification et instance Riadh HADJ M’TIR – 2012/2013 239 .

Diagramme de déploiement Représentation des nœuds Nœud Instance de nœud Affectation d’un composant à un nœud Riadh HADJ M’TIR – 2012/2013 240 .

Riadh HADJ M’TIR – 2012/2013 241 . . exécutable. un ensemble d’éléments du modèle. ).Diagramme de déploiement Notion d’artéfact (artifact) Artéfact: Elément concret existant dans le monde réel (document. fichier. c’est-àdire résulter et implémenter. . tables de bases de données. On dit qu’un artefact peut manifester. . . . ) se fait sous la forme de jeu d’artefacts. L’implémentation des modèles (classes. . script. On appelle manifestation la relation entre un élément du modèle et l’artefact qui l’implémente.

En toute rigueur. peut être déployé sur un nœud. Un composant doit donc être manifesté par un artefact qui. Riadh HADJ M’TIR – 2012/2013 242 . lui-même.Diagramme de déploiement Notion d’artéfact (artifact) (2) Déploiement Une instance d’un artefact se déploie sur une instance de nœud. seul des artefacts doivent être déployés sur des nœuds.

Diagramme de déploiement Notion d’artéfact (artifact) (3) Exemple de déploiement : artefacts dans le nœud (avec relation de dépendance) Riadh HADJ M’TIR – 2012/2013 243 .

Diagramme de déploiement Notion d’artéfact (artifact) (4) Exemple de déploiement : artefacts à l’extérieur du nœud Riadh HADJ M’TIR – 2012/2013 244 .

Diagramme de déploiement Notion d’artéfact (artifact) (5) Exemple de déploiement : artefacts manifestant un composant Riadh HADJ M’TIR – 2012/2013 245 .

Diagramme de déploiement Associations Les associations entre nœuds sont des chemins de communication Riadh HADJ M’TIR – 2012/2013 246 .