CONCEPTION ET ANALYSE
ORIENTE OBJET
MÉTHODE UML
1
Introduction
 Le langage UML
• Historique & Evaluation
• Les Vues
• Les Axes de modélisation
• Les Diagrammes
2
Le langage UML: Historique & Evaluation
Genèse :
• Unification des concepts et des modèles de 3 méthodesconnues (Booch, OMT,OOSE)
Standardisation:
• UML est un standard des notations graphiques et du vocabulaire utilisé pour l’analyse et le conception oriente
objet des SI (et même des systèmes en général).
• UML n’est pas une méthode de conception mais un ensemble de notations unifiées. Unified Modeling
Language ( langage de modélisation unifié).
• UML est à présent est un standard adopté par l’OMG(Object Management Group).
 UML :
• évolue mais reste stable
• Couvre le cycle de développement
logiciel de la spécification des besoins
à l’implantation
• Est un support de communication
(conséquence de la standardisation)
3
Le langage UML: Les Vues
Vue
Cas d’Utilisation
UML voit le système étudié selon différentes perspectives.
Aspect dynamique:
Aspect fonctionnel :
Acteurs , Cas d’utilisations,
collaboration
Aspect répartition:
Nœuds Modules
Aspect statique :
Classes, objets, paquetages
interactions, activités,
séquences, états-transitions
Aspect statique:
Paquetages, méthodes, Nœuds
Vue
Logique
Vue
Implantation
Vue
Processus
Vue
Déploiement
4
Le langage UML: Les Axes de modélisation
UML permet de modéliser un système selon trois axes.
UML utilise des diagrammes pour modéliser le système ou une partie du système selon une vue qui
correspond à l’un des axes de modélisation.
Un diagramme UML est une représentation graphique d’une séquence d’opérations ou de la structure d’un
système.
Chaque diagramme est construit par un ensemble d’éléments du langage UML. Ces éléments graphiques ont
une sémantique unique qui simplifie la compréhension du modèle du système.
Statique
CequelesystèmeEst
Décrit
les
services
rendus
Dynamique
CommentlesystèmeEvolue
Fonctionnel
Ceque le système Fait
Décrit les réactions du
système dans le temps
9 diagrammes UML1.4
+
4 diagrammes UML2.x
Cas d’utilisations
• Classes
• Objets
• Composants
• Déploiement
• Séquences
• Collaborations
• Etats-transitions
• Activités
5
Le langage UML: Les Diagrammes
UML un langage
 UML n ’est pas une méthode
 UML est un langage de modélisation objet
 UML a été adopté par toutes les méthodes objet
 UML est dans le domaine public, c’est une norme
6
Le langage UML: Les Diagrammes
UML comporte treize types de diagrammes, représentant autant de vues distinctes pour illustrer des concepts
particuliers du logiciel. Ces diagrammes sont répartis en trois niveaux :
7
Niveau Fonctionnel Niveau Structurel Niveau comportemental
• Diagramme Use Case
(Cas d’utilisation)
• Diagramme de classes
• Diagramme d’objets
• Diagramme de composants
• Diagramme de déploiement
• Diagramme de paquetages
• Diagramme de structures composites
• Diagramme d’activités
• Diagramme d’états-transitions
• Diagramme d’interaction
• Diagramme de séquence
• Diagramme de communication
• Diagramme global d’interaction
• Diagramme de temps
A : Définition des besoins : Diagramme de cas d’utilisation (uses cases)
Phase d’analyse
 Présentation cas d’utilisation
 Définition cas d’utilisation
 Notation graphique de cas d’utilisation
 Les composants d’un diagramme de cas d’utilisation
• Le système
• Les acteurs
• Les acteurs principaux et secondaires
• Les acteurs Hiérarchie
• Les relation entre cas utilisations
• Les relation entre cas utilisations : Inclusion
• Les relation entre cas utilisations : Extension
• Les relation entre cas utilisations : Héritage
 Paquetage des Cas d’utilisation
 Diagramme de contexte
8
Présentation cas d’utilisation
Le diagramme de cas d'utilisation (DCU) Permet la spécification des besoins. Il montre les interactions
fonctionnelles entre les acteurs et le système d’information.
Le diagramme de cas d'utilisation permet de représenter la vision détaillée de l'application du point de vue de
l'utilisateur.
Il répond à la question : À qui et pour quoi faire ?
En UML, un Cas d’Utilisation modélise un service (ou une fonctionnalité) rendu par lesystème.
9
Définition cas d’utilisation
Définition:
Un Cas d’Utilisation (use case) représente une unité cohérente d’une fonctionnalité fournie par un système
(ou sous-système) spécifiée
par une séquence d’actions que le système peut exécuter en interagissant avec les acteurs du système.
La séquence d’actions définit un service de bout en bout, avec un déclenchement, un déroulement et une fin,
pour l'acteur qui l'initie.
L’acteurdécrit le rôle qu’un utilisateur joue par rapport au système.
Acteur != Utilisateur
Notation graphique de cas d’utilisation
Graphiquement, un CU ( use est représenté sous forme d’uneellipse ).
Lafonction réalisée par le CUest représentée sous forme d’un verbe à l’infinitif.
Lesfonctionnalités du système exprimées textuellement seront modélisés à l’aide des cas d’utilisations.
Exemple:
Ajouter un produit au panier dans un sitede e-Commerce
Remplir l’essence dans une station de service
Créer une nouvelle réservation dans un cabinetmédical
Remplir
l’Essence
Créer
Réservation
Ajouter Produit
à Son Panier
10
Les composants d’un diagramme de CU : Le Système
Qu’est-ce que Le système:
Lesystème est représenté sous forme d’un rectangle qui contient un libellé qui correspond au nom dusystème à modéliser.
Le systèmesert à délimiterle systèmepar rapport à son environnement et aux autres systèmes.
Lesystème est un ensemble de CU.De cette manière, UML modélise le système et les services rendus par lesystème.
Site Web e-commerce
Ajouter Produit à
Son Panier
Lister les Produits
Payer la
transaction
11
Les composants d’un diagramme de CU : Les acteurs
Un acteur est un ensemble cohérent de rôles joués par des entités externes
(utilisateur, dispositif matériel ou autre système) qui interagissent avec le système.
Lesacteurs sont représentés par un stick man ou une classe « actor»
il ne faut pas confondre la notion d’acteur avec la notion d’utilisateur.
L’acteur décrit le rôle qu’un utilisateur joue par rapport ausystème
Un utilisateur c’est une personne utilisant le système
Larelation d’association entre acteur et CUreprésente la possibilité pour l’acteur
de déclencher le cas.
Site Web e-commerce
Ajouter Produit
à Son Panier
L’acteur principal obtient un résultat observable du système. Il déclenche le CU par son initiation de la
communication. Il utilise le système comme outil pour réaliser son but
L’acteur secondaire ou auxiliaire est sollicité pour des informations complémentaires. Il intervient suite à
l'intervention de l'acteur primaire. Il offre généralement sesservices au système.
Site Web e-commerce
Ajouter Produit à
Son Panier
Lister les Produits
Payer laTransaction
«Primary »
«Secondary»
Stéréotype
Acteur secondaire (à droite)
Acteur principal (à gauche)
12
Les composants d’un diagramme de CU :
Site Web e-commerce
Ajouter Produit
à Son Panier
Lister les
produits
Acteur père
LesacteursHiérarchie:
Laseule relation qui peut exister entre les acteurs
est la relation de généralisation.
L’acteur qui hérite peut faire tout ce que l’acteur père
peut faire.
Les acteurs
Lesrelationentrecasutilisations:
Le visiteur qui veut gérer son panier (entre autres l’ajout du produit) doit d’abord devenir un client, en
remplissant un formulaire d’inscription.
Après l’inscription, le visiteur devient un client doté de paramètres d’identifications (login et mot de passe).
S’inscrire
S’identifier
Ajouter Produit
à Son Panier
Site Web e-commerce
Modèle qui ne reflète
pas laréalité ! Réalité : L’identification du client est un CUqui
fait partie du CUajout du produit
Modèle : le client peut ajouter le produit sans
passer par l’identification
Acteur fils
Il peut faire tout
ce que fait le
visiteur
+ sespropres CU
13
Les composants d’un diagramme de CU : Les relation entre cas utilisations
 Permet d’inclure un CU dans un autre : Inclusion
 Permet à un CU d’incorporer à un endroit précis, un autre CU optionnel:
Extension
 Généralisation: Permet de formaliser les variations sur le même CU
Casde base Cas inclus
« include»
Cas fils Cas père
UML propose trois types de relations entre les cas d’utilisation
Casoptionnel Cas de base
« extends »
 Les relation entre cas utilisations : Inclusion
 Pour vérifier qu’un cas est inclus dans un autre ou pas, il faut vérifier que les actions et les interactions
réalisés entre l’acteur et le système dans le cas inclus sont dupliqué entièrement dans le cas de base
 L’inclusion permet d’enlever la redondance (factorisation) dans la description textuelle et de mieux se
concentrer sur les autres fonctionnalités.
S’identifier
Ajouter Produit à
Son Panier
Site Web e-commerce Séquence d’actions de « S’identifier »
1.Le client fait entrer login et mot de passe
2.Le système vérifie login et mot de passe
Séquence d’actions de «Ajouter Produit »
1. Le client fait entrer login et mot de passe
2. Le système vérifie login et mot de passe
3. Le client remplie le panier
4. Le système confirme les choix du client
14
Les composants d’un diagramme de CU : Les relation entre cas utilisations
Enlistant les produits, le client peut décider d’ajouter un produit à son panier.
Après avoir ajouté un ou plusieurs produits à son panier, le client peut décider de payer sesachats
en ligne en réalisant la transaction nécessaire.
L’extension permet de séparer le comportement optionnel ou rare du comportement obligatoire.
Avec l’extension, les CU s’exécutent indépendamment les uns des autres
• Les relation entre cas utilisations : Extension
Site Web e-commerce
«extends»
Lister les produits
Ajouter Produit
«extends»
Ajout Produit
Point d’extension
Produit disponible et
Quantité suffisante
Payer Transaction
Point d’extension:
Carte Crédit Valide
Lister les Produits
Payer la
Transaction
Ajouter Produit
à Son Panier
15
Les composants d’un diagramme de CU : Les relation entre cas utilisations
• Les relation entre cas utilisations : Généralisation/Héritage
Lepayement de la transaction peut se faire par carte de crédit, par virement bancaire ou par
mandat postal. Leclient choisit une des trois manières de payer la transaction. Mais à la fin, le
payement de la transaction est réalisé.
Lagénéralisation permet d’exprimer un comportement commun entre plusieurs cas d’utilisation.
Lecas père ne s’instancie que par le biais de l’un de sesdescendants
Payer la
Transaction
Site Web e-commerce
Payer par
carte crédit
Payer par
virement
bancaire
Payer par
mondât postal
Cas fils
Concret
Caspère
Abstrait
16
Paquetage de Cas d’utilisation
Le diagramme de CU d’un système peut
très vite devenir encombrant et difficile à
décortiquer.
Regrouper les CU par acteur ou par
domaine fonctionnel ou autre permet
d’avoir des ensembles cohérents de CU.
Le mécanisme général de regroupement
des éléments UML c’est les packages.
Un package possède un nom et contient
d’autres diagrammes dont d’autres
packages.
Le diagramme de paquetage (package)
permet de :
 Organiser les concepts en
groupes homogènes
 Introduire des niveaux
d’abstraction
 Découper un problème en sous-
problèmes (sous-systèmes)
 Réutiliser les unités logiques et
cohérentes
Diagramme de CUen package:Exemple
Administration
Répondre aux
messages
Gérer son
Compte
Gérer les
Produits Clientèle
S’inscrire
Gérer ses
commandes
Payer sa
transaction
Gérer son
panier
Authentification
S’authentifier
Admin
Client
Système
bancaire
client
17
Présentation d’un diagramme de contexte Statique
 Le Diagramme de contexte statique est un diagramme qui permet de décrire les acteurs du système.
 Ce diagramme permet de spécifier le nombre d’instances d’acteurs reliées au système à un moment
donné.
 Diagramme qui présente que les acteurs et leur intervention avec le système.
Système d’étude
Désigne un acteur
secondaire
Acteur1 Acteur3
1..*
1..*
1..*
1
1
1
Acteur2
Désigne le
nombre des
instances
18
Présentation d’un diagramme de contexte Dynamique
 Le Diagramme de contexte statique est un diagramme qui permet de décrire les interactions entre
les acteurs et le système
Système d’étude
Acteur2
Acteur1
Acteur3
- Interaction 1
- Interaction 2
- ….
- Interaction 1
- Interaction 2
- ….
- Interaction 1
- Interaction 2
- ….
- Interaction 1
- Interaction 2
- ….
- Interaction 1
- Interaction 2
- ….
19
B: Définition des besoins : Diagramme de séquences (Boîte noire)
Phase d’analyse
 Le Scénario
 boite noire vs boite blanche
 Diagramme de séquence système : Boîte noire
 Les composants d’un diagramme de séquence : Boîte noire
• Les objets
• La Ligne de vie
• Les Messages
• Les Fragments
• Note & Package
20
Le Scénario : Description Textuelle
Erreur
Scénario
Alternatif
ScénarioNominal Scénario d’Erreur
Fin nominale
Un scénario est une suite spécifique d’interactions entre les acteurs et le système: c’est une instance du CU,
un chemin particulier parmi cesinteractions.
Scénario principal : nominal
Scénario secondaire: c’est soit un cas alternatif , soit un casd’erreur.
Chaque scénario est composé d’étapes qui peuvent être de trois sortes :
Un message d’un acteur au système
Une validation ou un changement d’état du système
Un message du système vers unacteur
UML permet de modéliser les interactions par des diagrammes dynamiques.
On peut réaliser « un diagramme de séquence » pour décrire le déroulement de la séquence d’actions d’un
scénario donné d’unCU.
Le diagramme de séquence en UML peut être utilisé dans plusieurs contextes. Il permet de décrire la
séquence des messages échangés entre différents objets et à différents niveaux de détails.
On peut aussi réaliser « un diagramme d’activité » pour décrire tous les scénarios d’un CU.
Le diagramme d’activité représente les activités réalisées par le système avec tous les branchements et
toutes les bouclespossibles
21
boite noire vs boite blanche
Lediagramme de séquence modélise l’aspect dynamique du système.
Il s’agit d’une séquence d’interaction d’un point de vue temporel entre le système et lesacteurs.
Nous avons déjà vu le diagramme de séquence système. Son rôle était de décrire graphiquement un scénario
d’un casd’utilisation.
Diagramme de
séquence système
Diagramme
de séquence
Le système est une boite noire
 On ne s’intéresse pas aux
