ANALYSE ET CONCEPTION ORIENTÉES OBJET (Unified Modeling Language (UML))

Objectifs de module 

ACOO-II2 

Apprendre la modélisation objet 

Comprendre les différents diagrammes UML2.5 

Connaître et utiliser les patrons de conception 

Ecole Nationale des Sciences de l’Informatique 

28/09/2017

28/09/2017

ANALYSE ET CONCEPTION ORIENTÉES OBJET 

II2-ENSI 

28/09/2017

28/09/2017

RÉFÉRENCES 

ACOO-II2 

Fowler Martin, UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed. ed.). Addison- Wesley. ISBN 0-321-19368-7. 

Hugues BERSINI, « L’orienté objet Cours et exercices en UML2 avec Phyton, Java, C# et C++ », EYROLLES, 2004, Bibliothèque ENSI ( A-824.3)

Craig Larman, UML 2 et les Design Patterns – (3ème édition) (ISBN 2-7440-7090-4) 

Internet 

Cours sur le web : http://uml.free.fr 

Site : www.uml.org (OMG) 

28/09/2017

28/09/2017

PLAN DU MODULE 

ACOO-II2 

Introduction à UML 

Les diagrammes d’analyse 

Les diagrammes de conception architecturale 

Diagrammes de conception détaillée 

Les patrons de conception 

Etude de cas récapitulatifs 

28/09/2017

28/09/2017

PLAN DU COURS 

ACOO-II2 

  1. Sensibilisation à la modélisation objet 

Importance de la modélisation 

La notion d’objet 

Principes de la modélisation objet 

Avantages du modèle objet 

  1. UML 
  2. Définition 2. Historique 3. Objectifs d’UML 4. Les outils d’UML 5. Les préoccupations en UML 6. Diagrammes d’UML 2.5 

École Nationale des Sciences de l’Informatique ACOO 

CHAPITRE 1 

II2-ENSI 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Importance de la modélisation 

Sensibilisation à la modélisation 

Modèle : 

Le modèle est important pour : 

Comprendre un problème 

Supporter un travail coopératif d’ingénierie 

Prévoir et simuler la réalisation d’un développement 

Identifier et suivre les lots de travaux 

Guider, contrôler, automatiser la production 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Importance de la modélisation 

Sensibilisation à la modélisation 

Modèle = représentation simplifiée d’une réalité sur laquelle on veut être renseigné 

Réalité 

Modèle 

28/09/2017

28/09/2017

Autant de modèles que de buts, de lecteurs, de notations … de modélisateurs (une vue subjective) . 

10 

28/09/2017

Chapitre 1 Introduction à UML 

Importance de la modélisation 

Système réel 

Modèle pour touriste 

Modèle pour technicien 

représente 

Sensibilisation à la modélisation 

Plusieurs modèles possibles 

même réalité 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Importance de la modélisation 

Sensibilisation à la modélisation 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Sensibilisation à la modélisation 

C’est quoi un objet ? 

OBJET 

Une abstraction informatique d’une entité du monde réel => quelque chose du domaine du problème dont on parle en lui attribuant des propriétés, ou qui doit être manipulé 

Une chose qui existe dans le temps et l’espace 

Un élément individuel identifiable, soit réel, soit abstrait, avec un rôle bien défini dans le domaine du problème 

Il peut être une chose physique, relation, événement, situation, idée, règle, tâche, rôle joué, … 

RQ : ne pas confondre objet et attributs de l’objet => ce qui caractérise l’objet : taille, position, valeur, adresse, état de l’objet, … 12 

Caractéristiques du modèle objet 

Abstraction : Faire ressortir les caractéristiques externes essentielles d’une entité pour la distinguer des autres. 

Encapsulation : Cacher les détails qui ne font pas partie des caractéristiques essentielles d’une entité intéressantes d’une entité. 

Modularité : Décomposer un programme/système en un ensemble de modules cohérents et faiblement couplés pouvant être compilés/considérés séparément. 

Hiérarchisation : ranger ou ordonnancer les abstractions 

héritage => généralisation / spécialisation (« genre de ») 

agrégation => composition par regroupement (« partie de ») 

13 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Sensibilisation à la modélisation 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Sensibilisation à la modélisation 

Avantages du modèle objet 

Exploiter la puissance des langages de programmation orientés objet 

Favoriser la réutilisation de composants logiciels et même d’architectures complexes 

Produire des systèmes basés sur des formes stables qui résistent mieux aux changements 

Penser plus près des modèles « naturels » 

14 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Sensibilisation à la modélisation 

Avantages du modèle objet 

L’approche objet gère plus efficacement la complexité 

