Académique Documents
Professionnel Documents
Culture Documents
89
L’approche orientée objet
logiciel
= collection d’objets dissociés, identifiés et
possédant des caractéristiques.
Une caractéristique
◦ un attribut (i.e. une donnée caractérisant l’état de l’objet),
◦ une entité comportementale de l’objet (i.e. une fonction).
La fonctionnalité du logiciel émerge alors de
l’interaction entre les différents objets qui le
constituent.
L’une des particularités de cette approche est qu’elle
rapproche les données et leurs traitements associés
au sein d’un unique objet.
L’approche orientée objet
Caractéristique d’un objet :
L’identité : L’objet possède une identité, qui
permet de le distinguer des autres objets,
indépendamment de son état.
Les attributs : Il s’agit des données caractérisant
l’objet. Ce sont des variables stockant des
informations sur l’état de l’objet.
Les méthodes : caractérisent le comportement
d’un objet , ces opérations permettent de faire réagir
l’objet aux sollicitations extérieures ou modifier
certains attributs de l’objet.
L’approche orientée objet
La difficulté de cette modélisation consiste à créer
une représentation abstraite, sous forme d’objets,
d’entités ayant une existence matérielle ( voiture,
personne, …) ou bien virtuelle (client, temps, …).
La Conception Orientée Objet (COO) est la
méthode qui conduit à des architectures logicielles
fondées sur les objets du système, plutôt que sur la
fonction qu’il est censé réaliser.
La méthode UML
UML = Unified Modeling Language peut se traduire en français
par langage unifié pour la modélisation
C'est un langage de modélisation objet
Il fournit les fondements pour spécifier, construire, visualiser
et décrire les composants d'un système logiciel
UML se base sur une sémantique précise et sur une notation
graphique expressive. Il permet de modéliser de manière
claire et précise la structure et le comportement d'un
système indépendamment de toute méthode ou de tout
langage de programmation
REMARQUE : est une notation pour la résolution de
problèmes orientée objet, pas une méthode !
93
Historique UML
UML 2.0
UML 1.3
Industrialisation
Standardisation OMG
Novembre 97 UML 1.1
Standardisation
Rational,
Janvier 97 UML 1.0 IBM, HP, Microsoft, Oracle,
ObjecTime...
Unification
Juillet 96 UML 0.9
... Fragmentation
Booch ‘91
RUP workshop, 07.07.2000
OMT - 1 OOSE ...
G. Booch
Copyright © 2000 Rational Software, all rights reserved
J. Rumbaugh
1-16
I.Jacobson
94
La méthode UML
Ilest impossible de donner une représentation
graphique complète d’un logiciel, ou de tout autre
système complexe, de même qu’il est impossible de
représenter entièrement une statue (à 3 dimensions)
par des photographies (à 2 dimensions).
Mais il est possible de donner sur un tel système des
vues partielles, et dont la conjonction donnera une
idée utilisable en pratique sans risque d’erreur grave.
95
La méthode UML
UML comporte treize types de diagrammes réparties
en deux grands groupes :
i. Diagrammes structurels ou diagrammes statiques
(UML Structure)
diagramme de classes (Class diagram)
diagramme d’objets (Object diagram)
diagramme de composants (Component diagram)
diagramme de déploiement (Deployment diagram)
diagramme de paquetages (Package diagram)
diagramme de structures composites (Composite structure diagram)
96
La méthode UML
ii. Diagrammes comportementaux ou diagrammes
dynamiques (UML Behavior)
◦ diagramme de cas d’utilisation (Use case diagram)
◦ diagramme d’activités (Activity diagram)
◦ diagramme d’états-transitions (State machine diagram)
Diagrammes d’interaction (Interaction diagram)
◦ diagramme de séquence (Sequence diagram)
◦ diagramme de communication (Communication diagram)
◦ diagramme global d’interaction (Interaction overview diagram)
◦ diagramme de temps (Timing diagram)
97
La méthode UML
98
La méthode UML
Diagramme de cas d’utilisation : représente la structure
des grandes fonctionnalités nécessaires aux utilisateurs du
système. Il s’assure de la relation entre l’utilisateur et les
objets que le système met en œuvre.
Diagramme de classes : est considéré comme le plus
important dans un développement orienté objet. Il décrit les
classes que le système utilise, ainsi que leurs
liens(architecture conceptuelle ).
Diagramme d’objets : permet d’éclairer un diagramme de
classes en l’illustrant par des exemples.
Diagramme d’états-transitions : représente la façon
dont évoluent (i.e. cycle de vie) les objets appartenant à une
même classe.
99
La méthode UML
Diagramme d’activités : il montre l’enchaînement des
activités qui concourent au processus.
Diagramme de séquence : représente la succession
chronologique des opérations réalisées par un acteur. Il
indique les objets que l’acteur va manipuler et les
opérations qui font passer d’un objet à l’autre.
Diagramme de communication: graphe dont les
nœuds sont des objets et les arcs les échanges entre objets.
100
La méthode UML
Ces diagrammes, d’une utilité variable selon les cas, ne sont
pas nécessairement tous produits à l’occasion d’une
modélisation.
Les plus utiles pour la maîtrise d’ouvrage sont les
diagrammes d’activités, de cas d’utilisation, de classes,
d’objets, de séquence et d’états-transitions.
Les diagrammes de composants, de déploiement et de
communication sont surtout utiles pour la maîtrise d’œuvre
à qui ils permettent de formaliser les contraintes de la
réalisation et la solution technique.
101
Le diagramme de classe
102
Diagrammes de classes
Objectif
Les diagrammes de classes permettent
de spécifier la structure et les liens entre
les objets dont le système est composé.
103
objet
Objet
Objet = données + méthodes (opérations sur ces
données)
= entité du domaine du problème
= variable d’un type construit par le programmeur
Un objet est composé de 2 parties :
- partie interface ou partie publique : opérations
qu'on peut faire dessus
- partie interne ou partie privée : données sensibles
de l'objet
Les utilisateurs de l'objet(autres objets) ne voient que la
partie interface.
Ces entités doivent être indépendantes
104
objet
exemple d'objets :
➢ la toyota_vitara_blanche immatriculée EN 123 DG du directeur
est un objet
toyota_vitara_directeur
genre : toyota
immatriculation : EN 123 DG
NbPlaces : 5
propriétaire: directeur
s_arreter()
avancer()
Clio_du_cd
genre : Renault
immatriculation : AD 345 SS
NbPlaces : 4
propriétaire: cd
s_arreter()
avancer()
105
Classe
Une classe est composée d'un nom,
d'attributs et d'opérations
106
Classe
Nom : commence par une majuscule
Attributs : décrit une donnée de la classe
◦ Les types des attributs ainsi que les modificateurs
d'accès peuvent être précisés dans le modèle
◦ Les attributs prennent des valeurs lorsque la classe
est instanciée
◦ On distingue les attributs de classe / attribut
d’instance
Opérations : est un service offert par la classe
leurs initialisations ainsi que les modificateurs d'accès peuvent
être précisés dans le modèle
On distingue les methodes de classe / methodes d’instance
107
Relations entre classes
109
Agrégation
110
Héritage
Héritage est une relation de spécialisation/généralisation.
Exemple :
➢ automobile et camion hérite (ou dérive) de Véhicule.
➢ héritage = dérivation La classe dont on dérive est dite
classe de base ou classe mère ou superclasse. Les classes
obtenues par dérivation sont dites classes dérivées ou
classes filles ou sous-classes.
111
Héritage
L'héritage est la possibilité de pouvoir reprendre
intégralement tout ce qui a déjà été fait et de pouvoir
l'enrichir : vision descendante.
L'héritage est la possibilité de regrouper en un seul
endroit ce qui est commun à plusieurs : les
modifications des éléments communs ne se font qu'à
un seul endroit : vision ascendante.
Il s'utilise dans "les deux sens":
➢ vers le haut : surtout lors de l'analyse O.O: on regroupe dans
une classe ce qui est commun à plusieurs classes.
exemple: dans la classe véhicule on regroupe les caractéristiques
communes aux camions et aux automobiles
➢ vers le bas : surtout lors de la réutilisabilité. La classe véhicule
étant définie, on peut la reprendre intégralement pour
construire la classe bicyclette
112
Encapsulation
L'encapsulation est un principe de conception
consistant à protéger le cœur d'un système des accès
intempestifs venant de l'extérieur
En UML l’utilisation de modificateurs d'accès sur les
attributs ou les classes :
◦ Public ou « + » : propriété ou classe visible partout
◦ Protected ou « # » : propriété ou classe visible dans la classe et
par tous ses descendants.
◦ Private ou « - » : propriété ou classe visible uniquement dans la
classe
◦ Package ou « ~ » : propriété ou classe visible uniquement dans
le paquetage
NB: Il n'y a pas de visibilité " par défaut "
113
Construction d'un diagramme de classes
1. Trouver les classes du domaine étudié : souvent,
concepts et substantifs du domaine.
2. Trouver les associations entre classes : Souvent,
verbes mettant en relation plusieurs classes.
3. Trouver les attributs des classes : Souvent,
substantifs correspondant à un niveau de
granularité plus fin que les classes. Les adjectifs et
les valeurs correspondent souvent à des valeurs
d'attributs.
4. Organiser et simplifier le modèle en utilisant
l'héritage ;
5. Tester les chemins d'accès aux classées ;
6. Itérer et raffiner le modèle. 114
Exemple de Diagramme de classe
115
Programme
La relation « Is-Part-Of » :
◦ distingue (ne pas partager) les responsabilités
des parties et de l’ensemble
ES
E
4.1
© Oscar Nierstrasz ESE — Responsibility-Driven Design 43
Listing des collaborations
Dessin
(AVERTISSEMENT : ne faisant
pas partie d’UML !)
Heritage Multiple
Décider si une classe
sera instanciée pour
déterminer si elle est
concrète ou abstraite.
153
cas d’utilisation («use cases»)
Permettent d’impliquer les utilisateurs dès les premiers
stades du développement pour exprimer leurs besoins.
Décrivent les fonctionnalités offertes par le système
(le « quoi? » avant le « comment? ») :
◦ délimitation du système par l’ensemble des
fonctions qu’il offre,
◦ relations avec son environnement (acteurs).
Modélisent à la fois les traitements (fonctionnalités) et
les communications (interactions) ≠ acteurs/flux de
Merise.
<<actor>>
acteur humain
acteur système 156
Diagrammes de cas d’utilisation
Décrivent les interactions entre les acteurs et le système
représenté comme un ensemble de cas.
Les interactions sont orientées (avec une flèche) ou non.
Groupement éventuel des cas en
Le système paquetage(s)
cas
d’utilisation interaction
acteur X
acteur humain
« stick man »
Frontière cas
du d’utilisation acteur <<actor>>
système Y
acteur
L’acteur est source et/ou système
destination d’une interaction
157
Relations entre cas
Inclusion : A <<include>> B : le cas A inclut obligatoirement le
cas B (permet de décomposer et de factoriser).
Client Commander
<<include>> <<include>>
<<extend>>
Choisir Payer
articles Demander
catalogue
158
Relations entre cas
Généralisation : le cas A est une généralisation du cas du cas B
159
Relations entre acteur
On peut également avoir de l’héritage entre acteurs et
entre cas (généralisation/spécialisation).
Créer un compte
161
GAB
Exemple
retirer argent avec carte VISA
<<Actor>>
<<secondary>> Système
Autorisation
Porteur retirer argent avec carte banque VISA
carte
VISA
<<extend>> <<include>> <<Actor>>
SI banque
consulter solde
Porteur
carte
banque déposer argent donner code
Gestion GAB
Recharger
Récupérer cartes
Opérateur avalées
Récupérer
chèques
162
Spécification des cas
Chaque cas d’utilisation doit être précisé par une
description textuelle qui peut être structurée en
plusieurs sections :
conditions au démarrage (pré-conditions),
conditions à la terminaison (post-conditions),
étapes du déroulement normal (« nominal »),
variantes possibles et les cas d’erreurs,
informations échangées entre acteur et système,
contraintes non fonctionnelles (performance, sécurité,
disponibilité, confidentialité…).
Exemple : cas RetirerArgentDistributeur
RetirerArgent
Client Distributeur
Client
163
Précondition contient des billets ; en attente d’une opération : ni en
panne, ni en maintenance.
Postcondition si de l’argent a pu être retiré, la somme sur le compte
est égale à la somme qu’il y avait avant moins le retrait. Sinon, la
somme sur le compte est inchangée.
Déroulement normal
(1) le client introduit sa carte bancaire, (2) le système lit la carte et
vérifie si la carte est valide, (3) le système demande au client de
taper son code, (4) le client tape son code confidentiel, (5) le
système vérifie que le code correspond à la carte, (6) le client
choisit une opération de retrait, (7) le système demande le
montant à retirer, etc.
Variantes
(A) Carte invalide : au cours de l’étape (2), si la carte est jugée
invalide, le système affiche un message d ’erreur, rejette la carte et
le cas d’utilisation se termine.
(B) …
Contraintes non fonctionnelles
(A) Performance : le système doit réagir dans un délai inférieur à 4
secondes, quelque soit l’action de l’utilisateur.
(B) Sécurité …
164
Les cas d’utilisations peuvent être vus comme des
classes de scénarios. Chaque scénario correspond à
une utilisation particulière, par un acteur donné, dans des
circonstances données. On peut décrire les principaux
(préparation des tests finaux de l’application).
SCENARIO 1
Pierre insère sa carte dans le distributeur x233.
Le système accepte la carte et lit le numéro de compte.
Le système demande le code confidentiel.
Pierre tape ‘xwrzhj’.
Le système détermine que ce n’est pas le bon code.
Le système affiche un message et propose à l’utilisateur de
recommencer.
Pierre tape ‘xwrzhi’.
Le système affiche que le code est correct.
Le système demande le montant du retrait.
Pierre tape 300 €.
Le système vérifie s’il y a assez d’argent sur le compte.
…
165
Mode d’emploi
Elaborer avec les utilisateurs une description de très
haut niveau du système.
Exemple : site de commerce électronique (très simplifié)
◦ Le client parcours le catalogue.
◦ Il ajoute les objets qui l'intéressent dans son panier.
◦ Pour payer, il donne ses informations de carte bancaire et son adresse
◦ Il confirme l'achat.
◦ Le système contrôle la validité du paiement et confirme la commande.
En déduire une liste d’acteurs et de cas.
Construire un premier diagramme. Le structurer pour le
rendre plus clair (relations <<include>>, <<extend>>,
généralisation/spécialisation).
Détailler chaque cas (description textuelle structurée).
Eventuellement définir les scénarios les plus
importants qui pourront servir au moment des tests
finaux.
166
Diagrammes de Séquences (DS)
167
Objectif des diagrammes de séquence
168
Diagrammes de séquence
Les diagrammes de séquences permettent de
représenter des collaborations entre objets selon
un point de vue temporel, on y met l'accent sur la
chronologie des envois de messages.
Peuvent être utilisés à différents niveaux de détail et
pour servir différents buts à plusieurs étapes du
cycle de vie du développement.
Typiquement utilisés pour représenter l'interaction
détaillées en objets qui prend place dans un cas
d‘utilisation ou pour une opération.
169
Scénario
Un scénario est une suite spécifique d'événements survenant
dans le système.
Un scénario est une séquence spécifique d'actions et
d'interactions entre les acteurs et le système.
◦ C'est une histoire spécifique de l'utilisation d'un système.
Par exemple, le scénario d'un achat réussi d'articles en
liquide,
ou
le scénario d'un échec d'achat d'articles à cause d'un refus
de paiement à crédit.
170
Description d’un scénario
Scénario principal : description du chemin «normal»
d’exécution du cas d’utilisation;
Exemple : Retrait-distributeur pour un client
existant et fiable,
Scénarios secondaires : description de cas alternatifs
(plusieurs choix), de cas exceptionnels ou de cas d’erreur.
Exemple : Retrait-distributeur pour un client
donnant un code erroné
171
Diagrammes de séquence
La dimension verticale montre le temps.
Les objets impliqués dans l'interaction
apparaissent horizontalement sur la page
et sont représentés par les lignes de vie
(«lifelines»).
Une ligne de vie représente un participant
à une interaction.
Messages : échangés entre les lignes de vie,
présentés dans un ordre chronologique.
172
Diagrammes de séquence
173
Création et destruction de lignes de vie
174
Diagrammes de Séquences (DS)
Définissent les interactions entre Objets
selon un point de vue temporel,
Interaction = événement / envoi de message
o1 : C1 o2 : C2 o3 : C3
Les Objets
Un message
Ligne de Vie
175
Diagrammes de Séquences
DS de haut niveau de Retrait-distributeur :
u : Utilisateur d : Distributeur
acteur
insérer carte
externe
demander code
Accès au compte
et contrôle du code
demander montant
entrer montant 50
176
Diagrammes de Séquences (DS)
177
MERCI
178