composants du système
 Le système est modélisé comme
étant une seule entité
Le système est une boite blanche
 On s’intéresse à chaque composant
du système intervenant dans la
réalisation du CU
 Le système est modélisé comme étant
un ensemble d’entités
Analyse Conception
Cas d’Utilisation :
est décrit (documenté) par
Système:
Message
Réponse au message
:Acteur
Boite noire
Diagramme de
séquence (Niveau
Analyse)
Objet1:
:Acteur
Objet2: Objet3:
Message
Réponse
Objets du système (Boiteblanche)
Diagramme de
séquence
(Niveau Conception)
22
Diagramme de séquence système : Boîte noire
 Lediagramme de séquence peut être utilisé au niveau « Analyse »: il considère que le système est une
boite noire. A ce niveau on s’intéresse aux messages échangés avec le système (vu comme une seule entité
monolithique).
diagramme de séquence
Le système est composé d’un ensemble
d’objets qui communiquent entre eux et
avec les acteurs.
Niveau Conception
Élément 1 Élément 2 Élément3
Message1
Message 3
Message 2
Système
Message 1
Message 2
diagramme de séquence système
On ne s’intéresse pas aux éléments
qui constituent le système : système
= boite noire Niveau Analyse
23
Les composants d’un diagramme de séquence Boîte noire : Les objets
 Lescomposantsd’un diagrammedeséquence:
Le diagramme de séquence permet de faire apparaitre:
 Les intervenants dans l’interaction (objets du système ou acteurs)
 Ladescription de l’interaction(messages)
 Les interactions entre les intervenants
 Objets:
Les objets sont identifiés par l’intermédiaire des
cas d’utilisation ou par le diagramme de classe.
 Le Nom de l’objet ou du Rôle est souligné pour
indiquer qu’il s’agit d’une instance
Les objets sont représentés comme suit :
Ilsreprésentent:
 Soit des acteurs.
 Soit des concepts abstraits.
 Soit des objets d’implantation pour les interactions informatique.
 L’utilisation des stéréotypes est un mécanisme d’extensibilité d’UML. Ils permettent de créer de nouveaux
éléments dérivés de ceux existants mais qui sont adaptés à des usages spécialisés dans des domaines
particuliers.
Message
Réponse
:Acteur
Objet : une entité
se trouvant aux
limitesdu système
Système:
Ligne de vie :
période de temps
pendant laquelle
l’objet existe
Interaction :
message envoyé entre
deux objets
Objet : une entité
appartenant au
système
NomObjet:NomClasse Rôle:Classe
: Système
24
NomObjet
:NomClasse
Les composants d’un diagramme de séquence Boîte noire : La Ligne de vie
Laligne de vie est représentée par une ligne verticale pointillée en dessous de l’objet.
Ladimension verticale représente l’écoulement dutemps.
Lapériode d’activité d’un objet est représentée par une bande rectangulaire superposée à la ligne de vie de l’objet.
Un objet peut être actif plusieurs fois au cours de son existence.
Lors de la création d’un nouvel objet, un message <<créer>> pointe sur le symbole de l’objet.
Lors de la destruction d’un objet, sa ligne de vie doit se terminer par une croix(X).
Écoulement
du
temps
Ligne de vie
Période d’activation de
l’objet
OBJ1:
OBJ2:
<<create>>
Objet créé
dynamiquement
<<destroy>>
Mort de l’objet
Nom:Classe
OBJ2:
OBJ1:
25
Les composants d’un diagramme de séquence Boîte noire : Les Messages
 Les messages sont représentés sous forme de flèches.
 Ils sont étiquetés par le nom de l’opération ou dusignal invoqué.
 L’ordre d’envoi d’un message est déterminé par sa position sur la ligne de vie; le temps s’écoule « de haut
en bas ».
« Destroy » et « Create » sont deux stéréotypes demessages.
OBJ1:
Message de
Objet destinataire du message 1
et expéditeur du message 2
Objet expéditeur
du message 1
destruction
OBJ2: OBJ3:
2. Un autremessage
1. Un message
4. Un derniermessage
5. <<destroy>>
OBJ4:
3. <<create>>
Message de
Création
26
Les composants d’un diagramme de séquence Boîte noire : Les Types Messages
• Il existe différents types de messages:
 Message synchrone:
• Représenté par une flèche pleine ou complète et signifie que l’objet expéditeur envoie le message et reste
bloqué tant que le destinataire n’a pas fin de traiter lemessage reçu.
 Message asynchrone:
• Représenté par une flèche vide ou incomplète et signifie que l’objet expéditeur envoie le message et ne
reste pas bloqué pendant le traitement du message par le destinataire.
 Message réflexif:
• L’objet s’envoie un message à lui-même. L’expéditeur est lui-même le destinataire.
 Message de retour:
• Représenté en pointillés. Le récepteur d’un message synchrone rend la main à l’émetteur du message en lui
envoyant un message de retour.
 Message Perdu:
• Le message perdu est un message dont on connaît l'émetteur, mais pas le récepteur. Il est représenté par
une flèche partant de la ligne de vie d'un élément vers un disque noir.
 Message trouve:
• Le message trouvé est un message dont on connaît le destinataire, mais pas l'émetteur. Il est représenté
par une flèche partant d'un disque noir vers la ligne de vie d'un élément.
27
 Fragments composés:
Les fragments composés représentent les expressions spécifiques dans la séquence.
 Les fragments composés doivent couvrir au moins une ligne de vie à tout moment, afin d'avoir une
signification.
Il est représenté par un rectangle dont le coin supérieur gauche contient un pentagone.
Dans le pentagone figure le type du fragment : appelé opérateurd’interaction.
Lasignification du fragment composé dépend fortement de l'opérateur d'interaction utilisé
Fragmentcomposé
Opérandes
Opérateur
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
OBJ:
28
 Le fragment « alt »
L’opérateur alt désigne un choix ou une
alternative: équivalent à SI … ALORS … SINON
…
L’utilisation de l’opérateur else permet d’indiquer
que la branche est exécutée si la condition du alt
est fausse.
Une seule des deux branches sera réalisée dans
un scénario donné
condition
Condition
inversée
(solde >=0)
Accepter ()
Refuser ()
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
OBJ1:
alt
[else]
[solde <0]
OBJ2:
 Le fragment «opt »
L’opérateur opt désigne un choix de comportement
où:
 Soit l’opérande seule s’exécute
 Soit rien ne s’exécute
Il est équivalent à SI … ALORS … il est équivalent
à un « alt » sans [else]
condition
OBJ1:
opt
[Erreur]
OBJ2:
Afficher commentaire()
29
 Le fragment « Par »
L’opérateur par est utilisé pour représenter des
interactions qui se réalisent en parallèle.
Un fragments combiné de type parallèle, ou par,
possède au moins deux sous-fragments exécutés
simultanément. La concurrence est logique et n’est pas
nécessairement physique : les exécutions concurrentes
peuvent s’entrelacer sur un même chemin d’exécution
dans la pratique.
Montant de la
commande
calculé et mise à
jour
Calcul montant()
Update (qté)
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
OBJ1:
par
OBJ2:
 Le fragment «ref»
L’opérateur ref est utilisé pour indiquer une référence vers
un autre diagramme de séquence existant. Il peut être
considéré comme un pointeur ou un raccourci vers un autre
diagramme de séquence.
Son rôle est de factoriser des parties de comportement
utilisés dans plusieurs scénarios.
Qté commandée
mise à jour
OBJ1: OBJ2:
ref
S’authentifier
Lire (fichier)
30
 Le fragment « loop »
L’opérateur loop est utilisé pour décrire un ensemble d’interaction qui s’exécute enboucle.
La condition spécifiée entre crochets indique la condition pour rester dans la boucle. Si la condition
n’est plus satisfaite, alors la boucle estquittée.
On peut spécifier le nombre de répétition exacte ou l’intervalle de répétition de l’exécution de la boucle
entre parenthèses.
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
Condition
OBJ1:
Loop (2,5)
OBJ2:
Lire(fichier)
Laboucle s’exécute min 2
d’exécution
fois et max 5fois
OBJ1:
loop(10)
OBJ2:
Lire(fichier)
[taille<60]
OBJ1:
loop
OBJ2:
Lire(fichier)
31
 Le fragment « break »
 L' interruption de l' opérateur d'interaction représente un scénario de rupture ou exceptionnel qui
est effectué à la place du reste du fragment d'interaction englobant.
 Un opérateur de coupure avec garde est choisi lorsque la garde est vraie. Dans ce cas, le reste du
fragment d'interaction englobant directement est ignoré. Lorsque la garde de l'opérande break est
fausse, l'opérande break est ignoré et le reste du fragment d'interaction englobant se poursuit.
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
OBJ1:
break
OBJ2:
Lire(fichier)
condition
32
 Le fragment «strict»
 L' interruption de l' opérateur d'interaction représente
un scénario de rupture ou exceptionnel qui est effectué à la
place du reste du fragment d'interaction englobant.
 Un opérateur de coupure avec garde est choisi lorsque la
garde est vraie. Dans ce cas, le reste du fragment d'interaction
englobant directement est ignoré. Lorsque la garde de
l'opérande break est fausse, l'opérande break est ignoré et le
reste du fragment d'interaction englobant se poursuit.
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
OBJ1:
strict
OBJ2:
Lire(fichier)
 Le fragment «critique»
 L'opérateur d'interaction critique définit que le fragment
combiné représente une région critique . Une région critique
est une région avec des traces qui ne peuvent pas être
entrelacées par d'autres spécifications d'occurrence (sur les
lignes de vie couvertes par la région). Cela signifie que la
région est traitée atomiquement par le fragment englobant
et ne peut pas être entrelacée, par exemple par un opérateur
parallèle.
OBJ1:
critical
OBJ2:
Lire(fichier)
33
 Le fragment «Ignore»
 L'opérateur « Ignore » ( indique qu'il existe des messages
qui peuvent ne pas être présents dans le fragment
combiné Ce sont des messages facultatifs.
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
 Le fragment «Assert»
■ L'opérateur « Assertion », noté « assert », indique que :
– La séquence décrite dans l'opérande représente l'unique
séquence possible.
– Toutes les autres séquences sont considérées comme
invalides.
34
.
Les composants d’un diagramme de séquence Boîte noire : Les Fragments
Fragments emboités
Site E-book:
loop
Chercherdanscatalogue
:client
Résultat de larecherche
opt
opt
Consulter description du livre
Ajouter aupanier
S’authentifier
ref
Tant que le client est
sur la page de
consultation du
catalogue
S’il choisit d’ajouter le livre au
panier, alors il doit commencer
par s’authentifier pour se
connecter à son compte
Il peut choisir de
consulter la
description d’un
livre
35
.
Les composants d’un diagramme de séquence Boîte noire : Note et package
Site E-book:
loop
Chercherdanscatalogue
:client
Résultat de larecherche
opt
opt
Consulter description du livre
Ajouter aupanier
S’authentifier
ref
Fragment
de référence
Note
36
C : Définition des besoins : Diagramme de classe d’analyse
Phase d’analyse
 Présentation des classes et des Objets.
 Les élément de diagramme de classe.
• Classe : Attributs et opérations
• Encapsulation
• Associations : Association et Rôle
• Multiplicité
• Association Multiple
• Association Réflexive
• Classe d'Association
• Association n-aire
• Relation d'Agrégation
• Relation de Composition
• Agrégation vs Composition
• Relation d'Héritage : Généralisation/spécialisation simple & multiple
• Polymorphisme
• Héritage et Classes Abstraites
• Interface
• Contraint
• Note
• package
37
Présentation des classes et des Objets
La vue logique a pour but d’identifier les éléments du domaine, les relations et interactions entre ces éléments.
Elle les identifie selon deux aspects: dynamique et statique.
Axe de modélisation statique: pas de facteur temporel
Le système est composé d’objets qui interagissent entre eux et avec les acteurs pour réaliser les cas
d’utilisation.
Le diagramme de Classe permet de fournir une représentationabstraitede cesobjets.
Le diagramme de Classe montre lastructureinternedu système.
En phase d’analyse, il a pour objectif de décrire la structure des entités manipulées par les utilisateurs
En phase de conception, il représente la structure d’un code orienté objet, ou a un niveau de détail plus important,
les modules du langage de développement.
Objets nécessaires
à la réalisation de
ce cas d’utilisation
38
Présentation des classes et des Objets
Les Composants d’une classe:
La Classe est un concept Abstrait qui permet de représenter toutes les entités d’un système.
Elle est définie par son nom, ses attributs et ses opérations comme suit :
Un attribut est une propriété de classe intéressante pour l’analyste. Les attributs correspondent à des
variables associées aux objets de la classe.
Une opération est un service rendu par la classe. Les opérations correspondant à des fonctions
associées aux objets de la classe.
+ Créer()
+ Calcul_Montant():float
Commande
-Numero : int
-DateCom : Date {<=DateAujourd’hui}
-Montant : float =0
Analyse Conception
Créer()
Calcul_Montant()
Commande
Numero
DateCom
Montant
39
Présentation des classes et des Objets
 Classe et Objet :
Une classe représente la description abstraite d’un ensemble d’objets possédant les mêmes
caractéristiques. On parle également de type.
Un objet est une entité possédant une identité et encapsulant un état et un
comportement. Un objet est une instance d’une classe.
La classe est le modèle, l’objet est sa réalisation.
 Représentation UML :
 Exemple:
ou
NomClasse
[Attributs]
[Opérations]
Nom Objet : Classe :Classe
Représentation d’une classe Représentation d’un objet
Objet Facture Instance
qui a un Numéro =1
ClasseFacture Entité
Abstraite avec l’attribut
Numéro 40
Classvide
Les élément de diagramme de classe : Attributs et opérations:
 Syntaxe : de déclaration des attributs d’une Classe:
Visibilité [/] nomAttribut : Type [ [la multiplicite] ] [ {contrainte} ][ = ValeurParDefaut ]
41
 la multiplicité , contraint et valeur par defaut
La multiplicité
Contraint
Valeur par défaut
Attribut
Calcule
Les élément de diagramme de classe : Attributs et opérations:
 Syntaxe : de déclaration des opérations d’une Classe:
Visibilité nomOperation ( [param1, ... , paramN] ) : [typeRetour] [{propriétés}]
Syntaxe : de déclaration des parametres d’unr opération:
[<direction>] <nom_paramètre> : <type> ['['<multiplicité>']'] [= <valeur_par_défaut>]
(<direction> : Optionnel, indique la direction du paramètre (par exemple, in, out, ou inout). )
42
{propriétés}: Explication
{readOnly} La valeur de l’attribut ne peut plus être modifiée une fois initialisée.
{ordered} Pour les attributs de type collection. C’est pour préciser si les valeurs sont ordonnées.
{list} Semblable à {ordered}, mais précise si les valeurs ne sont pas ordonnées (par défaut).
{unique} Aucun doublon dans les valeurs de la collection.
{not null} L’attribut doit à tout prix être initialisé.
{query} Appliqué sur une méthode si son code ne modifie nullement l’état de l’objet (aucun de
ses attributs).
Les élément de diagramme de classe : Visibilité:
 Visibilité : les modificateurs d’accès permettent de définir la visibilité :
- : privée : visible seulement par laclasse elle-même
+ : public : visible par toutes les autresclasses
# : protégé: visible seulement par la classe elle-même et ses classes filles
~ : package: seul un élément déclaré dans le même paquetage peut voir l’élément
43
44
Les élément de diagramme de classe : Encapsulation:
• Rendre les attributs d’une classe privés.
• Pour accéder aux attributs privées en utilise les modificateur et les accesseurs.
• Les modificateur se sont des méthode public qui permet de modifier la valeur de l’attribut d’une manier
indirect.
• Les accesseurs se sont des méthode public qui permet de retourner la valeur d’un attribut prive d’une façon
indirect
Les élément de diagramme de classe : Attributs et méthodes statique (de classe):
45
• Une classe peut contenir des attributs et des méthodes qui lui sont propres, auxquels on peut accéder sans
nécessairement instancier des objets.
• Un attribut de classe n’appartient pas à un objet en particulier, mais à toute la classe (il n’est pas instancié avec
l’objet).
• Il garde une valeur unique et partagée par toutes les instances de la classe.
• Une méthode de classe ne peut manipuler que des attributs statiques et ses propres paramètres.
• Graphiquement, un attribut ou une méthode de classe est représenté par un nom souligné.
Les élément de diagramme de classe : Constructeurs et destructeurs):
46
Les stéréotypes peuvent être utilisés pour identifier des opérations particulières, telles que :
• Les constructeurs : stéréotype « create ».
• Le destructeur : stéréotype « destroy ».
Dans UML, les constructeurs et les destructeurs sont des méthodes spéciales qui portent le même nom que la
classe (formalisme Java).
Les élément de diagramme de classe : Relation de dépendance
47
Une dépendance entre deux classes autorise simplement une classe à utiliser des
objets d'une autre classe.
• Une classe utilise un objet d'une autre classe comme argument dans la
signature d'une méthode.
• Un objet de l'autre classe est créé à l'intérieur de la méthode.
• Dans les deux cas, la durée de vie de l'objet est très courte, elle correspond
à la durée d'exécution de la méthode.
Exemple :
Les élément de diagramme de classe : Association et Rôle
Une association est une relation statique entre plusieurs classes.
 Elle représente une relation possible entre les objets des classes.
On peut donner à une classe un rôle dans une association.
Un rôle précise la signification de l’entité à proximité du rôle dans l’association
employé employeur
Nom de l ’association
Commence par Majuscule
Personne
Nom : String
Prénom : String
Salaire() : float
Entreprise
Raison sociale : String
Chiffre_d_affaire() : float
Travailler pour
Rôle de Entreprise dans
l’association
Rôle de Personne dans
l’association
48
Sens de lecture
Les élément de diagramme de classe : Multiplicité
La multiplicité spécifie l’ensemble des cardinalités possibles (parmi les entiers naturels) sur un rôle.
Les multiplicités permettent de contraindre le nombre d’objets intervenant dans les instanciations des
associations. On en place de chaque côté des associations.
Une multiplicité d’un côté spécifie combien d’objets de la classe du côté considéré sont associés
à un objet donné de la classe de l’autre côté.
Personne
*
Nom : String
Prénom : String
Salaire() : float
Entreprise
Raison sociale : String
Chiffre_d_affaire() : float
1
Travailler pour
Une Entreprise fait
travailler 0 ou plusieurs
personnes
Une personne travaille pour
une seule Entreprise
49
Les élément de diagramme de classe: Multiplicité
On peut préciser :
 Un intervalle (min . . max) : 2 . . 5  de 2 à5
0 . . 1  0 ou 1
 Une liste de valeurs (val1, val2, …) : 2,5,7  2 ou 5 ou 7
 Ne pas borner supérieurement (*) : 1. . *  au moins 1
0 ..* ou *  0 ou plusieurs
 1 .. 5 : s’interprète : « à un objet donné de la classe Article, on doit associer au minimum 1 objet de la classe
Catégorie et on peut en associer au maximum 5 »,
 * : s’interprète : « à un objet donné de la classe Catégorie, on peut associer 0 ou plusieurs objets de la
classeArticle »
Article Catégorie
appartient
* 1..5
50
Lorsqu’on a une classe dont les instances peuvent être redondants (c-à-d la même instance qui participe
plusieurs fois à une association), alors créer différentes associations entre les classes, chacune affectée d’un
rôle différent avec une multiplicité égale à 1 exactement.
Lerôle ici est très utile puisque la même association concerne les mêmesclasses
 Exemple:
Le même aéroport peut jouer le
rôle d’un aéroport de départ
pour un vol et un aéroport
d’arrivée pour un autre.
Rôle joué par la
classe Aéroport dans
l’association
Multiplicité de la
classeAéroport = 1
1
Départ
1
Arrivée
0..*
Les élément de diagramme de classe : Association Multiple
VOL Aéroport
Nom
Dessert
dateDepart
dateArrivée
OuvrirReservation()
Dessert
0..*
Personne
Nom : String
Prénom : String
Naissance : Date
Appartement
Adresse : String
Pièces : int
Loyer : float
*
*
1
* Loue
Propose
Plusieurs association entre deux classe 51
Les élément de diagramme de classe : Association Réflexive
C’est une association entre une classe donnée et elle-même.
patron
Employé
Nom : String
Prénom : String
Grade: String ouvrier
0..1
*
Dirige
2
crée
Enfant
Employé
Nom : String
Prénom : String
Grade: String Femme
1
1
Dirige
*
parent Homme
52
Les élément de diagramme de classe: Classe d'Association
 Une association peut parfois avoir des propriétés. Dans ce cas, ces propriétés sont encapsulées dans
une classe nommée classe d’association.
 Une classe d’association est représentée par un trait discontinu qui relie la classe avec
l’association qu’elle caractérise.
 Généralement, une association de cardinalité plusieurs à plusieurs est une classe d’association.
 On veut caractériser chaque personne travaillant dans une société par ses grades et sessalaires.
 Lasociété emploie plusieurs personnes avec des grades et des salaires différents.
 Une personne peut avoir plusieurs grades et salaires dans la société.
 les attributs grade et salaire n’appartiennent ni à la classe Société ni àla classe Personne
Classe 1 Classe 2
Classe d’association
Société
Nom
Adresse
Personne
Nom
Adresse
Grade
Salaire
Emploi
Grade
Salaire
0..1 *
53
Les élément de diagramme de classe: Classe d'Association
 Chaque Vol peut avoir plusieurs Aéroport servant d’escales et chaque Aéroport peut servir d’escale pour plusieurs vols.
Lesinformations sur les escales sont des attributs d’associations qui caractérisent la classed’association.
InfosEscale
heureDepart
heureArrivée
/Durée
Vol
dateDepart
dateArrivée
heureDepart
heureArrivée
OuvrirReservation()
Aéroport
Nom
Escale
Arrivée
Départ
1
1
0..*
0..*
0..*
0..* dessert
dessert
Association
concernée
Classe
d’association
Attributs
d’association
54
Les élément de diagramme de classe : Classe d'Association
 Lors de la conception, une classe-association peut être remplacée par une classe intermédiaire.
Exemple
Un étudiant peut réaliser plusieurs travaux
Un travail est réalisé par un ou plusieurs étudiants
Pour chaque travail réalisé pour chaque étudiant, on lui attribue une note
LigneDeCommande
Quantité
0..1
Analyse Conception
Etudiant Travail
Réalise
Evaluation
Note
1..* 0..*
Article Commande
Réalise
LigneDeCommande
1..* 0..*
Article Commande
Quantité
0..1
55
Les élément de diagramme de classe: Association n-aire
 Les associations ont souvent une arité binaire: deux classes en relation.
 Association n-aire : relie plus de deux classes.
 Représentée par un losange.
 Vaut mieux limiter leurs utilisations.
Etudiant Enseignant
1
2..*
2..*
Début
Fin
Evaluation
Salle
1
Cours
« Association ternaire »
Cours
Enseignant
Salle
Etudiant Début
Fin
1
1
1
1
1
56
Les élément de diagramme de classe : Relation d'Agrégation
C’est un cas particulier d’une association qui exprime la contenance
N’a pas besoin d’être nommée (elle signifie « contient », « est composé de »)
Un élément peut appartenir à plusieurs agrégats (agrégation partagée)
La destruction de l’agrégat n’entraine pas la destruction de tous ses éléments
 Une agrégation peut exprimer :
Qu’une classe « élément » fait partie d’une autre « agrégat »
Un changement d’état d’une classe entraine un changement d’état d’une autre.
Une action sur une classe entraine une action sur une autre
Représentation de l’agrégation en UML
Agrégat
1..*
0..*
Elément
57
Les élément de diagramme de classe : Relation de Composition
C’est une relation qui exprime une agrégation plus forte.
Un élément ne peut appartenir qu’à un seul agrégat composite (agrégation non partagée)
La destruction de l’agrégat composite entraine la destruction de tous ses éléments. (le composite est
responsable du cycle de vie des composants)
Les objets composants sont des instances de la classe composite.
.
Représentation de la composition en UML
Composite
1
0..*
Composan
t
58
Les élément de diagramme de classe: Agrégation vs Composition
Email T
exte
Titre
Destinataire
1
1..*
 Un email peut contenir un titre, du texte et des
destinataire
 Titre, Texte et Destinataire sont des classes qui
peuvent constituer un email.
 Titre, Texte et Destinataire peuvent être partagés
entre plusieurs emails
 La destruction de l’email n’entraine pas la
destruction de tous ses éléments
 Une voiture doit contenir des sièges,4 roues
et 1 moteur.
 Siège, Roue et Moteur sont des classes qui
constituent une voiture.
 Siège, Roue et Moteur ne sont pas partagés
entre plusieurs voitures
 La destruction de la voiture entraine la
destruction de tous ses éléments
Agrégation
Composition
1..* 0..*
1..*
1..*
Voiture Roue
Siège
Moteur
2..9
1
1 4
1
1
59
Les élément de diagramme de classe : Agrégation vs Composition
 Exemple:
 Un livre est composé d’une ou plusieurs pages et d’une couverture.
Livre Page
Couverture
Agrégation : ici, on
indique qu’un livre peut
être constitué d’une
couverture.
Composition: ici, on exprime que
les pages sont physiquement
contenues dans le livre.
1..*
1
1
1
60
 Les élément de diagramme de classe ; Relation d'Héritage :
 L’association de généralisation définit une relation de classification entre une classe plus générale et
une classe plus spécifique.
 La classe spécifique contient par héritage tous les attributs, les opérations et les relations de la classe
générale et peut en contenir d’autres.
Une hiérarchie d’héritage ne doit pas contenir de cycle.
Non réflexive : une classe ne peut pas dériver d’elle-même.
Non symétrique : si B dérive de A alors A ne peut pas dériver de B.
Représentation de l’héritage en UML
Classe Fille
Classe Mère
61
Les élément de diagramme de classe : Relation d'Héritage : Généralisation/spécialisation simple & multiple
L’association de généralisation définit une relation de classification entre une classe plus générale et
une classe plus spécifique.
La classe spécifique contient par héritage tous les attributs, les opérations et les
relations de la classe générale et peut en contenir d’autres.
Employé
Généralisation
Spécialisation
Héritage simple
Une classe mère et plusieurs
classes filles
Héritage multiple
Plusieurs classes mères et une
classe fille
Directeur Ingénieur
Personne
Enseignant Chercheu
r
Enseignant -Chercheur 62
63
Les élément de diagramme de classe : Polymorphisme
63
• Le polymorphisme est le concept qui consiste à fournir une seule interface à
différents types d’entités.
• Polymorphisme statique de surcharge (Overloading); des méthodes de même
nom dans des classes différentes ou dans la même classe, avec des signatures
différentes
• Signatures signifie des nombres , des types d’arguments et type de retour
d’une fonction de même nom
• Polymorphisme dynamique d’héritage (redéfinition ou Overriding): des
méthodes de même noms et de mêmes signatures dans deux classes
différentes de la même hiérarchie.
• La méthode de la classe est appelée en priorité
• Forcer l’appel de la méthode de la classe mère (super)
• Forcer l’accés aux membres de la classe actuelle (this)
64
Les élément de diagramme de classe : Polymorphisme
64
- Surcharge : l’appel de la méthode se fait selon la signature
correspondante
- Redéfinition : l’appel de la méthode se fait selon l’objet qui fait
appel
Les élément de diagramme de classe : Héritage et Classes Abstraites
Une classe abstraite est une classe qui ne peut pas être directement instanciée.
Son objectif est de factoriser des propriétés communes à plusieurs sous-classes.
Lorsqu’une classe possède une seule spécialisation, alors elle ne doit pas être abstraite.
«Abstract»
Moyen de transport
-vitesse max
-modèle
- nbre voiles
Bateau
• Une pure abstraction
• Ne s’instancie qu’à travers ses filles
- altitude
Avion
- cylindré
Voiture
65
66
Les élément de diagramme de classe : Abstraction
La classe Abstraite ne peut plus être instanciée avec new. Il ne pourra donc jamais
exister en mémoire un objet dont le type dynamique soit cette classe.
Les élément de diagramme de classe : interface
67
• une interface est un type qui regroupe un ensemble de méthodes abstraites dont on ne
donne que la signature (sans code).
• Une interface s'écrit comme une classe, mais au moyen du mot clé interface en lieu et
place du mot clé class.
• Implémentés une classe.
Les élément de diagramme de classe : Contraintes
Ce sont des relations sémantiques définies sur une relation ou sur un groupe de relations.
Elles permettent de restreindre le nombre d’instances visées.
Elles peuvent s’exprimer:
graphiquement par { texte }
en langage naturel
en langage OCL (Object Constraint Language)
Elles sont de deux types:
Prédéfinie : un standard d’UML
Non prédéfinie
68
 Elle est définie sur un rôle et spécifie qu’une relation d’ordre décrit les objets de la collection.