Modèles basés sur le monde réel → stabilité 

Structure indépendante des fonctions → évolutivité 

Approche modulaire → maintenabilité, réutilisabilité 

15 

28/09/2017

28/09/2017

PLAN DU COURS 

ACOO-II2 

  1. Sensibilisation à la modélisation objet 

Importance de la modélisation 

La notion d’objet 

Principes de la modélisation objet 

Avantages du modèle objet 

  1. UML 
  2. Définition 2. Historique 3. Objectifs d’UML 4. Les outils d’UML 5. Les préoccupations en UML 6. Diagrammes d’UML 2.5 

16 

28/09/2017

28/09/2017

Chapitre 1 Introduction à UML 

Section 2 UML 

17 

Définition 

UML = Unified Modeling Language 

=Langage unifié pour la modélisation objet 

Un langage de modélisation des applications construites à l’aide d’objets, indépendamment de la méthode utilisée 

C’est : 

Une notation 

Une description complète, évolutive, publique 

Un standard 

Ce n’est pas : 

Une méthode 

Une méthodologie 

Un processus de modélisation 

Une démarche de modélisation 

28/09/2017

28/09/2017

Booch 

OMT (Rumbaugh et al.) 

OMT 

Booch 

OOSE 

Classe-Relation 

Fin 1990 

Chapitre 1 Introduction à UML 

Section 2 UML 

Fonctionnalités courantes 

Edition des modèles et diagrammes UML 

Génération de code C++, Java,… 

Rétro-conception à partir de code existant 

… 

Quelques exemples 

Rational Rose de Rational Software (www.rational.com) 

