Vous êtes sur la page 1sur 35

Ecole Nationale des Sciences de l’Informatique

ANALYSE ET II2-ENSI
CONCEPTION
ORIENTÉES OBJET
Objectifs de module ACOO-II2

Apprendre la modélisation objet

Cours « GL-ACOO » ENSI


Comprendre les différents diagrammes UML2.5

Connaître et utiliser les patrons de conception

2
PLAN DU MODULE ACOO-II2

Introduction à UML

Diagrammes d’analyse

Cours « GL-ACOO » ENSI


Diagrammes de conception architecturale

Diagrammes de conception détaillée

Patrons de conception

Etude de cas récapitulatif

3
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

Cours « GL-ACOO » ENSI


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
École Nationale des Sciences de l’Informatique

CHAPITRE 1
II2-ENSI
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

Cours « GL-ACOO » ENSI


Avantages du modèle objet

2. UML
1. 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
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Importance de 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.

Cours « GL-ACOO » ENSI


 Vue subjective mais pertinente de la réalité
 Le modèle est important pour :
 Comprendre et maîtriser la complexité d’un problème
 Supporter un travail coopératif d'ingénierie
 Prévoir et planifier la réalisation d'un développement
 Réutilisation et réutilisabilité
 Et même générer du code
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Importance de la modélisation

Modèle = représentation simplifiée d’une réalité …

Cours « GL-ACOO » ENSI


Réalité

Modèle
9
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Importance de la modélisation

Autant de modèles que de buts, de lecteurs, de notations, de


concepteur (une vue subjective), etc.
.

Cours « GL-ACOO » ENSI


Modèle pour touriste

Modèle pour technicien

10
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Importance de la modélisation

représente

Cours « GL-ACOO » ENSI


Système
réel

Plusieurs
modèles
possibles
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Approches
 Les systèmes peuvent être décomposés selon
 ce qu’ils font (approche fonctionnelle)
 ce qu’ils sont (approche objet)

Cours « GL-ACOO » ENSI


12
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

C’est quoi un objet ?


 OBJET
 Une abstraction informatique d'une entité du monde
réel
 Un ensemble d'attributs caractérise l'état de l'objet.

Cours « GL-ACOO » ENSI


 Un ensemble d'opérations (méthodes) en définissent le
comportement.
 Un objet est une instance de classe (une occurrence d'un type
abstrait).

 Une classe est un type de données abstrait, caractérisé


par des propriétés (attributs et méthodes) communes à
des objets et permettant de créer des objets possédant ces
propriétés.

17
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Caractéristiques du modèle objet

 La modularité : les objets offrent des modules


compacts regroupant un ensemble de données sur
lesquelles on peut appliquer un ensemble

Cours « GL-ACOO » ENSI


d’opérations ce qui facilite la mise au point et la
maintenance des projets.

 L’abstraction : c'est la capacité d'ignorer les détails


d'un élément pour en avoir une vision globale.

 La réutilisabilité : les objets offrent des modules


qu’il est possible d’utiliser dans différentes
applications.
18
Chapitre 1 Sensibilisation à la
Introduction à UML modélisation

Avantages du modèle objet

 L’approche objet gère plus efficacement la


complexité

Cours « GL-ACOO » ENSI


 Modèles basés sur le monde réel  stabilité
 Structure indépendante des fonctions 
évolutivité
 Approche modulaire  maintenabilité ,
réutilisabilité

19
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

Cours « GL-ACOO » ENSI


Avantages du modèle objet

2. UML
1. 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
20
Chapitre 1 Section 2
Introduction à UML UML

Définition

UML = Unified Modeling Language

 Un langage de modélisation des applications

Cours « GL-ACOO » ENSI


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


21
Chapitre 1 Section 2
Introduction à UML UML

Genèse d’UML

 Au départ, plus de 50 méthodes !!


 MAIS:
 Divers concepts sont utilisés
 Divers démarches suivies

Cours « GL-ACOO » ENSI


 Divers notations graphiques supportées
 Divers sémantiques accordées au mêmes concepts

 Unification progressive de plusieurs méthodes, de


remarques des utilisateurs, des partenaires

 Standardisation : en 1997 par l’OMG (Object Management


group) ; groupe créé à l’initiative de grandes sociétés
informatiques américaines pour normaliser les systèmes à
objets ;
Chapitre 1 Section 2
Introduction à UML UML

Genèse d’UML

Un besoin d’Unification: Unified

Cours « GL-ACOO » ENSI


Pour la modélisation: Modelling

Sous forme de langage: Language


Chapitre 1 Section 2
Introduction à UML UML