Vol
dateDepart
dateArrivée
heureDepart
heureArrivée
OuvrirReservation()
Aéroport
nom
Départ 1
On met l’accent sur l’importance de l’ordre des
aéroports qui jouent le rôle d’escale dans un vol
Personne Pays
{ordonné}
Désire visiter
Les élément de diagramme de classe d'analyse : Contrainte{ordonné}
* *
{ordonné}
Arrivée 1
Escale 0..*
0..*
0..*
0..*
69
 Elle indique qu’une collection est un sous ensemble (est inclus) d’une autre
Lacapitale d’un pays est forcément l’une de ses villes.
Pays Ville
1..*
Président
Membre
Chapitre
3
Diagramme
de
Classe
Les élément de diagramme de classe Contrainte{sous-ensemble}ou {inclusion}
{sous-ensemble}
capitale
1..*
1 1..*
Le président est également un membre du comité.
Pays Ville
1
{inclus}
0..*
2..*
0..*
70
 Elle indique que tous les objets d’une classe peuvent participer à l’une des deux associations mais pas aux
deux à la fois.
Les personnes qui jouent le rôle d’étudiant
ne peuvent pas jouer le rôle d’enseignant
dans la même université, et inversement.
une personne est soit enseignant soit
étudiant au sein de la même université
Université Personne
0..1
1..*
*
enseignant
Compte
Personne
Morale
0..*
{
XOR}
0..*
Un compte bancaire appartient soit à une
personne physique soit à une personne
morale, mais pas les deux.
étudiant
{
XOR}
1
Les élément de diagramme de classe : Contrainte{XOR}
Personne
Physique
1
1..*
71
 Elle indique que toutes les instances d’une classe participent au moins à une association
 Remarques :
 Il existe plusieurs autres contraintes prédéfinies, tels que :
 {unique} : l’attribut a une valeur unique dont tous les objets ne doivent pas la partager avec lui,
une clé primaire est obligatoirement {unique}.
 {addOnly} : le nombre d’objet ne peut qu’augmenter.
 Certaines ne sont plus un standard UML tel que {frozen}.
 Le langage OCL permet de décrire les contraintes de manière plus précise => un.
Personne Logement
0..1
1
0..*
{
totalité}
Toutes les instances de Personne et de Logement participent Toutes
au moins à l’une des associations
« loue » ou « possède ».
Les élément de diagramme de classe : Contrainte{totalité}
*
possède
loue
72
Directeur∩Ingénieur=ᴓ
Etudiant ∩ Salarié ≠
ᴓ
EngraisnaturelᴜProduitindustriel=Produit
Les élément de diagramme de classe : Contraintes d’héritage {disjoint},{chevauché},{complet}
{Disjoint} : tout objet est au plus une instance d’une sous-classe.
{Chevauché} : Une instance de l’une des spécialisations peut être simultanément une instance
{Complet} : indique que la généralisation est terminée (il n’est pas possible d’ajouter d’autres sous-
classes).
Employé
Directeur Ingénieur
Personne
Etudiant Salarié
Produit
Engrais naturel Produit industriel
{complet}
{chevauché}
{disjoint}
73
 UML permet de spécifier explicitement des contraintes particulières sur des éléments du
modèle.
 Certaines contraintes sont propres au système à modéliser.
Contrainte sur attribut:
Solde doit être positif
Compte
- Solde : float
Compte
- Solde : float {solde >0}
Conscrit
{Personne.dateNaissance<1/1/1996}
Contrainte sur association:
Seules les personnes dont la date de naissance < 1/1/1996,
peuvent être conscrit.
Les élément de diagramme de classe: Contraintes nonprédéfinies
{solde>0}
Année
Personne
dateNaissance
74
■ Une note est un commentaire exprimé dans un format libre, afin de faciliter la compréhension du
diagramme.
■ Les traits discontinus permettent de relier n’importe quel élément à une note.
Les élément de diagramme de classe: Note
deux clients
de la banque
Philippe
Didier
: Compte courant
: Assurance vie
: Compte courant
NOTE
75
■ Un package est un regroupement d'éléments du modèle.
■ Il peut comporter plusieurs types d’entités (classes, associations, package).
■ Un élément du modèle, et plus particulièrement une classe peut être représentée plusieurs fois dans un
modèle. Il est alors bon d’indiquer le package d’appartenance d’une classe comme suit :
NomPackage : : NomClasse
■ Le nom d’une classe est unique dans un package. Par contre il est possible d’avoir deux classes de
même nom dans des packages différents.
■ Le système entier peut être vu comme un package unique de haut niveau contenant tout le reste. On
peut aussi représenter les dépendances entre packages.
Les élément de diagramme de classe: Package
Facturation Client
Commande
Facturation : :
Facture
Produit
Société
Client
1
1
1
1
*
*
acheter
concerner
76
C : Diagramme de séquence de conception (Boite Blanche)
Phase de conception
 Phase de conception
 Présentation de diagramme de séquence (boite blanche).
 Les élément de diagramme de séquence.
• STÉRÉOTYPES Boundary
• STÉRÉOTYPES Control
• STÉRÉOTYPES Entity
• Les acteur et les objets
• Opérations
• Création objet
• Destruction objet
77
Présentation de diagramme de séquence (boite blanche).
 Un diagramme de séquence boite blanche est un diagramme de séquence qui dévoile les composants du système
représenté avant dans un diagramme de séquence boite noire. Le système boite blanche se compose des objets
présentatifs, logiques et métiers (classes d’analyse).
 Les principales informations contenues dans un diagramme de séquence boite blanche sont les messages échangé
entre les lignes de vie des acteurs principaux, acteurs secondaires et classes d’analyse qui composent le système
présentes dans un ordre chronologique. Ainsi, contrairement au diagramme de communication, le temps y est
représenté explicitement par une dimension (la dimension verticale) et s’écoule de haut en bas.
Utilisation en phase de conception
 Objectif : Description de la réalisation d'un cas d'utilisation sur le système décrit par le diagramme de classes
 Problème :
 Communication entre les acteurs et le système vu comme un ensemble d'objets
Communication entre acteurs et système via une interface (texte, web, physique...)
Éléments du diagramme de séquence :
 Acteurs
 Objets (instances)
 Messages (cas d'utilisation, appels d’opération)
Principes de base :
Représentation graphique de la chronologie des échanges de messages avec le système ou au sein du système
 « Vie » de chaque entité représentée verticalement
 Échanges de messages représentés horizontalement
78
Les élément de diagramme de séquence Boite blanche:
:Système
creerFormation( )
:Acteur
Système vue comme
une Boite noire
Objets à l’intérieur du
système (Boite blanche)
Passage de
l’analyse à la
conception
Objet:
creerFormation( )
:Acteur Objet:
STÉRÉOTYPES DE JACOBSON:
À l’intérieur du système, Jacobson distingue les trois stéréotypes suivants :
 <<boundary>> : classes qui servent à modéliser les interactions entre le système et ses acteurs
 <<control>> : classes utilisées pour représenter la coordination, l’enchaînement et le contrôle
d’autres objets, elles sont en général reliées à un cas d’utilisation particulier ;
 <<entity>> : classes qui servent à modéliser des informations durables et souvent persistantes
79
Les élément de diagramme de séquence Boite blanche:
 les opérations : un message ne peut être reçu par un objet que si sa classe a déclaré l’opération
publique correspondante ;
 La création d’objet: désigne par l’opération <<create>> ou bien create().
 La destruction d’objet: désigne par l’opération <<destroy>> ou bien destroy().
 Pour communiquer avec les objets d’un système c’est nécessaire de passer par une interface
comme une application.
 la navigabilité des associations : ou les dépendances entre classes, suivant que les liens entre
objets sont durables ou temporaires, et en fonction du sens de circulation des messages.
80
Les élément de diagramme de séquence Boite blanche:
Nous utiliserons ces trois stéréotypes (avec leurs symboles graphiques associés, dans les diagrammes
de séquence) pour montrer graphiquement comment un message émis par un acteur traverse les
couches présentation, application et métier.
81
Les élément de diagramme de séquence Boite blanche:
82
Les élément de diagramme de séquence Boite blanche: Exemple 1
83
Certaines interactions ne sont pas représentées ou mal représentées :
• Saisie non valide du login et mot de passe au niveau de l’interface
graphique de connexion.
• Login et mot de passe valides mais introuvables dans la table des clients.
• La page de connexion est remplacée par la page d’accueil.
Les élément de diagramme de séquence Boite blanche: Exemple 2
84
Les élément de diagramme de séquence Boite blanche: Exemple 3
85
D : Diagramme d’Activité
Phase de conception
 Le diagramme d’activité.
 Les éléments de diagramme
 Démarrage
 Fin
 Action
 Transition
 Condition
86
87
• Le diagramme d'activité peut remplacer la description textuelle d’un CU complexe dans la mesure où ce
diagramme permet de représenter tous les scénarios d’exécution du CU.
• Un diagramme d’activité est une formalisation graphique des actions qui sont réalisées dans un cas
d’utilisation.
• Le diagramme est donc organisé en actions réalisées soit par un acteur, soit par le système, relié par une
flèche indiquant l’enchaînement des actions.
• Les actions sont les unités de base du comportement du système. Une action est une étape dans une
activité qui ne peut plus être décomposée.
• L'exécution d'une action représente une transformation ou un traitement dans le système modélisé.
• Une activité représente un comportement constitué d'éléments qui sont des actions.
Diagramme d’Activité
88
Diagramme d’Activité : Les éléments de diagramme
E : Diagramme Etat Transition
Phase de conception
 Le diagramme Etat Transition.
 Les éléments de diagramme
89
90
Diagramme Etat Transition
En UML, le diagramme d’états (state machine diagram) permet de modéliser avec précision des
comportements et les cycles de vie complexes d’un objet et ce dès l’analyse.
Le diagramme d'états-transitions (ou simplement d’états) permet de décrire les changements d'états
d'un objet (ou d'un composant ou d’un système pris dans son ensemble), en réponse à des
évènements.
Certaines classes du modèle statique requièrent un diagramme d’états pour comprendre son
comportement dynamique complexe.
On prend par exemple l’objet « panier » pour étudier son cycle de vie
91
Diagramme Etat Transition
L’objet qui nous intéresse c’est le panier.
Éléments déclencheurs de l’état États de l’objet
 Le panier peut être créé par un client inscrit Créé
 le panier devient susceptible à une opération d’achat probable En attente
 Lorsqu’il ajoute un produit ou retire un produit, le panier devient modifié. Modifié
 Lorsqu’il vide le panier, il devient vidé Vidé
 Lorsque le client parcourt les produits du panier, il est consulté Consulté
 Lorsque le client valide les produits du panier, il est validé Validé
 Lorsque le client procède au paiement en ligne, le panier est payé Payé
 Lorsqu’une facture est envoyée au client, il devient facturé. Facturé
 Lorsque le client annule le panier, alors celui-ci est détruit. Détruit
92
Diagramme Etat Transition
Un état représente une situation durant le vie d’un objet pendant laquelle :
 il exécute une certaine activité
 ou bien, il attend un certain événement.
Un objet passe par une succession d’états durant son existence.
Un état a une durée finie.
L’état initial est l’état dans lequel l’objet se trouve lors de sa création.
L’état final correspond à la destruction de l’objet.
Un diagramme d’états a toujours un et un seul état initial. Il peut n’avoir aucun état final ou
plusieurs.
Après sa création, un objet passe par une série d’états « normaux ».
93
Diagramme Etat Transition
Une transition décrit la réponse d’un objet lorsqu’un événement se produit
provoquant le passage de l’objet d’un état (état source) dans un autre (état cible)
La transition est représentée par une flèche orientée de l’état source vers l’état cible.
L'événement qui détermine le franchissement de la transition est indiqué sous
forme de texte.
Si aucun événement n'est spécifié, alors il s’agit d’une transition automatique.
Une transition n’a pas de durée, elle est franchie instantanément (on dit qu’elle est
déclenchée).
94
Diagramme Etat Transition
95
Diagramme Etat Transition
96
Diagramme Etat Transition
97
Diagramme Etat Transition
98
Diagramme Etat Transition
99
Diagramme Etat Transition
100
Diagramme Etat Transition
101
Diagramme Etat Transition
102
Diagramme Etat Transition
103
Diagramme Etat Transition
104
Diagramme Etat Transition
105
Diagramme Etat Transition
106
Diagramme Etat Transition
107
Diagramme Etat Transition

Contenu connexe

PPSX
diagramme des cas d'utilisation
PPTX
Système_Interactif_Transformation_Digital_Industrielle.pptx
PDF
Unified Modeling Language Intro 2021-2022 VF
PPT
Definitiondesbesoinsuml
PPTX
PPT
diagramme de cas d'utilisation
PPT
7 diagramme de cas d'utilisation
diagramme des cas d'utilisation
Système_Interactif_Transformation_Digital_Industrielle.pptx
Unified Modeling Language Intro 2021-2022 VF
Definitiondesbesoinsuml
diagramme de cas d'utilisation
7 diagramme de cas d'utilisation

Similaire à CONCEPTION ET ANALYSE ORIENTE OBJET MÉTHODE UML (20)

PPTX
Diagramme de cas d_utilisation.pptx
PDF
Cours1IntroUseCaseDiagram.pdf
PPTX
UML CAI Conception (DSI,IA...) - 2021-2022.pptx
PDF
diagramme de cas d'utilisation pour modélisation UML
PDF
Diagramme_struc1][1].pdhhuvcuuvjvjjbbibkk
PDF
UML Diagrammes Dynamiques
PDF
Initiation à UML: Partie 2
PPTX
03GL-diagramme de cas dutilisation.pptx
PDF
Tp3 - UML
PDF
1-Intro-UseCasefqdfqdqfdsfqfdqffdqff.pdf
PPTX
Chapitre4_ConceptionDynamique (1).pptx
PDF
Analyse et conception orienté objet (uml).pdf
PPSX
03GL-diagramme de cas dutilisation (1).ppsx
PDF
CoursUML-SlimMesfar-Total
PPT
Modelisation avec uml professeur slim kanoun enis
PPT
Présentation sur le diagramme de séquence.ppt
PPT
UMl_language_de modélisation_eninformatique.ppt
KEY
Uml Cas Utilisation introduction
PDF
UML Part2- diagramme des uses cases_mansouri
Diagramme de cas d_utilisation.pptx
Cours1IntroUseCaseDiagram.pdf
UML CAI Conception (DSI,IA...) - 2021-2022.pptx
diagramme de cas d'utilisation pour modélisation UML
Diagramme_struc1][1].pdhhuvcuuvjvjjbbibkk
UML Diagrammes Dynamiques
Initiation à UML: Partie 2
03GL-diagramme de cas dutilisation.pptx
Tp3 - UML
1-Intro-UseCasefqdfqdqfdsfqfdqffdqff.pdf
Chapitre4_ConceptionDynamique (1).pptx
Analyse et conception orienté objet (uml).pdf
03GL-diagramme de cas dutilisation (1).ppsx
CoursUML-SlimMesfar-Total
Modelisation avec uml professeur slim kanoun enis
Présentation sur le diagramme de séquence.ppt
UMl_language_de modélisation_eninformatique.ppt
Uml Cas Utilisation introduction
UML Part2- diagramme des uses cases_mansouri
Publicité