Software Through Pictures d’AONIX (www.ide.com

Cayenne Class Designer de Cayenne Software (www.cayennesoft.com

AMC Designer, Poseidon, Visual Design, Spark (www.cayennesoft.com

Les outils UML 

19 

etc… 

HOOD 

ROOM 

Fusion 

Chapitre 1 Introduction à UML 

Genèse d’UML 

Au départ, plus de 150 méthodes !! 

Unification progressive de plusieurs méthodes, de remarques des utilisateurs, des partenaires 

Standardisation : par l’OMG (Object Management group) ; groupe créé à l’initiative de grandes sociétés informatiques américaines pour normaliser les systèmes à objets ; 

OOSE (Jacobson et al.) 

18 

Catalysis 

Unified Method Unified Method 0.8 

1995 

ROOM 

Rational Rational 

UML UML 0.91996 

etc. 

UML UML 1.1 

Nov. Nov. 1997 1997 

OMG OMG 

UML UML 2.5 

Juin Juin 1999 1999 

Mars Mars 2015 2015 

Fin Fin 200 2001UML UML 1.3 

Section 2 UML 

UML UML 1.4 

28/09/2017

Chapitre 1 Introduction à UML 

Section 2 UML 

Objectifs d’UML 

Utilisable par les hommes & machines Compatible avec toutes les techniques de réalisation Adapté à toutes les phases du développement Sans rejeter les méthodes existantes Indépendant des langages de programmation 

28/09/201710 

28/09/201710 

Chapitre 1 Introduction à UML 

Section 2 UML 

Objectifs d’UML 

28/09/201710 

28/09/201710 

Chapitre 1 Introduction à UML 

Section 2 UML 

La méta-modélisation 

UML permet aussi la méta-modélisation 

Un méta-modèle UML 

définit la structure des modèles UML 

permet la description du modèle concerné par l’application. 

une notation UML avec des éléments de la notation extensibles à condition d’en définir la sémantique 

22 

28/09/201711 

28/09/201711 

Chapitre 1 Introduction à UML 

Section 2 UML 

La méta-modélisation 

Hiérarchie de modélisation à 4 niveaux 

L’OMG définit 4 niveaux de modélisation 

M0 : système réel, système modélisé 

M1 : modèle du système réel défini dans un certain langage 

M2 : méta-modèle définissant ce langage 

M3 : méta-méta-modèle définissant le méta- modèle 

23 

28/09/201711 

28/09/201711 

Chapitre 1 Introduction à UML 

Section 2 UML 

24 

28/09/201712 

28/09/201712 

Méta-méta-modèle 

Définit un langage pour spécifier un méta-modèle 

MOF 

MOF 

Méta-modèle 

Instance du méta-méta- modèle, définissant un langage 

UML 

UML 

Modèle 

Instance du méta-modèle : modélisant un domaine spécifique 

Diagramme de classe 

Diagramme de classe 

Monde Réel 

Instance du modèle 

Application 

Application 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

28/09/201712 

Chapitre 1 Introduction à UML 

Section 2 UML 

La méta-modélisation 

Hiérarchie à 4 niveaux existe en dehors du d’UML, dans d’autres espaces technologiques que celui de l’OMG 

Langage de programmation 

M0 : l’exécution d’un programme M1 : le programme M2 : la grammaire du langage dans lequel est écrit le programme M3 : le concept de grammaire 

XML 

M0 : données du système M1 : données modélisées en XML M2 : DTD / Schema XML M3 : le langage XML 

25 

La méta-modélisation 

28/09/201712 

28/09/201712 

Chapitre 1 Introduction à UML 

Exemple 1 

Métamodèle -> Classe, Attribut, Opération 

Modèle -> Personne 

Identification, nomFournisseur Ajouter() 

Objet -> « PersonneAli » 

« 40222 », « Ali » Ajouter(40222, Ali) 

Section 2 UML 

28/09/201713 

28/09/201713 

Chapitre 1 Introduction à UML 

Exemple 2 

Exemple d’un système réel à modéliser (niveau M0

Une pièce possède 4 murs, 2 fenêtres et une porte 

Un mur possède une porte ou une fenêtre mais pas les 2 à la fois 

Deux actions sont associées à une porte ou une fenêtre : ouvrir et fermer 

Si on ouvre une porte ou une fenêtre fermée, elle devient ouverte 

Si on ferme une porte ou une fenêtre ouverte, elle devient fermée 

La méta-modélisation 

La méta-modélisation 

Section 2 UML 

26 

27 

28/09/201713 

28/09/201713 

Chapitre 1 Introduction à UML 

La méta-modélisation 

Exemple 2 

Pour modéliser ce système, il faut définir 2 diagrammes UML : niveau M1 

Un diagramme de classe pour représenter les relations entre les éléments (portes, murs, pièce) 

Un diagramme d’état pour spécifier le comportement d’une porte ou d’une fenêtre (ouverte, fermée) 

La méta-modélisation 

Section 2 UML 

28/09/201714 

28/09/201714 

Chapitre 1 Introduction à UML 

niveau M1 

Section 2 UML 

28 

29 

28/09/201714 

28/09/201714 

28/09/201714 

28/09/201714 

niveau M2 

La méta-modélisation 

Chapitre 1 Introduction à UML 

Section 2 UML 

31 

30 

28/09/201715 

Chapitre 1 Introduction à UML 

Section 2 UML 

Les préoccupations en UML 

il n’existe pas une seule manière de regarder un système informatique (le point de vue de l’analyste, du concepteur, d’architecte…). 

Il n’existe pas un seul axe d’intérêt pour représenter un système informatique (sa vue fonctionnelle, structurelle et comportementale). 

UML permet de représenter les systèmes informatiques selon plusieurs préoccupations partielles et complémentaires. 

32 

28/09/201716 

28/09/201716 

Chapitre 1 Introduction à UML 

Tous les diagrammes d’UML vont être catégorisés selon ces classifications 

Section 2 UML 

Les préoccupations en UML 

Les préoccupations (facettes) de modélisation d’UML peuvent être catégorisées selon plusieurs classifications : 

Classification selon le point de vue de l’acteur qui va modéliser (analyste, architecte, concepteur, développeur..) 

Classification selon l’axe de modélisation (fonctionnel, structurel ou comportemental) 

Classification selon le modèle des 4+1 vues 

33 

28/09/201716 

28/09/201716 

Les préoccupations en UML 

Classification selon l’axe de modélisation 

du système 

Chapitre 1 Introduction à UML 

Les préoccupations en UML 

Classification selon le point de vue Algorithme du logiciel (scénario)Objets du 

monde réel 

De quoi parle-t-on ? 

Comment ‘physique’ ? Analyse 

Code 

Modèle conceptuel Modèle logique Modèle physique 

Chapitre 1 Introduction à UML 

Structurel (ce que le système EST) 

Comportemental (comment le système EVOLUE) 

Fonctionnel (ce que le système FAIT) 

Algorithme du monde réel 

(scénario)Comment ‘logique’ ? Conception 

Objets du logiciel 

Objets du langage 

Section 2 UML 

Section 2 UML 

34 

35 

28/09/201717 

Les préoccupations en UML 

Classification selon le modèle des 4+1 vues 

Chapitre 1 Introduction à UML 

Section 2 UML 

37 

36 

28/09/201718 

28/09/201718 

28/09/201718 

Chapitre 1 Introduction à UML 

Les préoccupations en UML 

Le modèle des 4+1 vues a pour objectif de : 

Représenter un système sous différents angles (selon que l’on considère les aspects statique/dynamique et logique/ physique). 

Vérifier la cohérence entre les différentes vues 

Valider les quatre vues par la vue centrale 

permettre la gestion d’un projet de développement du début à la fin. 

Bien couvrir tous les aspects d’un cycle de développement. 

Il s’agit d’un méta-modèle il doit être spécialisé avant d’être utilisable . 

Section 2 UML 

28/09/201718 

28/09/201718 

Vue logique 

Vue de Processus 

Vue de développement 

Vue des cas d’utilisation 

Vue physique 

28/09/201718 

28/09/201718 

28/09/201718 

28/09/201718 

Chapitre 1 Introduction à UML 

Les préoccupations en UML 

Chaque vue ou facette utilise ses propres notations et modèles. 

Il en résulte donc une simplicité de modélisation (chaque vue isolant une seule facette du problème) et un meilleur travail en groupe (chaque spécialiste d’une facette d’un système concevant son modèle en utilisant des solutions adaptées). 

L’utilisation de toutes les vues n’est pas obligatoire (ex. pour un système centralisé, on utilise pas la vue physique) 

Section 2 UML 

28/09/201719 

28/09/201719 

Chapitre 1 Introduction à UML 

Les préoccupations en UML 

  1. La vue logique 

découpage des services à rendre aux clients hors de tout contexte d’exécution 2. La vue de réalisation ou d’implémentation 

découpage prenant en compte le contexte d’exécution et l’environnement de développement (l’organisation du code de l’application) 3. La vue des processus ou procédurale 

Représentation du comportement et décomposition en flots d’exécution et synchronisation entre ces flots 4. La vue physique, de déploiement ou de distribution 

Description des ressources matérielles et la distribution de la partie logicielle sur la partie matérielle 5. La vue des cas d’utilisation 

Descriptions des fonctionnalités du systèmes (les cas d’utilisation) 

La colle et le coordinateur entre les autres vues 

Section 2 UML 

38 

39 

28/09/201719 

28/09/201719 

1) Diagramme de cas d’utilisation: montre les 

fonctionnalités à rendre aux acteurs du système. 2) Diagramme de classes: montre les briques statiques 

(classes, associations, opérations,…) 3) Diagramme d’objets: montre les instances des éléments 

structurels et leurs liens. 4) Diagramme de packages: montre l’organisation logique 

