Orientée Objet
À propos du cours
Le but du cours Méthodologie de Conception Orientée Objet est de se
familiariser avec l’approche orientée objet en ce qui concerne la conception.
Au terme de ce module, l'apprenant sera en mesure de:
1. comprendre les concepts orientés objet,
2. utiliser le langage de modélisation orienté objet UML (Unified
Modeling Language),
3. analyser et concevoir un système d’informations.
Le cours couvre les différents diagrammes d’UML, ainsi qu’une démarche
simplifiée du processus unifié allant de la spécification des besoins à la
conception concrète d’un système d’informations.
2
Chapitre 1:
Méthodes orientées objet
Introduction
- Les méthodes d'analyse orientées objet sont initialement issues des milieux
industriels pour répondre aux facteurs de qualité dans le développement de logiciels.
- L' apparition de la méthode UML en fin des années 90 a permis d'améliorer la
qualité des logiciels développés en unifiant les méthodes existantes et en offrant un
langage commun de modélisation orientée objet.
4
Unification des méthodes
UML est ainsi apparu comme norme du langage de modélisation objet qui a été
publiée dans sa première version en septembre 1997 par l'OMG (Object
Management Group).
5
Modélisation avec UML
- La modélisation est une représentation d’un système réel quelle qu’en soit sa
forme: physique, graphique, mathématique, verbale ou mentale.
- Elle consiste à décrire un problème et la solution de ce problème.
6
Diagrammes d'UML
7
Diagrammes d'UML
• Chacun de ces diagrammes correspond soit à la description d’une partie du système soit
à la description du système selon un point de vue particulier.
• On distingue deux types de diagrammes :
1. les diagrammes structurels,
2. les diagrammes comportementaux.
8
Positionnement des diagrammes d'UML
9
Positionnement des diagrammes d'UML
Vue statique
La structure statique du système peut être élaborée à travers cinq diagrammes :
10
Positionnement des diagrammes d'UML
Vue statique
La structure statique du système peut être élaborée à travers quatre diagrammes :
- Diagramme de déploiement (DDP) : décrit l’architecture technique d’un système. Il
sert à représenter les éléments matériels (ordinateurs, périphériques, réseaux,
systèmes de stockage, etc.) et la manière dont les composants du système sont
répartis sur ces éléments matériels et interagissent avec eux.
11
Positionnement des diagrammes d'UML
Vue dynamique
La structure dynamique du système peut être élaborée à travers cinq diagrammes :
12
Positionnement des diagrammes d'UML
Vue dynamique
La structure dynamique du système peut être élaborée à travers quatre diagrammes :
13
Nouveautés apportées par le version 2.0 d'UML
- La version 2.0 d'UML comporte 13 diagramme qui sont dépendants
hiérarchiquement et se complètent et propose une nouvelle classification de ces
diagrammes.
- Les 9 diagrammes de la version précédente d'UML sont maintenus, à l'exception
du diagramme de collaboration qui a été remplacé par le diagramme de
communication.
- Les quatre nouveaux diagrammes de la version 2.0 sont les suivants :
14
Nouveautés apportées par le version 2.0 d'UML
15
Chapitre 2:
Fondements de base de la conception Orienté
Objet
Plan
1 Introduction
2 Principes de la modélisation
17
Introduction
18
Introduction
Très Important!
C’est inutile:
• d’apprendre un langage de programmation orientée objet.
• d’apprendre UML ou un outil de génie logiciel.
Si vous n’êtes pas en mesure de:
• Élaborer une excellente conception orientée objet.
• Améliorer une conception existante.
La compétence de « penser et concevoir en objet » est la plus importante et la plus
difficile à acquérir.
19
Principes de la modélisation
20
Principes de la modélisation
21
Principes de la modélisation
Objectifs de la modélisation orientée objet
22
L’approche orientée Objet
UML: Unified Modeling Language
23
L’approche orientée Objet
UML: un langage
UML n’est pas une méthode.
UML est un langage de modélisation orientée objet.
UML a été adopté par toutes les méthodes orientées objet.
UML est dans le domaine public ; c’est un standard.
UML est un langage pour :
Visualiser :Chaque symbole graphique possède une sémantique.
Spécifier: De manière précise et complète, sans ambigü ité.
Construire :Une partie du code des classes peut être généré automatiquement.
Documenter :Les différents diagrammes, notes, contraintes, exigences sont
conserves dans un document.
24
L’approche orientée Objet
UML: 9 diagrammes
25
L’approche orientée Objet
Analyse Versus Conception
Analyse:
L’analyse met l’accent sur une investigation du problème et des besoins plutô t que
sur la recherche d’une solution.
Analyse:
• Qu’est ce qu’on désire développer?
• Quelles sont les fonctions du système?
• Comment spécifier le bon système?
Le terme analyste est vaste:
• Analyse des besoins (spécification des besoins).
• Analyse orienté Objet (spécification et investigation des objets du système).
26
L’approche orientée Objet
Analyse Versus Conception
Conception:
Elaboration d’une solution conceptuelle répondant aux besoins plutô t que la mise en
œuvre de cette solution.
Exclut souvent les détails de bas niveau.
Description d’un schéma conceptuel d’objets logiciel et de base de données.
La conception se résume au terme « bien construire un système ».
Conception:
Conception orientée objet/composant.
Conception de la base de données.
Conception graphique.
27
L’approche orientée Objet
Notion d’objet
Définition:
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. Les objets encapsulent une partie des connaissances du monde
dans lequel ils évoluent.
Un objet associe données et traitements en ne laissant visible que l’interface de
l’objet, c’est à dire les traitements que l’on peut faire dessus
Objet = Identité + Etat + Comportement
Identité : En plus de son état un objet possède une identité qui permet de le
distinguer de manière non ambiguë indépendamment de son Etat.
Etat : regroupement des valeurs instantanées de tous les attributs d’un objet.
Comportement : regroupe toutes les compétences d’un objet (méthodes) et décrit les
actions et les réactions de cet objet.
28
L’approche orientée Objet
Notion d’objet
29
L’approche orientée Objet
Notion de classe
Une classe décrit un domaine de définition d’un ensemble d’objets : c’est un modèle
qui définit les données et les traitements communs à une collection d’objets
similaires.
Chaque objet appartient à une classe.
Classe : regroupement d ’objets de même type.
L’objet est une instance de sa classe.
Chaque classe est représentée sous la forme d’ un rectangle divisé en 3 parties.
Exemple:
30
L’approche orientée Objet
Terminologie orientée objet
31
L’approche orientée Objet
Les qualificatifs de classe (portée)
Publique :
Les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une
classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection
des données.
Protégée :
L’accès aux données est réservé aux fonctions des classes héritières, c'est à dire par les
fonctions membres de la classe ainsi que des classes dérivées.
Privée :
L'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau
de protection des données le plus élevé.
32
L’approche orientée Objet
Les qualificatifs de classe (portée)
Publique :
Un attribut publique pourra être accédé (lu et modifié) par tout le monde.
Protégée :
Un attribut protégé pourra être accédé (lu et modifié) par les classes filles.
Privée :
Un attribut privé pourra être accédé (lu et modifié) par les méthodes et seulement
les méthodes de sa classe.
33
L’approche orientée Objet
Les qualificatifs de classe (portée)
Publique :
Une méthode publique pourra être accédé (lu et modifié) par tout le monde.
Protégée :
Une méthode protégée pourra être utilisée ou redéfinie par les classes héritières.
Privée :
Une méthode privée pourra être accédé (lu et modifié) par les méthodes et seulement
les méthodes de sa classe.
34
L’approche orientée Objet
Encapsulation
L’ encapsulation est l'idée de protéger l'information contenue dans un objet et de ne
proposer que des méthodes de manipulation de cet objet.
Ainsi, les propriétés et axiomes associés aux informations contenues dans l'objet
seront assurés/validés par les méthodes de l'objet et ne seront plus de la
responsabilité de l'utilisateur extérieur.
L'utilisateur extérieur ne pourra pas modifier directement l'information et risquer de
mettre en péril les axiomes et les propriétés comportementales de l'objet.
L'objet est ainsi vu de l'extérieur comme une boîte noire ayant certaines propriétés et
ayant un comportement spécifié. La manière dont ces propriétés ont été paramétrées
est alors cachée aux utilisateurs de la classe.
35
L’approche orientée Objet
Encapsulation
Par défaut les valeurs des attributs d’un objets sont encapsulées dans l’objet et ne
peuvent pas être manipulées directement par un autre objet.
Des règles de visibilité précisent la notion d’encapsulation:
assouplissement du degré d’encapsulation et de protection au profit de
certaines classes bien particulières (exp: classes mères/filles, classes amies en
C++)
intérêt : réduire le temps d’accès aux attributs
Trois niveaux d’encapsulation :
• privé (-): attribut non vu de l’extérieur de l’objet,
• protégé (#): attribut vu par des classes dérivées,
• public (+): attribut visible pour toutes les classes.
36
L’approche orientée Objet
Héritage
La notion d’héritage permet de décrire un type de lien qui unit les différents objets.
37
L’approche orientée Objet
Généralisation
Dans le cas d’un héritage, on dit qu’une classe "mère" est une généralisation des
propriétés de ses classes "fille" .
Spécialisation
Dans le cas d’un héritage, on dit qu’une classe "fille" est une spécialisation des
propriétés de sa classe "mère " .
Spécialisation
Généralisation
B
38
L’approche orientée Objet
Exemple
Relation entre classes
• Oiseaux est un cas particulier de Animaux (spécialisation)
• Animaux généralise Oiseaux (Généralisation)
La classe fille
• hérite les attributs et les comportements
• peut avoir des attributs et des méthodes nouvelles
• peut avoir un comportement modifié.
39
L’approche orientée Objet
Polymorphisme :
• Possibilité de recourir à la même expression pour dénoter différentes opérations.
• L’héritage est une forme particulière de polymorphisme caractéristique des systèmes
orientés objet.
Exemple-Polymorphisme:
• Tout animal peut se déplacer.
• Il le fait différemment s’il s’agit d’un oiseau ou d’un serpent.
40
Exercice
1. Je suis ce qui permet de répondre au problème de couplage des données __________.
2. Je suis ce qui circule entre les objets __________.
3. Je suis un synonyme d'objet ou d'agent ____________________.
4. Je suis la visibilité qu'il faut généralement accorder aux données dans une classe ____________.
5. Je représente un ensemble d'objets qui partagent une structure commune et un comportement
commun ________________________.
6. Je donne accès à un service de la classe _______________________.
7. Je suis la composante de la classe qui conserve un état particulier ________.
8. Un des grands espoirs de l'orienté objet qui s'avère plus facile à dire qu'à faire. _____________.
9. Je suis la méthode automatiquement appelée lors de la création d'un objet __________________.
10. Se dit d’une relation de généralisation qui permet de partager les similitudes entre les classes tout
en conservant leurs différences _________.
11. Découper un problème en morceaux suffisamment petits pour permettre de le comprendre
séparément ___________.
12. Je suis une relation de tout et de partie _____________.
41
Correction
1. Je suis ce qui permet de répondre au problème de couplage des données encapsulation
2. Je suis ce qui circule entre les objets message
3. Je suis un synonyme d'objet ou d'agent instance
4. Je suis la visibilité qu'il faut généralement accorder aux données dans une classe privée
5. Je représente un ensemble d'objets qui partagent une structure commune et un comportement
commun classe
6. Je donne accès à un service de la classe méthode
7. Je suis la composante de la classe qui conserve un état particulier attribut
8. Un des grands espoirs de l'orienté objet qui s'avère plus facile à dire qu'à faire réutilisation
9. Je suis la méthode automatiquement appelée lors de la création d'un objet constructeur
10. Se dit d’une relation de généralisation qui permet de partager les similitudes entre les classes
tout en conservant leurs différences héritage
11. Découper un problème en morceaux suffisamment petits pour permettre de le comprendre
séparément composition
12. Je suis une relation de tout et de partie agrégation
42
Chapitre 3:
Les diagrammes statiques:
Le diagramme de Cas d’utilisation
Plan
1Introduction
2Identification et représentation des cas d’utilisation
3 Représentation du diagramme des cas d’utilisation
6 Description textuelle
44
Introduction
Les cas d’utilisation « use cases » ont été formalisés par Ivar Jacobson.
Ils décrivent sous forme d’actions et de réactions, le comportement d’un système du
point de vue d’un utilisateur.
Les cas d’utilisation sont utiles lors de l’élaboration du cahier des charges ou du
document de spécifications des besoins du logiciel.
45
Introduction
L’ensemble des fonctionnalités du système est déterminé en examinant les besoins
de chaque acteur, exprimés sous forme de famille d’interactions dans les cas
d’utilisation.
Les acteurs se représentent sous forme de petits personnages qui déclenchent les
cas. Ces derniers se représentent par des ellipses contenues dans un rectangle
représentant le système.
46
Introduction
- Il existe quatre catégories d’acteurs:
1. les acteurs principaux: ceux qui sont les utilisateurs du système.
2. les acteurs secondaires: ceux qui administrent le système.
3. le matériel externe.
4. les autres systèmes.
47
Identification et représentation des cas d'utilisation
• Tout système peut être décrit par un certain nombre de cas d'utilisation représentant
les besoins exprimés par l'ensemble des utilisateurs.
• Chaque cas d'utilisation doit être décrit sous forme textuelle afin de bien identifier
les traitements à réaliser par le système en vue de la satisfaction du besoin exprimé
par l'acteur.
48
Identification et représentation des cas d'utilisation
Le travail d'identification des cas d'utilisation suppose que les acteurs eux-mêmes
soient déjà connus ou doivent l'être complètement à la fin de l'opération de
description des cas d'utilisation.
Un acteur est un utilisateur type qui a toujours le même comportement vis-à -vis d'un
cas d'utilisation.
49
Représentation du diagramme des cas d'utilisation
50
Représentation du diagramme des cas d'utilisation
Acteur
• entité externe qui agit sur le système (opérateur, autre système…).
• Il se représente par un petit bonhomme avec son nom inscrit dessous.
• Il est également possible de représenter un acteur sous la forme d'un classeur
stéréotypé « actor ».
51
Représentation du diagramme des cas d'utilisation
Cas d'utilisation
• ensemble d’actions réalisées par le système, en réponse à une action d’un acteur.
• Les uses cases peuvent être structurés.
• Les uses cases peuvent être organisés en paquetages (packages).
• L’ensemble des uses cas décrit les objectifs (le but) du système.
Remarque : Le nom du use case doit se composer d'un verbe à l'infinitif qui décrit
une action. Pour que l'ensemble du modèle soit cohérent il faut choisir tous les
verbes soit du point de vue du système soit du point de vue de l'utilisateur (ce qui est
généralement préférable).
52
Représentation du diagramme des cas d'utilisation
Cas d'utilisation
• Un cas d'utilisation se représente par une ellipse contenant le nom du cas (un verbe à
l'infinitif), et optionnellement, au-dessus du nom, un stéréotype.
• Dans le cas où l'on désire présenter les attributs ou les opérations du cas d'utilisation,
il est préférable de le représenter sous la forme d'un classeur stéréotypé »use case »
53
Représentation du diagramme des cas d'utilisation
54
Représentation du diagramme des cas d'utilisation
Exemple
Un système de messagerie comporte quatre cas d'utilisation. Nous verrons, dans la
suite du cours d'UML, qu'un cas d'utilisation peut avoir une ou plusieurs instances
représentées par des scénarios. Chaque scénario fait l'objet lui-même d'un
diagramme de séquence ou de collaboration. En conclusion, nous dirons qu'un
système est caractérisé par son comportement vis-à -vis de ses utilisateurs. Ce
comportement se représente sous forme d'un ensemble de cas d'utilisation qui
correspond aux besoins des acteurs de ce système.
55