OMT Genèse d’UML


Booch

OOSE

Fusion

Classe-Relation

Cours « GL-ACOO » ENSI


ROOM

HOOD

Normalisation en 1997
etc... UML 2.5
Rational OMG Mars 2015
Fin 1990 UML 1.4
1995 Fin 2001
OMT UML 1.3
(Rumbaugh et al.) Unified Method
0.8 1996 Juin 1999
Booch UML 1.1
UML 0.9 Nov. 1997
OOSE
(Jacobson et al.)

Catalysis ROOM etc. 24


Chapitre 1 Section 2
Introduction à UML UML

Genèse d’UML
 Le standard pour l’analyse et la conception OO

 N’est pas une méthode mais un langage : définit des diagrammes et


des notations mais n’impose pas de méthode.

Cours « GL-ACOO » ENSI


 Convient pour toutes les démarches et langages de programmation
objet.

 Utilise la notation graphique :


 limite les ambiguïtés
 Support de communication

 Supporte les activités de développement d’un logiciel: Analyse,


conception, implémentation et test

 UML évolue mais reste stable


 Un noyau stable: Concepts de base
 Des mécanismes d’extension des concepts de base

25
Chapitre 1 Section 2
Introduction à UML UML

L e s o u t ils U M L

Fonctionnalités courantes
 Edition graphiques des diagrammes UML
 Génération de code C++, Java,...
 Rétro-conception à partir de code existant

Cours « GL-ACOO » ENSI


…

Quelques exemples
 Rational Rose de Rational Software (www.rational.com)
 StarUML, ArgoUML, Papyrus,
 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)
…

26
Chapitre 1 Section 2
Introduction à UML 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

Cours « GL-ACOO » ENSI


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
Chapitre 1 Section 2
Introduction à UML UML

Objectifs d’UML

• Visualiser
• Chaque symbole graphique a une sémantique
• Spécifier

Cours « GL-ACOO » ENSI


• 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
 Générer du code
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

 UML permet de représenter les systèmes


informatiques selon plusieurs préoccupations
partielles et complémentaires.

Cours « GL-ACOO » ENSI


 Il n’existe pas une seule manière de voir 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).

29
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

 Les préoccupations (facettes) de modélisation


d’UML peuvent être catégorisées selon plusieurs
classifications :

Cours « GL-ACOO » ENSI


 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

 Tous les diagrammes d’UML vont être catégorisés


selon ces classifications
30
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L
Classification selon le point de vue

Cours « GL-ACOO » ENSI


Algorithme du monde réel Algorithme du logiciel
(scénario) (scénario)

Objets du
monde Objets du Objets du
réel logiciel langage

De quoi parle-t-on ? Comment ‘logique’ ? Comment ‘physique’ ?


Analyse Conception Code
Modèle conceptuel Modèle logique Modèle physique 31
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

Structurel (ce que le système EST)

Classification selon l’axe de modélisation

Cours « GL-ACOO » ENSI


du système

Fonctionnel
Comportemental
(ce que le système
(comment le
FAIT)
système EVOLUE)

32
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

Classification selon le modèle des 4+1 vues

Comment découper
Quelles sont les

Cours « GL-ACOO » ENSI


le système pour Vue de
Vue logique briques logicielles
le développer développement nécessaires?

Vue des cas


d’utilisation
Comment découper Comment déploie-t-on
Vue de
le système en des Vue physique l’application?
Processus, les synchroniser Processus Quels sont les contraintes?

33
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

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


 Représenter un système sous différents angles
 Vérifier la cohérence entre les différentes vues

Cours « GL-ACOO » ENSI


 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.

34
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

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

Cours « GL-ACOO » ENSI


 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
35
Chapitre 1 Section 2
Introduction à UML UML

Le s p r é o ccu p ation s e n U M L

Chaque vue ou facette utilise ses propres


notations et modèles. Il en résulte donc
 une simplicité de modélisation (chaque vue isolant

Cours « GL-ACOO » ENSI


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)
36
Chapitre 1 Section 2
Introduction à UML UML

Les diagrammes d’UML 2.5

Cours « GL-ACOO » ENSI


Avec UML 2.5 (2015), on a 14
Diagrammes

37
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.

Cours « GL-ACOO » ENSI


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. 38
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

Cours « GL-ACOO » ENSI


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. (SysML est un exemple de profil UML2). 39
Chapitre 1 Section 2
Introduction à UML UML

Exemple d’utilisation des


Les diagrammes d’UML 2.5 diagrammes d’UML dans un
processus de développement

Cours « GL-ACOO » ENSI


41