Plus de Pointer @Info (8)

PDF
Merise - SQL - SQL Procedural (MySQL) - TSQL (SQL Server) - PLSQL (Oracle) - ...
PDF
"Introduction et Résumé de Laravel : Tout ce que Vous Devez Savoir".pdf
PDF
Introduction à la Programmation Structurée en Langage C.pdf
PDF
Résumé de la Programmation Orientée Objet (POO) avec Python, PHP et C#
PDF
Résumé de C# et la Programmation Événementielle.pdf
PDF
La programmation structurelle : Les Notions de Base en Python.pdf
PDF
"Guide Fondamental : Les Bases de l'Algorithme"
PDF
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Merise - SQL - SQL Procedural (MySQL) - TSQL (SQL Server) - PLSQL (Oracle) - ...
"Introduction et Résumé de Laravel : Tout ce que Vous Devez Savoir".pdf
Introduction à la Programmation Structurée en Langage C.pdf
Résumé de la Programmation Orientée Objet (POO) avec Python, PHP et C#
Résumé de C# et la Programmation Événementielle.pdf
La programmation structurelle : Les Notions de Base en Python.pdf
"Guide Fondamental : Les Bases de l'Algorithme"
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Publicité

Dernier (20)

PDF
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
PDF
تصريف فعل Être في كل الأزمنة الفرنسية.pdf
PPTX
448620551-PRESENTATION-POWER Un mémoire est un document permettant d'exposer ...
PPTX
liste des APT - entreprises industrielle
PPTX
EPI et EPC électrique -- NF C18-510.pptx
PDF
CLASE 2 TRAIN voacublaire en rancaise.pdf
PDF
Présentation de jfjjfnflfkfkfkhdbhdhhdhd
PPTX
Présentation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx portrait.pptx
PPTX
XEROPHTALMIE , SES ETIOLOGIES ET SA PRISE EN CHARGE
PDF
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
PDF
Interface Homme Machine M1 Chapitre JavaFX.pdf
PDF
CLASE 5 comparatifs en gfrnacaise clase 2
PPTX
Presentation of French language that is very important
PPTX
Niki de Saint-Phalle.pptx artiste plasticienne
PDF
La Darija marocaine La Darija marocaineLa Darija marocaine
PDF
🎓 Le Secret des Profs Captivants - 💡 3.2. Routine 5-5-5 debout - 3. Respirer ...
PDF
Devenir un expert en audit qualité, la démarche.pdf
PPTX
BasicFrench_FINAL23 (1).Niveauxneuf9pptx
PPTX
Saint Jean Eudes, 1601-1680, prêtre et fondateur français.pptx
PDF
🎓 Le Secret des Profs Captivants - 💡 3.1. Anatomie de la respiration — VOIX, ...
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
تصريف فعل Être في كل الأزمنة الفرنسية.pdf
448620551-PRESENTATION-POWER Un mémoire est un document permettant d'exposer ...
liste des APT - entreprises industrielle
EPI et EPC électrique -- NF C18-510.pptx
CLASE 2 TRAIN voacublaire en rancaise.pdf
Présentation de jfjjfnflfkfkfkhdbhdhhdhd
Présentation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx portrait.pptx
XEROPHTALMIE , SES ETIOLOGIES ET SA PRISE EN CHARGE
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
Interface Homme Machine M1 Chapitre JavaFX.pdf
CLASE 5 comparatifs en gfrnacaise clase 2
Presentation of French language that is very important
Niki de Saint-Phalle.pptx artiste plasticienne
La Darija marocaine La Darija marocaineLa Darija marocaine
🎓 Le Secret des Profs Captivants - 💡 3.2. Routine 5-5-5 debout - 3. Respirer ...
Devenir un expert en audit qualité, la démarche.pdf
BasicFrench_FINAL23 (1).Niveauxneuf9pptx
Saint Jean Eudes, 1601-1680, prêtre et fondateur français.pptx
🎓 Le Secret des Profs Captivants - 💡 3.1. Anatomie de la respiration — VOIX, ...