du modèle et les relations entre packages. 5) Diagramme de séquence: montre la séquence verticale des messages passés entre éléments au sein d’une interaction. 6) Diagramme de communication: montre la communication entre éléments dans le plan au sein d’une interaction. 7) Diagramme d’états: montre les différents états et transitions possibles des objets d’une classe à l’exécution. 41 

28/09/201720 

Chapitre 1 Introduction à UML 

Avec UML 2.5 (2015), on a 14 Diagrammes 

Section 2 UML 

Les diagrammes d’UML 2.5 

40 

28/09/201720 

28/09/201720 

8) Diagramme d’activité: montre l’enchainement des 

actions au sein d’une activité. 9) Diagramme de vue globale d’interaction: combine les diagramme d’activité et de séquence pour organiser des fragments d’interaction avec des décisions et des flots. 10)Diagramme de temps: combine les diagrammes d’états et de séquence pour montrer l’évolution de l’état d’une ligne de vie au cours du temps et les messages qui modifient cet état. 11)Diagramme de structure composite: montre l’organisation interne d’un élément structurel complexe. 12)Diagramme de composants: montre les composants du 

système avec leurs interfaces fournies et requises. 13)Diagramme de déploiement: montre le déploiement 

physique des artéfacts sur les ressources matérielles. 14)Diagramme de profil: définit un profil spécifique à un 

domaine. (SysMLest un exemple de profil UML2). 42 

Chapitre 1 

Section 2 Introduction à UML 

UML 

Les diagrammes d’UML 2.5 Capture des exigences 

2 Analyse 

Exemple d’utilisation des diagrammes d’UML dans un processus de développement 

Modèle de déploiement Modèle de conception 

3 Consolidation des exigences Modèle d’analyse 

Conception

Réalisation 

Modèle d’exigences 

6 Tests Modèle de tests 

Modèle de réalisation 

43 

28/09/201721 

Les diagrammes d’UML 2.5 

Exemple d’utilisation des diagrammes d’UML dans un processus de développement 

28/09/201722 

28/09/201722 

Chapitre 1 Introduction à UML 

Section 2 UML 

44 

28/09/201722 

28/09/201722 

 

Télécharger gratuitement en ANALYSE ET CONCEPTION ORIENTÉES OBJET(UML)

Quitter la version mobile