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
2
Ecole Nationale des Sciences de l’Informatique
28/09/20171
28/09/20171
ANALYSE ET CONCEPTION ORIENTÉES OBJET
II2-ENSI
28/09/20171
28/09/20171
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)
4
28/09/20172
28/09/20172
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
3
28/09/20172
28/09/20172
PLAN DU COURS
ACOO-II2
- 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
- UML
- 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
6
École Nationale des Sciences de l’Informatique ACOO
CHAPITRE 1
II2-ENSI
28/09/20173
28/09/20173
Chapitre 1 Introduction à UML
Importance de la modélisation
Sensibilisation à la modélisation
▪ Modèle :
- Abstraction de la réalité
- Description de tout ou partie d’un système dans un langage bien défini.
- Ensemble de concepts, règles, un formalisme
- Vue subjective mais pertinente de la réalité
▪ 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/20174
28/09/20174
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
8
28/09/20174
28/09/20174
Autant de modèles que de buts, de lecteurs, de notations … de modélisateurs (une vue subjective) .
10
28/09/20175
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/20175
28/09/20175
Chapitre 1 Introduction à UML
Importance de la modélisation
Sensibilisation à la modélisation
28/09/20175
28/09/20175
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/20176
28/09/20176
Chapitre 1 Introduction à UML
Sensibilisation à la modélisation
28/09/20176
28/09/20176
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/20177
28/09/20177
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/20177
28/09/20177
PLAN DU COURS
ACOO-II2
- 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
- UML
- 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/20178
28/09/20178
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/20178
28/09/20178
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/20179
Chapitre 1 Introduction à UML
Section 2 UML
Objectifs d’UML
- Représenter des systèmes entiers (plusieurs vues)
- Prendre en compte les facteurs d’échelle
- Créer un langage de modélisation
✓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
- Créer un langage de méta-modélisation
28/09/201710
28/09/201710
Chapitre 1 Introduction à UML
Section 2 UML
Objectifs d’UML
- Visualiser
- Chaque symbole graphique a une sémantique
- Spécifier
- d’une manière complète et la moins ambiguë possible
- Construire / Modéliser / Méta-Modéliser
- les entités, les classes, les relations, …
- Documenter
- les diagrammes, notes, contraintes, exigences
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
- 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
1
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
4
Conception 5
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)