CONCEPTION ET ANALYSE ORIENTE OBJET MÉTHODE UML

  • 1. CONCEPTION ET ANALYSE ORIENTE OBJET MÉTHODE UML 1
  • 2. Introduction  Le langage UML • Historique & Evaluation • Les Vues • Les Axes de modélisation • Les Diagrammes 2
  • 3. Le langage UML: Historique & Evaluation Genèse : • Unification des concepts et des modèles de 3 méthodesconnues (Booch, OMT,OOSE) Standardisation: • UML est un standard des notations graphiques et du vocabulaire utilisé pour l’analyse et le conception oriente objet des SI (et même des systèmes en général). • UML n’est pas une méthode de conception mais un ensemble de notations unifiées. Unified Modeling Language ( langage de modélisation unifié). • UML est à présent est un standard adopté par l’OMG(Object Management Group).  UML : • évolue mais reste stable • Couvre le cycle de développement logiciel de la spécification des besoins à l’implantation • Est un support de communication (conséquence de la standardisation) 3
  • 4. Le langage UML: Les Vues Vue Cas d’Utilisation UML voit le système étudié selon différentes perspectives. Aspect dynamique: Aspect fonctionnel : Acteurs , Cas d’utilisations, collaboration Aspect répartition: Nœuds Modules Aspect statique : Classes, objets, paquetages interactions, activités, séquences, états-transitions Aspect statique: Paquetages, méthodes, Nœuds Vue Logique Vue Implantation Vue Processus Vue Déploiement 4
  • 5. Le langage UML: Les Axes de modélisation UML permet de modéliser un système selon trois axes. UML utilise des diagrammes pour modéliser le système ou une partie du système selon une vue qui correspond à l’un des axes de modélisation. Un diagramme UML est une représentation graphique d’une séquence d’opérations ou de la structure d’un système. Chaque diagramme est construit par un ensemble d’éléments du langage UML. Ces éléments graphiques ont une sémantique unique qui simplifie la compréhension du modèle du système. Statique CequelesystèmeEst Décrit les services rendus Dynamique CommentlesystèmeEvolue Fonctionnel Ceque le système Fait Décrit les réactions du système dans le temps 9 diagrammes UML1.4 + 4 diagrammes UML2.x Cas d’utilisations • Classes • Objets • Composants • Déploiement • Séquences • Collaborations • Etats-transitions • Activités 5
  • 6. Le langage UML: Les Diagrammes UML un langage  UML n ’est pas une méthode  UML est un langage de modélisation objet  UML a été adopté par toutes les méthodes objet  UML est dans le domaine public, c’est une norme 6
  • 7. Le langage UML: Les Diagrammes UML comporte treize types de diagrammes, représentant autant de vues distinctes pour illustrer des concepts particuliers du logiciel. Ces diagrammes sont répartis en trois niveaux : 7 Niveau Fonctionnel Niveau Structurel Niveau comportemental • Diagramme Use Case (Cas d’utilisation) • Diagramme de classes • Diagramme d’objets • Diagramme de composants • Diagramme de déploiement • Diagramme de paquetages • Diagramme de structures composites • Diagramme d’activités • Diagramme d’états-transitions • Diagramme d’interaction • Diagramme de séquence • Diagramme de communication • Diagramme global d’interaction • Diagramme de temps
  • 8. A : Définition des besoins : Diagramme de cas d’utilisation (uses cases) Phase d’analyse  Présentation cas d’utilisation  Définition cas d’utilisation  Notation graphique de cas d’utilisation  Les composants d’un diagramme de cas d’utilisation • Le système • Les acteurs • Les acteurs principaux et secondaires • Les acteurs Hiérarchie • Les relation entre cas utilisations • Les relation entre cas utilisations : Inclusion • Les relation entre cas utilisations : Extension • Les relation entre cas utilisations : Héritage  Paquetage des Cas d’utilisation  Diagramme de contexte 8
  • 9. Présentation cas d’utilisation Le diagramme de cas d'utilisation (DCU) Permet la spécification des besoins. Il montre les interactions fonctionnelles entre les acteurs et le système d’information. Le diagramme de cas d'utilisation permet de représenter la vision détaillée de l'application du point de vue de l'utilisateur. Il répond à la question : À qui et pour quoi faire ? En UML, un Cas d’Utilisation modélise un service (ou une fonctionnalité) rendu par lesystème. 9
  • 10. Définition cas d’utilisation Définition: Un Cas d’Utilisation (use case) représente une unité cohérente d’une fonctionnalité fournie par un système (ou sous-système) spécifiée par une séquence d’actions que le système peut exécuter en interagissant avec les acteurs du système. La séquence d’actions définit un service de bout en bout, avec un déclenchement, un déroulement et une fin, pour l'acteur qui l'initie. L’acteurdécrit le rôle qu’un utilisateur joue par rapport au système. Acteur != Utilisateur Notation graphique de cas d’utilisation Graphiquement, un CU ( use est représenté sous forme d’uneellipse ). Lafonction réalisée par le CUest représentée sous forme d’un verbe à l’infinitif. Lesfonctionnalités du système exprimées textuellement seront modélisés à l’aide des cas d’utilisations. Exemple: Ajouter un produit au panier dans un sitede e-Commerce Remplir l’essence dans une station de service Créer une nouvelle réservation dans un cabinetmédical Remplir l’Essence Créer Réservation Ajouter Produit à Son Panier 10
  • 11. Les composants d’un diagramme de CU : Le Système Qu’est-ce que Le système: Lesystème est représenté sous forme d’un rectangle qui contient un libellé qui correspond au nom dusystème à modéliser. Le systèmesert à délimiterle systèmepar rapport à son environnement et aux autres systèmes. Lesystème est un ensemble de CU.De cette manière, UML modélise le système et les services rendus par lesystème. Site Web e-commerce Ajouter Produit à Son Panier Lister les Produits Payer la transaction 11
  • 12. Les composants d’un diagramme de CU : Les acteurs Un acteur est un ensemble cohérent de rôles joués par des entités externes (utilisateur, dispositif matériel ou autre système) qui interagissent avec le système. Lesacteurs sont représentés par un stick man ou une classe « actor» il ne faut pas confondre la notion d’acteur avec la notion d’utilisateur. L’acteur décrit le rôle qu’un utilisateur joue par rapport ausystème Un utilisateur c’est une personne utilisant le système Larelation d’association entre acteur et CUreprésente la possibilité pour l’acteur de déclencher le cas. Site Web e-commerce Ajouter Produit à Son Panier L’acteur principal obtient un résultat observable du système. Il déclenche le CU par son initiation de la communication. Il utilise le système comme outil pour réaliser son but L’acteur secondaire ou auxiliaire est sollicité pour des informations complémentaires. Il intervient suite à l'intervention de l'acteur primaire. Il offre généralement sesservices au système. Site Web e-commerce Ajouter Produit à Son Panier Lister les Produits Payer laTransaction «Primary » «Secondary» Stéréotype Acteur secondaire (à droite) Acteur principal (à gauche) 12
  • 13. Les composants d’un diagramme de CU : Site Web e-commerce Ajouter Produit à Son Panier Lister les produits Acteur père LesacteursHiérarchie: Laseule relation qui peut exister entre les acteurs est la relation de généralisation. L’acteur qui hérite peut faire tout ce que l’acteur père peut faire. Les acteurs Lesrelationentrecasutilisations: Le visiteur qui veut gérer son panier (entre autres l’ajout du produit) doit d’abord devenir un client, en remplissant un formulaire d’inscription. Après l’inscription, le visiteur devient un client doté de paramètres d’identifications (login et mot de passe). S’inscrire S’identifier Ajouter Produit à Son Panier Site Web e-commerce Modèle qui ne reflète pas laréalité ! Réalité : L’identification du client est un CUqui fait partie du CUajout du produit Modèle : le client peut ajouter le produit sans passer par l’identification Acteur fils Il peut faire tout ce que fait le visiteur + sespropres CU 13
  • 14. Les composants d’un diagramme de CU : Les relation entre cas utilisations  Permet d’inclure un CU dans un autre : Inclusion  Permet à un CU d’incorporer à un endroit précis, un autre CU optionnel: Extension  Généralisation: Permet de formaliser les variations sur le même CU Casde base Cas inclus « include» Cas fils Cas père UML propose trois types de relations entre les cas d’utilisation Casoptionnel Cas de base « extends »  Les relation entre cas utilisations : Inclusion  Pour vérifier qu’un cas est inclus dans un autre ou pas, il faut vérifier que les actions et les interactions réalisés entre l’acteur et le système dans le cas inclus sont dupliqué entièrement dans le cas de base  L’inclusion permet d’enlever la redondance (factorisation) dans la description textuelle et de mieux se concentrer sur les autres fonctionnalités. S’identifier Ajouter Produit à Son Panier Site Web e-commerce Séquence d’actions de « S’identifier » 1.Le client fait entrer login et mot de passe 2.Le système vérifie login et mot de passe Séquence d’actions de «Ajouter Produit » 1. Le client fait entrer login et mot de passe 2. Le système vérifie login et mot de passe 3. Le client remplie le panier 4. Le système confirme les choix du client 14
  • 15. Les composants d’un diagramme de CU : Les relation entre cas utilisations Enlistant les produits, le client peut décider d’ajouter un produit à son panier. Après avoir ajouté un ou plusieurs produits à son panier, le client peut décider de payer sesachats en ligne en réalisant la transaction nécessaire. L’extension permet de séparer le comportement optionnel ou rare du comportement obligatoire. Avec l’extension, les CU s’exécutent indépendamment les uns des autres • Les relation entre cas utilisations : Extension Site Web e-commerce «extends» Lister les produits Ajouter Produit «extends» Ajout Produit Point d’extension Produit disponible et Quantité suffisante Payer Transaction Point d’extension: Carte Crédit Valide Lister les Produits Payer la Transaction Ajouter Produit à Son Panier 15
  • 16. Les composants d’un diagramme de CU : Les relation entre cas utilisations • Les relation entre cas utilisations : Généralisation/Héritage Lepayement de la transaction peut se faire par carte de crédit, par virement bancaire ou par mandat postal. Leclient choisit une des trois manières de payer la transaction. Mais à la fin, le payement de la transaction est réalisé. Lagénéralisation permet d’exprimer un comportement commun entre plusieurs cas d’utilisation. Lecas père ne s’instancie que par le biais de l’un de sesdescendants Payer la Transaction Site Web e-commerce Payer par carte crédit Payer par virement bancaire Payer par mondât postal Cas fils Concret Caspère Abstrait 16
  • 17. Paquetage de Cas d’utilisation Le diagramme de CU d’un système peut très vite devenir encombrant et difficile à décortiquer. Regrouper les CU par acteur ou par domaine fonctionnel ou autre permet d’avoir des ensembles cohérents de CU. Le mécanisme général de regroupement des éléments UML c’est les packages. Un package possède un nom et contient d’autres diagrammes dont d’autres packages. Le diagramme de paquetage (package) permet de :  Organiser les concepts en groupes homogènes  Introduire des niveaux d’abstraction  Découper un problème en sous- problèmes (sous-systèmes)  Réutiliser les unités logiques et cohérentes Diagramme de CUen package:Exemple Administration Répondre aux messages Gérer son Compte Gérer les Produits Clientèle S’inscrire Gérer ses commandes Payer sa transaction Gérer son panier Authentification S’authentifier Admin Client Système bancaire client 17
  • 18. Présentation d’un diagramme de contexte Statique  Le Diagramme de contexte statique est un diagramme qui permet de décrire les acteurs du système.  Ce diagramme permet de spécifier le nombre d’instances d’acteurs reliées au système à un moment donné.  Diagramme qui présente que les acteurs et leur intervention avec le système. Système d’étude Désigne un acteur secondaire Acteur1 Acteur3 1..* 1..* 1..* 1 1 1 Acteur2 Désigne le nombre des instances 18
  • 19. Présentation d’un diagramme de contexte Dynamique  Le Diagramme de contexte statique est un diagramme qui permet de décrire les interactions entre les acteurs et le système Système d’étude Acteur2 Acteur1 Acteur3 - Interaction 1 - Interaction 2 - …. - Interaction 1 - Interaction 2 - …. - Interaction 1 - Interaction 2 - …. - Interaction 1 - Interaction 2 - …. - Interaction 1 - Interaction 2 - …. 19
  • 20. B: Définition des besoins : Diagramme de séquences (Boîte noire) Phase d’analyse  Le Scénario  boite noire vs boite blanche  Diagramme de séquence système : Boîte noire  Les composants d’un diagramme de séquence : Boîte noire • Les objets • La Ligne de vie • Les Messages • Les Fragments • Note & Package 20
  • 21. Le Scénario : Description Textuelle Erreur Scénario Alternatif ScénarioNominal Scénario d’Erreur Fin nominale Un scénario est une suite spécifique d’interactions entre les acteurs et le système: c’est une instance du CU, un chemin particulier parmi cesinteractions. Scénario principal : nominal Scénario secondaire: c’est soit un cas alternatif , soit un casd’erreur. Chaque scénario est composé d’étapes qui peuvent être de trois sortes : Un message d’un acteur au système Une validation ou un changement d’état du système Un message du système vers unacteur UML permet de modéliser les interactions par des diagrammes dynamiques. On peut réaliser « un diagramme de séquence » pour décrire le déroulement de la séquence d’actions d’un scénario donné d’unCU. Le diagramme de séquence en UML peut être utilisé dans plusieurs contextes. Il permet de décrire la séquence des messages échangés entre différents objets et à différents niveaux de détails. On peut aussi réaliser « un diagramme d’activité » pour décrire tous les scénarios d’un CU. Le diagramme d’activité représente les activités réalisées par le système avec tous les branchements et toutes les bouclespossibles 21
  • 22. boite noire vs boite blanche Lediagramme de séquence modélise l’aspect dynamique du système. Il s’agit d’une séquence d’interaction d’un point de vue temporel entre le système et lesacteurs. Nous avons déjà vu le diagramme de séquence système. Son rôle était de décrire graphiquement un scénario d’un casd’utilisation. Diagramme de séquence système Diagramme de séquence Le système est une boite noire  On ne s’intéresse pas aux composants du système  Le système est modélisé comme étant une seule entité Le système est une boite blanche  On s’intéresse à chaque composant du système intervenant dans la réalisation du CU  Le système est modélisé comme étant un ensemble d’entités Analyse Conception Cas d’Utilisation : est décrit (documenté) par Système: Message Réponse au message :Acteur Boite noire Diagramme de séquence (Niveau Analyse) Objet1: :Acteur Objet2: Objet3: Message Réponse Objets du système (Boiteblanche) Diagramme de séquence (Niveau Conception) 22
  • 23. Diagramme de séquence système : Boîte noire  Lediagramme de séquence peut être utilisé au niveau « Analyse »: il considère que le système est une boite noire. A ce niveau on s’intéresse aux messages échangés avec le système (vu comme une seule entité monolithique). diagramme de séquence Le système est composé d’un ensemble d’objets qui communiquent entre eux et avec les acteurs. Niveau Conception Élément 1 Élément 2 Élément3 Message1 Message 3 Message 2 Système Message 1 Message 2 diagramme de séquence système On ne s’intéresse pas aux éléments qui constituent le système : système = boite noire Niveau Analyse 23
  • 24. Les composants d’un diagramme de séquence Boîte noire : Les objets  Lescomposantsd’un diagrammedeséquence: Le diagramme de séquence permet de faire apparaitre:  Les intervenants dans l’interaction (objets du système ou acteurs)  Ladescription de l’interaction(messages)  Les interactions entre les intervenants  Objets: Les objets sont identifiés par l’intermédiaire des cas d’utilisation ou par le diagramme de classe.  Le Nom de l’objet ou du Rôle est souligné pour indiquer qu’il s’agit d’une instance Les objets sont représentés comme suit : Ilsreprésentent:  Soit des acteurs.  Soit des concepts abstraits.  Soit des objets d’implantation pour les interactions informatique.  L’utilisation des stéréotypes est un mécanisme d’extensibilité d’UML. Ils permettent de créer de nouveaux éléments dérivés de ceux existants mais qui sont adaptés à des usages spécialisés dans des domaines particuliers. Message Réponse :Acteur Objet : une entité se trouvant aux limitesdu système Système: Ligne de vie : période de temps pendant laquelle l’objet existe Interaction : message envoyé entre deux objets Objet : une entité appartenant au système NomObjet:NomClasse Rôle:Classe : Système 24 NomObjet :NomClasse
  • 25. Les composants d’un diagramme de séquence Boîte noire : La Ligne de vie Laligne de vie est représentée par une ligne verticale pointillée en dessous de l’objet. Ladimension verticale représente l’écoulement dutemps. Lapériode d’activité d’un objet est représentée par une bande rectangulaire superposée à la ligne de vie de l’objet. Un objet peut être actif plusieurs fois au cours de son existence. Lors de la création d’un nouvel objet, un message <<créer>> pointe sur le symbole de l’objet. Lors de la destruction d’un objet, sa ligne de vie doit se terminer par une croix(X). Écoulement du temps Ligne de vie Période d’activation de l’objet OBJ1: OBJ2: <<create>> Objet créé dynamiquement <<destroy>> Mort de l’objet Nom:Classe OBJ2: OBJ1: 25
  • 26. Les composants d’un diagramme de séquence Boîte noire : Les Messages  Les messages sont représentés sous forme de flèches.  Ils sont étiquetés par le nom de l’opération ou dusignal invoqué.  L’ordre d’envoi d’un message est déterminé par sa position sur la ligne de vie; le temps s’écoule « de haut en bas ». « Destroy » et « Create » sont deux stéréotypes demessages. OBJ1: Message de Objet destinataire du message 1 et expéditeur du message 2 Objet expéditeur du message 1 destruction OBJ2: OBJ3: 2. Un autremessage 1. Un message 4. Un derniermessage 5. <<destroy>> OBJ4: 3. <<create>> Message de Création 26
  • 27. Les composants d’un diagramme de séquence Boîte noire : Les Types Messages • Il existe différents types de messages:  Message synchrone: • Représenté par une flèche pleine ou complète et signifie que l’objet expéditeur envoie le message et reste bloqué tant que le destinataire n’a pas fin de traiter lemessage reçu.  Message asynchrone: • Représenté par une flèche vide ou incomplète et signifie que l’objet expéditeur envoie le message et ne reste pas bloqué pendant le traitement du message par le destinataire.  Message réflexif: • L’objet s’envoie un message à lui-même. L’expéditeur est lui-même le destinataire.  Message de retour: • Représenté en pointillés. Le récepteur d’un message synchrone rend la main à l’émetteur du message en lui envoyant un message de retour.  Message Perdu: • Le message perdu est un message dont on connaît l'émetteur, mais pas le récepteur. Il est représenté par une flèche partant de la ligne de vie d'un élément vers un disque noir.  Message trouve: • Le message trouvé est un message dont on connaît le destinataire, mais pas l'émetteur. Il est représenté par une flèche partant d'un disque noir vers la ligne de vie d'un élément. 27
  • 28.  Fragments composés: Les fragments composés représentent les expressions spécifiques dans la séquence.  Les fragments composés doivent couvrir au moins une ligne de vie à tout moment, afin d'avoir une signification. Il est représenté par un rectangle dont le coin supérieur gauche contient un pentagone. Dans le pentagone figure le type du fragment : appelé opérateurd’interaction. Lasignification du fragment composé dépend fortement de l'opérateur d'interaction utilisé Fragmentcomposé Opérandes Opérateur Les composants d’un diagramme de séquence Boîte noire : Les Fragments OBJ: 28
  • 29.  Le fragment « alt » L’opérateur alt désigne un choix ou une alternative: équivalent à SI … ALORS … SINON … L’utilisation de l’opérateur else permet d’indiquer que la branche est exécutée si la condition du alt est fausse. Une seule des deux branches sera réalisée dans un scénario donné condition Condition inversée (solde >=0) Accepter () Refuser () Les composants d’un diagramme de séquence Boîte noire : Les Fragments OBJ1: alt [else] [solde <0] OBJ2:  Le fragment «opt » L’opérateur opt désigne un choix de comportement où:  Soit l’opérande seule s’exécute  Soit rien ne s’exécute Il est équivalent à SI … ALORS … il est équivalent à un « alt » sans [else] condition OBJ1: opt [Erreur] OBJ2: Afficher commentaire() 29
  • 30.  Le fragment « Par » L’opérateur par est utilisé pour représenter des interactions qui se réalisent en parallèle. Un fragments combiné de type parallèle, ou par, possède au moins deux sous-fragments exécutés simultanément. La concurrence est logique et n’est pas nécessairement physique : les exécutions concurrentes peuvent s’entrelacer sur un même chemin d’exécution dans la pratique. Montant de la commande calculé et mise à jour Calcul montant() Update (qté) Les composants d’un diagramme de séquence Boîte noire : Les Fragments OBJ1: par OBJ2:  Le fragment «ref» L’opérateur ref est utilisé pour indiquer une référence vers un autre diagramme de séquence existant. Il peut être considéré comme un pointeur ou un raccourci vers un autre diagramme de séquence. Son rôle est de factoriser des parties de comportement utilisés dans plusieurs scénarios. Qté commandée mise à jour OBJ1: OBJ2: ref S’authentifier Lire (fichier) 30
  • 31.  Le fragment « loop » L’opérateur loop est utilisé pour décrire un ensemble d’interaction qui s’exécute enboucle. La condition spécifiée entre crochets indique la condition pour rester dans la boucle. Si la condition n’est plus satisfaite, alors la boucle estquittée. On peut spécifier le nombre de répétition exacte ou l’intervalle de répétition de l’exécution de la boucle entre parenthèses. Les composants d’un diagramme de séquence Boîte noire : Les Fragments Condition OBJ1: Loop (2,5) OBJ2: Lire(fichier) Laboucle s’exécute min 2 d’exécution fois et max 5fois OBJ1: loop(10) OBJ2: Lire(fichier) [taille<60] OBJ1: loop OBJ2: Lire(fichier) 31
  • 32.  Le fragment « break »  L' interruption de l' opérateur d'interaction représente un scénario de rupture ou exceptionnel qui est effectué à la place du reste du fragment d'interaction englobant.  Un opérateur de coupure avec garde est choisi lorsque la garde est vraie. Dans ce cas, le reste du fragment d'interaction englobant directement est ignoré. Lorsque la garde de l'opérande break est fausse, l'opérande break est ignoré et le reste du fragment d'interaction englobant se poursuit. Les composants d’un diagramme de séquence Boîte noire : Les Fragments OBJ1: break OBJ2: Lire(fichier) condition 32
  • 33.  Le fragment «strict»  L' interruption de l' opérateur d'interaction représente un scénario de rupture ou exceptionnel qui est effectué à la place du reste du fragment d'interaction englobant.  Un opérateur de coupure avec garde est choisi lorsque la garde est vraie. Dans ce cas, le reste du fragment d'interaction englobant directement est ignoré. Lorsque la garde de l'opérande break est fausse, l'opérande break est ignoré et le reste du fragment d'interaction englobant se poursuit. Les composants d’un diagramme de séquence Boîte noire : Les Fragments OBJ1: strict OBJ2: Lire(fichier)  Le fragment «critique»  L'opérateur d'interaction critique définit que le fragment combiné représente une région critique . Une région critique est une région avec des traces qui ne peuvent pas être entrelacées par d'autres spécifications d'occurrence (sur les lignes de vie couvertes par la région). Cela signifie que la région est traitée atomiquement par le fragment englobant et ne peut pas être entrelacée, par exemple par un opérateur parallèle. OBJ1: critical OBJ2: Lire(fichier) 33
  • 34.  Le fragment «Ignore»  L'opérateur « Ignore » ( indique qu'il existe des messages qui peuvent ne pas être présents dans le fragment combiné Ce sont des messages facultatifs. Les composants d’un diagramme de séquence Boîte noire : Les Fragments  Le fragment «Assert» ■ L'opérateur « Assertion », noté « assert », indique que : – La séquence décrite dans l'opérande représente l'unique séquence possible. – Toutes les autres séquences sont considérées comme invalides. 34
  • 35. . Les composants d’un diagramme de séquence Boîte noire : Les Fragments Fragments emboités Site E-book: loop Chercherdanscatalogue :client Résultat de larecherche opt opt Consulter description du livre Ajouter aupanier S’authentifier ref Tant que le client est sur la page de consultation du catalogue S’il choisit d’ajouter le livre au panier, alors il doit commencer par s’authentifier pour se connecter à son compte Il peut choisir de consulter la description d’un livre 35
  • 36. . Les composants d’un diagramme de séquence Boîte noire : Note et package Site E-book: loop Chercherdanscatalogue :client Résultat de larecherche opt opt Consulter description du livre Ajouter aupanier S’authentifier ref Fragment de référence Note 36
  • 37. C : Définition des besoins : Diagramme de classe d’analyse Phase d’analyse  Présentation des classes et des Objets.  Les élément de diagramme de classe. • Classe : Attributs et opérations • Encapsulation • Associations : Association et Rôle • Multiplicité • Association Multiple • Association Réflexive • Classe d'Association • Association n-aire • Relation d'Agrégation • Relation de Composition • Agrégation vs Composition • Relation d'Héritage : Généralisation/spécialisation simple & multiple • Polymorphisme • Héritage et Classes Abstraites • Interface • Contraint • Note • package 37
  • 38. Présentation des classes et des Objets La vue logique a pour but d’identifier les éléments du domaine, les relations et interactions entre ces éléments. Elle les identifie selon deux aspects: dynamique et statique. Axe de modélisation statique: pas de facteur temporel Le système est composé d’objets qui interagissent entre eux et avec les acteurs pour réaliser les cas d’utilisation. Le diagramme de Classe permet de fournir une représentationabstraitede cesobjets. Le diagramme de Classe montre lastructureinternedu système. En phase d’analyse, il a pour objectif de décrire la structure des entités manipulées par les utilisateurs En phase de conception, il représente la structure d’un code orienté objet, ou a un niveau de détail plus important, les modules du langage de développement. Objets nécessaires à la réalisation de ce cas d’utilisation 38
  • 39. Présentation des classes et des Objets Les Composants d’une classe: La Classe est un concept Abstrait qui permet de représenter toutes les entités d’un système. Elle est définie par son nom, ses attributs et ses opérations comme suit : Un attribut est une propriété de classe intéressante pour l’analyste. Les attributs correspondent à des variables associées aux objets de la classe. Une opération est un service rendu par la classe. Les opérations correspondant à des fonctions associées aux objets de la classe. + Créer() + Calcul_Montant():float Commande -Numero : int -DateCom : Date {<=DateAujourd’hui} -Montant : float =0 Analyse Conception Créer() Calcul_Montant() Commande Numero DateCom Montant 39
  • 40. Présentation des classes et des Objets  Classe et Objet : Une classe représente la description abstraite d’un ensemble d’objets possédant les mêmes caractéristiques. On parle également de type. Un objet est une entité possédant une identité et encapsulant un état et un comportement. Un objet est une instance d’une classe. La classe est le modèle, l’objet est sa réalisation.  Représentation UML :  Exemple: ou NomClasse [Attributs] [Opérations] Nom Objet : Classe :Classe Représentation d’une classe Représentation d’un objet Objet Facture Instance qui a un Numéro =1 ClasseFacture Entité Abstraite avec l’attribut Numéro 40 Classvide
  • 41. Les élément de diagramme de classe : Attributs et opérations:  Syntaxe : de déclaration des attributs d’une Classe: Visibilité [/] nomAttribut : Type [ [la multiplicite] ] [ {contrainte} ][ = ValeurParDefaut ] 41  la multiplicité , contraint et valeur par defaut La multiplicité Contraint Valeur par défaut Attribut Calcule
  • 42. Les élément de diagramme de classe : Attributs et opérations:  Syntaxe : de déclaration des opérations d’une Classe: Visibilité nomOperation ( [param1, ... , paramN] ) : [typeRetour] [{propriétés}] Syntaxe : de déclaration des parametres d’unr opération: [<direction>] <nom_paramètre> : <type> ['['<multiplicité>']'] [= <valeur_par_défaut>] (<direction> : Optionnel, indique la direction du paramètre (par exemple, in, out, ou inout). ) 42 {propriétés}: Explication {readOnly} La valeur de l’attribut ne peut plus être modifiée une fois initialisée. {ordered} Pour les attributs de type collection. C’est pour préciser si les valeurs sont ordonnées. {list} Semblable à {ordered}, mais précise si les valeurs ne sont pas ordonnées (par défaut). {unique} Aucun doublon dans les valeurs de la collection. {not null} L’attribut doit à tout prix être initialisé. {query} Appliqué sur une méthode si son code ne modifie nullement l’état de l’objet (aucun de ses attributs).
  • 43. Les élément de diagramme de classe : Visibilité:  Visibilité : les modificateurs d’accès permettent de définir la visibilité : - : privée : visible seulement par laclasse elle-même + : public : visible par toutes les autresclasses # : protégé: visible seulement par la classe elle-même et ses classes filles ~ : package: seul un élément déclaré dans le même paquetage peut voir l’élément 43
  • 44. 44 Les élément de diagramme de classe : Encapsulation: • Rendre les attributs d’une classe privés. • Pour accéder aux attributs privées en utilise les modificateur et les accesseurs. • Les modificateur se sont des méthode public qui permet de modifier la valeur de l’attribut d’une manier indirect. • Les accesseurs se sont des méthode public qui permet de retourner la valeur d’un attribut prive d’une façon indirect
  • 45. Les élément de diagramme de classe : Attributs et méthodes statique (de classe): 45 • Une classe peut contenir des attributs et des méthodes qui lui sont propres, auxquels on peut accéder sans nécessairement instancier des objets. • Un attribut de classe n’appartient pas à un objet en particulier, mais à toute la classe (il n’est pas instancié avec l’objet). • Il garde une valeur unique et partagée par toutes les instances de la classe. • Une méthode de classe ne peut manipuler que des attributs statiques et ses propres paramètres. • Graphiquement, un attribut ou une méthode de classe est représenté par un nom souligné.
  • 46. Les élément de diagramme de classe : Constructeurs et destructeurs): 46 Les stéréotypes peuvent être utilisés pour identifier des opérations particulières, telles que : • Les constructeurs : stéréotype « create ». • Le destructeur : stéréotype « destroy ». Dans UML, les constructeurs et les destructeurs sont des méthodes spéciales qui portent le même nom que la classe (formalisme Java).
  • 47. Les élément de diagramme de classe : Relation de dépendance 47 Une dépendance entre deux classes autorise simplement une classe à utiliser des objets d'une autre classe. • Une classe utilise un objet d'une autre classe comme argument dans la signature d'une méthode. • Un objet de l'autre classe est créé à l'intérieur de la méthode. • Dans les deux cas, la durée de vie de l'objet est très courte, elle correspond à la durée d'exécution de la méthode. Exemple :
  • 48. Les élément de diagramme de classe : Association et Rôle Une association est une relation statique entre plusieurs classes.  Elle représente une relation possible entre les objets des classes. On peut donner à une classe un rôle dans une association. Un rôle précise la signification de l’entité à proximité du rôle dans l’association employé employeur Nom de l ’association Commence par Majuscule Personne Nom : String Prénom : String Salaire() : float Entreprise Raison sociale : String Chiffre_d_affaire() : float Travailler pour Rôle de Entreprise dans l’association Rôle de Personne dans l’association 48 Sens de lecture
  • 49. Les élément de diagramme de classe : Multiplicité La multiplicité spécifie l’ensemble des cardinalités possibles (parmi les entiers naturels) sur un rôle. Les multiplicités permettent de contraindre le nombre d’objets intervenant dans les instanciations des associations. On en place de chaque côté des associations. Une multiplicité d’un côté spécifie combien d’objets de la classe du côté considéré sont associés à un objet donné de la classe de l’autre côté. Personne * Nom : String Prénom : String Salaire() : float Entreprise Raison sociale : String Chiffre_d_affaire() : float 1 Travailler pour Une Entreprise fait travailler 0 ou plusieurs personnes Une personne travaille pour une seule Entreprise 49
  • 50. Les élément de diagramme de classe: Multiplicité On peut préciser :  Un intervalle (min . . max) : 2 . . 5  de 2 à5 0 . . 1  0 ou 1  Une liste de valeurs (val1, val2, …) : 2,5,7  2 ou 5 ou 7  Ne pas borner supérieurement (*) : 1. . *  au moins 1 0 ..* ou *  0 ou plusieurs  1 .. 5 : s’interprète : « à un objet donné de la classe Article, on doit associer au minimum 1 objet de la classe Catégorie et on peut en associer au maximum 5 »,  * : s’interprète : « à un objet donné de la classe Catégorie, on peut associer 0 ou plusieurs objets de la classeArticle » Article Catégorie appartient * 1..5 50
  • 51. Lorsqu’on a une classe dont les instances peuvent être redondants (c-à-d la même instance qui participe plusieurs fois à une association), alors créer différentes associations entre les classes, chacune affectée d’un rôle différent avec une multiplicité égale à 1 exactement. Lerôle ici est très utile puisque la même association concerne les mêmesclasses  Exemple: Le même aéroport peut jouer le rôle d’un aéroport de départ pour un vol et un aéroport d’arrivée pour un autre. Rôle joué par la classe Aéroport dans l’association Multiplicité de la classeAéroport = 1 1 Départ 1 Arrivée 0..* Les élément de diagramme de classe : Association Multiple VOL Aéroport Nom Dessert dateDepart dateArrivée OuvrirReservation() Dessert 0..* Personne Nom : String Prénom : String Naissance : Date Appartement Adresse : String Pièces : int Loyer : float * * 1 * Loue Propose Plusieurs association entre deux classe 51
  • 52. Les élément de diagramme de classe : Association Réflexive C’est une association entre une classe donnée et elle-même. patron Employé Nom : String Prénom : String Grade: String ouvrier 0..1 * Dirige 2 crée Enfant Employé Nom : String Prénom : String Grade: String Femme 1 1 Dirige * parent Homme 52
  • 53. Les élément de diagramme de classe: Classe d'Association  Une association peut parfois avoir des propriétés. Dans ce cas, ces propriétés sont encapsulées dans une classe nommée classe d’association.  Une classe d’association est représentée par un trait discontinu qui relie la classe avec l’association qu’elle caractérise.  Généralement, une association de cardinalité plusieurs à plusieurs est une classe d’association.  On veut caractériser chaque personne travaillant dans une société par ses grades et sessalaires.  Lasociété emploie plusieurs personnes avec des grades et des salaires différents.  Une personne peut avoir plusieurs grades et salaires dans la société.  les attributs grade et salaire n’appartiennent ni à la classe Société ni àla classe Personne Classe 1 Classe 2 Classe d’association Société Nom Adresse Personne Nom Adresse Grade Salaire Emploi Grade Salaire 0..1 * 53
  • 54. Les élément de diagramme de classe: Classe d'Association  Chaque Vol peut avoir plusieurs Aéroport servant d’escales et chaque Aéroport peut servir d’escale pour plusieurs vols. Lesinformations sur les escales sont des attributs d’associations qui caractérisent la classed’association. InfosEscale heureDepart heureArrivée /Durée Vol dateDepart dateArrivée heureDepart heureArrivée OuvrirReservation() Aéroport Nom Escale Arrivée Départ 1 1 0..* 0..* 0..* 0..* dessert dessert Association concernée Classe d’association Attributs d’association 54
  • 55. Les élément de diagramme de classe : Classe d'Association  Lors de la conception, une classe-association peut être remplacée par une classe intermédiaire. Exemple Un étudiant peut réaliser plusieurs travaux Un travail est réalisé par un ou plusieurs étudiants Pour chaque travail réalisé pour chaque étudiant, on lui attribue une note LigneDeCommande Quantité 0..1 Analyse Conception Etudiant Travail Réalise Evaluation Note 1..* 0..* Article Commande Réalise LigneDeCommande 1..* 0..* Article Commande Quantité 0..1 55
  • 56. Les élément de diagramme de classe: Association n-aire  Les associations ont souvent une arité binaire: deux classes en relation.  Association n-aire : relie plus de deux classes.  Représentée par un losange.  Vaut mieux limiter leurs utilisations. Etudiant Enseignant 1 2..* 2..* Début Fin Evaluation Salle 1 Cours « Association ternaire » Cours Enseignant Salle Etudiant Début Fin 1 1 1 1 1 56
  • 57. Les élément de diagramme de classe : Relation d'Agrégation C’est un cas particulier d’une association qui exprime la contenance N’a pas besoin d’être nommée (elle signifie « contient », « est composé de ») Un élément peut appartenir à plusieurs agrégats (agrégation partagée) La destruction de l’agrégat n’entraine pas la destruction de tous ses éléments  Une agrégation peut exprimer : Qu’une classe « élément » fait partie d’une autre « agrégat » Un changement d’état d’une classe entraine un changement d’état d’une autre. Une action sur une classe entraine une action sur une autre Représentation de l’agrégation en UML Agrégat 1..* 0..* Elément 57
  • 58. Les élément de diagramme de classe : Relation de Composition C’est une relation qui exprime une agrégation plus forte. Un élément ne peut appartenir qu’à un seul agrégat composite (agrégation non partagée) La destruction de l’agrégat composite entraine la destruction de tous ses éléments. (le composite est responsable du cycle de vie des composants) Les objets composants sont des instances de la classe composite. . Représentation de la composition en UML Composite 1 0..* Composan t 58
  • 59. Les élément de diagramme de classe: Agrégation vs Composition Email T exte Titre Destinataire 1 1..*  Un email peut contenir un titre, du texte et des destinataire  Titre, Texte et Destinataire sont des classes qui peuvent constituer un email.  Titre, Texte et Destinataire peuvent être partagés entre plusieurs emails  La destruction de l’email n’entraine pas la destruction de tous ses éléments  Une voiture doit contenir des sièges,4 roues et 1 moteur.  Siège, Roue et Moteur sont des classes qui constituent une voiture.  Siège, Roue et Moteur ne sont pas partagés entre plusieurs voitures  La destruction de la voiture entraine la destruction de tous ses éléments Agrégation Composition 1..* 0..* 1..* 1..* Voiture Roue Siège Moteur 2..9 1 1 4 1 1 59
  • 60. Les élément de diagramme de classe : Agrégation vs Composition  Exemple:  Un livre est composé d’une ou plusieurs pages et d’une couverture. Livre Page Couverture Agrégation : ici, on indique qu’un livre peut être constitué d’une couverture. Composition: ici, on exprime que les pages sont physiquement contenues dans le livre. 1..* 1 1 1 60
  • 61.  Les élément de diagramme de classe ; Relation d'Héritage :  L’association de généralisation définit une relation de classification entre une classe plus générale et une classe plus spécifique.  La classe spécifique contient par héritage tous les attributs, les opérations et les relations de la classe générale et peut en contenir d’autres. Une hiérarchie d’héritage ne doit pas contenir de cycle. Non réflexive : une classe ne peut pas dériver d’elle-même. Non symétrique : si B dérive de A alors A ne peut pas dériver de B. Représentation de l’héritage en UML Classe Fille Classe Mère 61
  • 62. Les élément de diagramme de classe : Relation d'Héritage : Généralisation/spécialisation simple & multiple L’association de généralisation définit une relation de classification entre une classe plus générale et une classe plus spécifique. La classe spécifique contient par héritage tous les attributs, les opérations et les relations de la classe générale et peut en contenir d’autres. Employé Généralisation Spécialisation Héritage simple Une classe mère et plusieurs classes filles Héritage multiple Plusieurs classes mères et une classe fille Directeur Ingénieur Personne Enseignant Chercheu r Enseignant -Chercheur 62
  • 63. 63 Les élément de diagramme de classe : Polymorphisme 63 • Le polymorphisme est le concept qui consiste à fournir une seule interface à différents types d’entités. • Polymorphisme statique de surcharge (Overloading); des méthodes de même nom dans des classes différentes ou dans la même classe, avec des signatures différentes • Signatures signifie des nombres , des types d’arguments et type de retour d’une fonction de même nom • Polymorphisme dynamique d’héritage (redéfinition ou Overriding): des méthodes de même noms et de mêmes signatures dans deux classes différentes de la même hiérarchie. • La méthode de la classe est appelée en priorité • Forcer l’appel de la méthode de la classe mère (super) • Forcer l’accés aux membres de la classe actuelle (this)
  • 64. 64 Les élément de diagramme de classe : Polymorphisme 64 - Surcharge : l’appel de la méthode se fait selon la signature correspondante - Redéfinition : l’appel de la méthode se fait selon l’objet qui fait appel
  • 65. Les élément de diagramme de classe : Héritage et Classes Abstraites Une classe abstraite est une classe qui ne peut pas être directement instanciée. Son objectif est de factoriser des propriétés communes à plusieurs sous-classes. Lorsqu’une classe possède une seule spécialisation, alors elle ne doit pas être abstraite. «Abstract» Moyen de transport -vitesse max -modèle - nbre voiles Bateau • Une pure abstraction • Ne s’instancie qu’à travers ses filles - altitude Avion - cylindré Voiture 65
  • 66. 66 Les élément de diagramme de classe : Abstraction La classe Abstraite ne peut plus être instanciée avec new. Il ne pourra donc jamais exister en mémoire un objet dont le type dynamique soit cette classe.
  • 67. Les élément de diagramme de classe : interface 67 • une interface est un type qui regroupe un ensemble de méthodes abstraites dont on ne donne que la signature (sans code). • Une interface s'écrit comme une classe, mais au moyen du mot clé interface en lieu et place du mot clé class. • Implémentés une classe.
  • 68. Les élément de diagramme de classe : Contraintes Ce sont des relations sémantiques définies sur une relation ou sur un groupe de relations. Elles permettent de restreindre le nombre d’instances visées. Elles peuvent s’exprimer: graphiquement par { texte } en langage naturel en langage OCL (Object Constraint Language) Elles sont de deux types: Prédéfinie : un standard d’UML Non prédéfinie 68
  • 69.  Elle est définie sur un rôle et spécifie qu’une relation d’ordre décrit les objets de la collection. Vol dateDepart dateArrivée heureDepart heureArrivée OuvrirReservation() Aéroport nom Départ 1 On met l’accent sur l’importance de l’ordre des aéroports qui jouent le rôle d’escale dans un vol Personne Pays {ordonné} Désire visiter Les élément de diagramme de classe d'analyse : Contrainte{ordonné} * * {ordonné} Arrivée 1 Escale 0..* 0..* 0..* 0..* 69
  • 70.  Elle indique qu’une collection est un sous ensemble (est inclus) d’une autre Lacapitale d’un pays est forcément l’une de ses villes. Pays Ville 1..* Président Membre Chapitre 3 Diagramme de Classe Les élément de diagramme de classe Contrainte{sous-ensemble}ou {inclusion} {sous-ensemble} capitale 1..* 1 1..* Le président est également un membre du comité. Pays Ville 1 {inclus} 0..* 2..* 0..* 70
  • 71.  Elle indique que tous les objets d’une classe peuvent participer à l’une des deux associations mais pas aux deux à la fois. Les personnes qui jouent le rôle d’étudiant ne peuvent pas jouer le rôle d’enseignant dans la même université, et inversement. une personne est soit enseignant soit étudiant au sein de la même université Université Personne 0..1 1..* * enseignant Compte Personne Morale 0..* { XOR} 0..* Un compte bancaire appartient soit à une personne physique soit à une personne morale, mais pas les deux. étudiant { XOR} 1 Les élément de diagramme de classe : Contrainte{XOR} Personne Physique 1 1..* 71
  • 72.  Elle indique que toutes les instances d’une classe participent au moins à une association  Remarques :  Il existe plusieurs autres contraintes prédéfinies, tels que :  {unique} : l’attribut a une valeur unique dont tous les objets ne doivent pas la partager avec lui, une clé primaire est obligatoirement {unique}.  {addOnly} : le nombre d’objet ne peut qu’augmenter.  Certaines ne sont plus un standard UML tel que {frozen}.  Le langage OCL permet de décrire les contraintes de manière plus précise => un. Personne Logement 0..1 1 0..* { totalité} Toutes les instances de Personne et de Logement participent Toutes au moins à l’une des associations « loue » ou « possède ». Les élément de diagramme de classe : Contrainte{totalité} * possède loue 72
  • 73. Directeur∩Ingénieur=ᴓ Etudiant ∩ Salarié ≠ ᴓ EngraisnaturelᴜProduitindustriel=Produit Les élément de diagramme de classe : Contraintes d’héritage {disjoint},{chevauché},{complet} {Disjoint} : tout objet est au plus une instance d’une sous-classe. {Chevauché} : Une instance de l’une des spécialisations peut être simultanément une instance {Complet} : indique que la généralisation est terminée (il n’est pas possible d’ajouter d’autres sous- classes). Employé Directeur Ingénieur Personne Etudiant Salarié Produit Engrais naturel Produit industriel {complet} {chevauché} {disjoint} 73
  • 74.  UML permet de spécifier explicitement des contraintes particulières sur des éléments du modèle.  Certaines contraintes sont propres au système à modéliser. Contrainte sur attribut: Solde doit être positif Compte - Solde : float Compte - Solde : float {solde >0} Conscrit {Personne.dateNaissance<1/1/1996} Contrainte sur association: Seules les personnes dont la date de naissance < 1/1/1996, peuvent être conscrit. Les élément de diagramme de classe: Contraintes nonprédéfinies {solde>0} Année Personne dateNaissance 74
  • 75. ■ Une note est un commentaire exprimé dans un format libre, afin de faciliter la compréhension du diagramme. ■ Les traits discontinus permettent de relier n’importe quel élément à une note. Les élément de diagramme de classe: Note deux clients de la banque Philippe Didier : Compte courant : Assurance vie : Compte courant NOTE 75
  • 76. ■ Un package est un regroupement d'éléments du modèle. ■ Il peut comporter plusieurs types d’entités (classes, associations, package). ■ Un élément du modèle, et plus particulièrement une classe peut être représentée plusieurs fois dans un modèle. Il est alors bon d’indiquer le package d’appartenance d’une classe comme suit : NomPackage : : NomClasse ■ Le nom d’une classe est unique dans un package. Par contre il est possible d’avoir deux classes de même nom dans des packages différents. ■ Le système entier peut être vu comme un package unique de haut niveau contenant tout le reste. On peut aussi représenter les dépendances entre packages. Les élément de diagramme de classe: Package Facturation Client Commande Facturation : : Facture Produit Société Client 1 1 1 1 * * acheter concerner 76
  • 77. C : Diagramme de séquence de conception (Boite Blanche) Phase de conception  Phase de conception  Présentation de diagramme de séquence (boite blanche).  Les élément de diagramme de séquence. • STÉRÉOTYPES Boundary • STÉRÉOTYPES Control • STÉRÉOTYPES Entity • Les acteur et les objets • Opérations • Création objet • Destruction objet 77
  • 78. Présentation de diagramme de séquence (boite blanche).  Un diagramme de séquence boite blanche est un diagramme de séquence qui dévoile les composants du système représenté avant dans un diagramme de séquence boite noire. Le système boite blanche se compose des objets présentatifs, logiques et métiers (classes d’analyse).  Les principales informations contenues dans un diagramme de séquence boite blanche sont les messages échangé entre les lignes de vie des acteurs principaux, acteurs secondaires et classes d’analyse qui composent le système présentes dans un ordre chronologique. Ainsi, contrairement au diagramme de communication, le temps y est représenté explicitement par une dimension (la dimension verticale) et s’écoule de haut en bas. Utilisation en phase de conception  Objectif : Description de la réalisation d'un cas d'utilisation sur le système décrit par le diagramme de classes  Problème :  Communication entre les acteurs et le système vu comme un ensemble d'objets Communication entre acteurs et système via une interface (texte, web, physique...) Éléments du diagramme de séquence :  Acteurs  Objets (instances)  Messages (cas d'utilisation, appels d’opération) Principes de base : Représentation graphique de la chronologie des échanges de messages avec le système ou au sein du système  « Vie » de chaque entité représentée verticalement  Échanges de messages représentés horizontalement 78
  • 79. Les élément de diagramme de séquence Boite blanche: :Système creerFormation( ) :Acteur Système vue comme une Boite noire Objets à l’intérieur du système (Boite blanche) Passage de l’analyse à la conception Objet: creerFormation( ) :Acteur Objet: STÉRÉOTYPES DE JACOBSON: À l’intérieur du système, Jacobson distingue les trois stéréotypes suivants :  <<boundary>> : classes qui servent à modéliser les interactions entre le système et ses acteurs  <<control>> : classes utilisées pour représenter la coordination, l’enchaînement et le contrôle d’autres objets, elles sont en général reliées à un cas d’utilisation particulier ;  <<entity>> : classes qui servent à modéliser des informations durables et souvent persistantes 79
  • 80. Les élément de diagramme de séquence Boite blanche:  les opérations : un message ne peut être reçu par un objet que si sa classe a déclaré l’opération publique correspondante ;  La création d’objet: désigne par l’opération <<create>> ou bien create().  La destruction d’objet: désigne par l’opération <<destroy>> ou bien destroy().  Pour communiquer avec les objets d’un système c’est nécessaire de passer par une interface comme une application.  la navigabilité des associations : ou les dépendances entre classes, suivant que les liens entre objets sont durables ou temporaires, et en fonction du sens de circulation des messages. 80
  • 81. Les élément de diagramme de séquence Boite blanche: Nous utiliserons ces trois stéréotypes (avec leurs symboles graphiques associés, dans les diagrammes de séquence) pour montrer graphiquement comment un message émis par un acteur traverse les couches présentation, application et métier. 81
  • 82. Les élément de diagramme de séquence Boite blanche: 82
  • 83. Les élément de diagramme de séquence Boite blanche: Exemple 1 83 Certaines interactions ne sont pas représentées ou mal représentées : • Saisie non valide du login et mot de passe au niveau de l’interface graphique de connexion. • Login et mot de passe valides mais introuvables dans la table des clients. • La page de connexion est remplacée par la page d’accueil.
  • 84. Les élément de diagramme de séquence Boite blanche: Exemple 2 84
  • 85. Les élément de diagramme de séquence Boite blanche: Exemple 3 85
  • 86. D : Diagramme d’Activité Phase de conception  Le diagramme d’activité.  Les éléments de diagramme  Démarrage  Fin  Action  Transition  Condition 86
  • 87. 87 • Le diagramme d'activité peut remplacer la description textuelle d’un CU complexe dans la mesure où ce diagramme permet de représenter tous les scénarios d’exécution du CU. • Un diagramme d’activité est une formalisation graphique des actions qui sont réalisées dans un cas d’utilisation. • Le diagramme est donc organisé en actions réalisées soit par un acteur, soit par le système, relié par une flèche indiquant l’enchaînement des actions. • Les actions sont les unités de base du comportement du système. Une action est une étape dans une activité qui ne peut plus être décomposée. • L'exécution d'une action représente une transformation ou un traitement dans le système modélisé. • Une activité représente un comportement constitué d'éléments qui sont des actions. Diagramme d’Activité
  • 88. 88 Diagramme d’Activité : Les éléments de diagramme
  • 89. E : Diagramme Etat Transition Phase de conception  Le diagramme Etat Transition.  Les éléments de diagramme 89
  • 90. 90 Diagramme Etat Transition En UML, le diagramme d’états (state machine diagram) permet de modéliser avec précision des comportements et les cycles de vie complexes d’un objet et ce dès l’analyse. Le diagramme d'états-transitions (ou simplement d’états) permet de décrire les changements d'états d'un objet (ou d'un composant ou d’un système pris dans son ensemble), en réponse à des évènements. Certaines classes du modèle statique requièrent un diagramme d’états pour comprendre son comportement dynamique complexe. On prend par exemple l’objet « panier » pour étudier son cycle de vie
  • 91. 91 Diagramme Etat Transition L’objet qui nous intéresse c’est le panier. Éléments déclencheurs de l’état États de l’objet  Le panier peut être créé par un client inscrit Créé  le panier devient susceptible à une opération d’achat probable En attente  Lorsqu’il ajoute un produit ou retire un produit, le panier devient modifié. Modifié  Lorsqu’il vide le panier, il devient vidé Vidé  Lorsque le client parcourt les produits du panier, il est consulté Consulté  Lorsque le client valide les produits du panier, il est validé Validé  Lorsque le client procède au paiement en ligne, le panier est payé Payé  Lorsqu’une facture est envoyée au client, il devient facturé. Facturé  Lorsque le client annule le panier, alors celui-ci est détruit. Détruit
  • 92. 92 Diagramme Etat Transition Un état représente une situation durant le vie d’un objet pendant laquelle :  il exécute une certaine activité  ou bien, il attend un certain événement. Un objet passe par une succession d’états durant son existence. Un état a une durée finie. L’état initial est l’état dans lequel l’objet se trouve lors de sa création. L’état final correspond à la destruction de l’objet. Un diagramme d’états a toujours un et un seul état initial. Il peut n’avoir aucun état final ou plusieurs. Après sa création, un objet passe par une série d’états « normaux ».
  • 93. 93 Diagramme Etat Transition Une transition décrit la réponse d’un objet lorsqu’un événement se produit provoquant le passage de l’objet d’un état (état source) dans un autre (état cible) La transition est représentée par une flèche orientée de l’état source vers l’état cible. L'événement qui détermine le franchissement de la transition est indiqué sous forme de texte. Si aucun événement n'est spécifié, alors il s’agit d’une transition automatique. Une transition n’a pas de durée, elle est franchie instantanément (on dit qu’elle est déclenchée).