[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
19 vues95 pages

Conception Partie1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 95

21/09/2024

Cours conception des


systèmes d’information
Analyse et Conception de Systèmes Informatiques Orientés objets en UML

Enseignant du cours: Mariem Gzara


Filière : Licence en Génie Logiciel et Système d’Information
Niveau : 2ème année
Année universitaire : 2023-2024

L2GLSI-ISIMM-23/24-M.GZARA 1

Chapitre : Diagramme de
cas d’utilisation
Système - cas d’utilisation-acteur-
association-description textuelle-
diagramme de séquence analyse

L2GLSI-ISIMM-23/24-M.GZARA 2

2
21/09/2024

Diagramme de cas d’utilisation


› Le diagramme des cas d'utilisation (Use Case Diagram)
constitue la première étape de l’analyse UML en :
– Modélisant les besoins des utilisateurs.
– Identifiant les grandes fonctionnalités et les limites du système.
– Représentant les interactions entre le système et ses
utilisateurs.

☞ Décrire le système de façon très abstraite


☞ Une vue fonctionnelle
☞ Très simples

L2GLSI-ISIMM-23/24-M.GZARA 3

Diagramme de cas d’utilisation


› Comprend:
– Les acteurs
– Le système
– Les cas d’utilisation

L2GLSI-ISIMM-23/24-M.GZARA 4

4
21/09/2024

Acteurs
› Un acteur est un utilisateur externe au système :
– Une personne.
– Du matériel (capteurs, moteurs, relais…).
– Un autre système
› Notation:
– Petit bonhomme avec son nom (i.e son rôle) inscrit dessous
– Un classeur stéréotype <<actor>>

Quelquefois, nous utilisons :


- Le stick man si l’acteur est humain
- Le classeur si l’acteur est du matériel ou un autreL2GLSI-ISIMM-23/24-M.GZARA
système 5

Acteurs
› Type acteurs :
– Acteur primaire (principal) « primary » : acteur déclenchant le
cas
– Acteur secondaire « secondary » : acteur sollicité par le cas
› Les matériels extérieurs sauf la machine où se trouve l’application (tels
que distributeur de billets).
› Les autres systèmes tels que par exemple le réseau des cartes bancaires
– Notation :
› Le stéréotype << primary >> vient orner l'association reliant un cas
d'utilisation à son acteur principal
› Le stéréotype << secondary >> est utilisé pour les acteurs secondaires

L2GLSI-ISIMM-23/24-M.GZARA 6

6
21/09/2024

Etude de cas : station-service de distribution


d'essence
› Les clients se servent de l'essence
› Le pompiste remplit les cuves.
› Question 1: Le client se sert de l'essence de la façon suivante : il prend un pistolet
accroché à une pompe et appuie sur la gâchette pour prendre de l'essence. Qui est
l'acteur du système le client, le pistolet ou la gâchette ?
› Question 2: Ahmed est pompiste à la station et peut se servir de l'essence pour sa
voiture. Pour modéliser cette activité d’Ahmed, doit-on définir un nouvel acteur ?
Comment modélise-t-on ça ?
› Question 3: Lorsqu’Ahmed vient avec son camion-citerne pour remplir les réservoirs des
pompes, est-il considéré comme un nouvel acteur ? Comment modélise-t-on cela ?
› Question 4: Certains pompistes sont aussi qualifiés pour opérer des opérations de
maintenance en plus des opérations habituelles des pompistes telles que le remplissage
des réservoirs. Ils sont donc réparateurs en plus d'être pompistes. Comment modéliser
cela ?
L2GLSI-ISIMM-23/24-M.GZARA 7

Etude de cas : station-service de distribution


d'essence
› Réponse 1: C'est le client. Un acteur est toujours
extérieur au système. Définir les acteurs d'un système,
c'est aussi en définir les bornes (les limites) du système.
› Réponse 2: Ahmed est ici considéré comme un client.
Pour définir les acteurs, il faut raisonner en termes de
rôles.

L2GLSI-ISIMM-23/24-M.GZARA 8

8
21/09/2024

Etude de cas : station-service de distribution


d'essence
› Réponse 3:

› Réponse 4:
L2GLSI-ISIMM-23/24-M.GZARA 9

Cas d’utilisation
› Le cas d’utilisation représente une fonctionnalité du système
(visible de l’extérieur du système).
› Notation UML:
– Une ellipse contenant le nom du cas d’utilisation (phrase commençant
par un verbe à l’infinitif)
– Optionnellement, un stéréotype au dessus du nom.

– Ou, un classeur stéréotypé << use case >> dans le cas


de présenter les attributs ou les opérations du cas d'utilisation

L2GLSI-ISIMM-23/24-M.GZARA 10

10
21/09/2024

Représentation du diagramme de cas


d’utilisation

› La frontière du système est représentée par un cadre.


› Le nom du système figure à l'intérieur du cadre, en haut.
› Les acteurs sont à l'extérieur
› Les cas d'utilisation à l'intérieur. L2GLSI-ISIMM-23/24-M.GZARA 11

11

Associations
› Association :
– Relation entre acteurs et cas d'utilisation (relation de communication)
– Représente la possibilité pour l'acteur de déclencher le cas
– Multiplicité:
› Lorsqu’un acteur peut interagir plusieurs fois avec un cas d’utilisation, il est
possible d’ajouter une multiplicité sur l’association du côté du cas
d’utilisation.
› Préciser une multiplicité sur une relation n’implique pas nécessairement que
les cas sont utilisés en même temps.
– Notation UML:
› un trait reliant l’acteur et le cas d’utilisation.
› Eventuellement, sur ce trait un stéréotype qui précise la relation de
communication («communicate »).
› Multiplicité: le symbole * du côté du cas d’utilisation signifie plusieurs.
Exactement n s’écrit tout simplement n, n..m signifie entre n et m, etc.

L2GLSI-ISIMM-23/24-M.GZARA 12

12
21/09/2024

Associations
› Relations entre cas d'utilisation (sous-fonction)
› Cas d'utilisation interne: un cas n'est pas directement relié à
un acteur
– Inclusion : X « includes » Y  X implique Y
↳Y est nécessaire pour X
– L’inclusion permet de :
› Partager une fonctionnalité commune entre plusieurs cas d’utilisation.
› Décomposer un cas d’utilisation complexe en décrivant ses sous-fonctions.
– Notation UML:
› Une flèche pointillée reliant les 2 cas d’utilisation et munie du stéréotype
«include ».
› Si le cas X inclut le cas Y, la flèche est dirigée de X vers Y.

La relation d’inclusion est impérative et donc systématique.

L2GLSI-ISIMM-23/24-M.GZARA 13

13

Associations
› Relations entre cas d'utilisation (sous-fonction)
– Extension : X «extends» Y  X peut être provoqué par Y
↳ X est optionnel pour Y
– Point d’extension :
› L’extension peut intervenir à un point précis du cas étendu
› Une extension est souvent soumise à condition Notation UML:
– Notation:
› La condition est exprimée sous la forme d’une note

La relation d’exclusion est optionnelle

L2GLSI-ISIMM-23/24-M.GZARA 14

14
21/09/2024

Associations
› Relations entre cas d'utilisation (sous-fonction)
– Généralisation ou spécialisation:
› X est un cas particulier de Y
› spécialiser un cas d’utilisation en un autre cas d’utilisation (sous-cas
d’utilisation)
› le sous-cas d’utilisation hérite du comportement du sur-cas d’utilisation.
› Le sous-cas d’utilisation hérite aussi de toutes les associations du sur-cas
(relations d’association avec les acteurs, relations d’inclusions, et relations
d’extensions).
– Notation:
› La relation de généralisation est représentée par une flèche avec une
extrémité triangulaire.
› Le nom d’un cas d’utilisation abstrait est écrit en italique (ou accompagné
du stéréotype « abstract »).

L2GLSI-ISIMM-23/24-M.GZARA 15

15

Description du cas d'utilisation


› Description textuelle d'un cas d'utilisation
– Titre: nom du cas d'utilisation
– Résumé: brève description
– Acteurs
– Contexte
– Données en entrée et préconditions
– Données en sortie et postconditions
– Scénario principal (nominal) pour ce cas d'utilisation :
Étapes à suivre pour réaliser ce cas
– Variantes, cas d'erreur:
Déviations des étapes du scénario principal, scénarios
alternatifs, scénarios d'erreur

L2GLSI-ISIMM-23/24-M.GZARA 16

16
21/09/2024

Description du cas d'utilisation


› Diagramme de séquence (analyse)
– Niveau analyse
– Diagramme de séquence acteur système
– Messages informels (pas des appels de méthodes)
– Noms des messages liés aux cas d'utilisation
– Mise en avant des données utiles au scénario (arguments)

L2GLSI-ISIMM-23/24-M.GZARA 17

17

Comment trouver les acteurs


› Qui est intéressé par le besoin ?
› Dans l’organisation, où le système se trouve-t-il utilisé ?
› Qui entre l’information, qui l’utilise, qui la détruit ?
› Qui utilise cette fonction ?
› Qui fait le support et la maintenance du système étudié ?
› Le système utilise-t-il une ressource extérieure ?
› Quels acteurs ont besoin de la fonction ?
› Un acteur joue-t-il plusieurs rôles ?
› Le même rôle est-il joué par plusieurs acteurs ?

L2GLSI-ISIMM-23/24-M.GZARA 18

18
21/09/2024

Comment trouver les use case?


› Quelles sont les tâches de l’acteur ?
› Quel acteur crée, sauvegarde, modifie, efface ou
simplement consulte cette information ?
› Quel use case crée, modifie, efface cette information ?
› L’acteur devra-t-il informer le système des changements
venant de l’extérieur ?
› L’acteur doit-il être informé sur certain état du système ?
› Tous les besoins fonctionnels sont-ils pris en compte ?
…?
L2GLSI-ISIMM-23/24-M.GZARA 19

19

Diagramme de cas d'utilisation


› Conseil : Rester lisible
– Pas plus de 6 ou 8 cas dans un diagramme
– Au besoin, faire plusieurs diagrammes (si cas disjoints entre
acteurs, pour détailler un cas...)
– Relations entre cas seulement si nécessaires et pas trop lourdes
– Le diagramme des cas d’utilisation apporte une vision utilisateur
et absolument pas une vision informatique.
– Le diagramme des cas d’utilisation n’est pas un inventaire
exhaustif de toutes les fonctions du système (fonctions
générales essentielles et principales sans rentrer dans les
détails).

☞ Pour les détails, privilégier la description textuelle

L2GLSI-ISIMM-23/24-M.GZARA 20

20
21/09/2024

Chapitre : Diagramme de
classe
Classe, responsabilité, association, multiplicité, agrégation,
composition, attribut, attribut dérivé, attribut de classe, classe
d’association, qualificatif, opération, opération de classe,
classification, généralisation, spécialisation, classe abstraite,
principe de substitution, généralisation multiple, contrainte

L2GLSI-ISIMM-23/24-M.GZARA 21

21

Notion de l’objet
› Un objet est une entité aux frontières bien définies
– Un objet est un concept, une abstraction ou une chose qui a un
sens dans le contexte du système à modéliser:
› La chaise de mon bureau, ma voiture, commande n°12, client Mourad

› Un objet a une identité :


– Chaque objet a une identité et peut être distingué des autres
sans considérer a priori les valeurs de ses proporiétés.
› Un objet encapsule un état
› Un objet encapsule un comportement

L2GLSI-ISIMM-23/24-M.GZARA 22

22
21/09/2024

Notion de classe
› Une classe représente la description abstraite d’un
ensemble d’objets (abstraction de l’objet):
– Mêmes propriétés (attributs)
– Même comportement (opérations)
– Une sémantique (domaine de définition)
– Classe Voiture, classe Elève, classe Personne
› Un objet est une instance de classe
› Les objets d’une même classe possèdent les même
caractéristiques (attributs).
› Notation UML:
L2GLSI-ISIMM-23/24-M.GZARA 23

23

Attribut
› Un attribut est un type d’information contenu dans une
classe
– Attributs élémentaires ou atomiques : nom, âge
– Attributs structurés: adresse
– Attributs multivalués : une personne peut avoir plusieurs
numéros de téléphonnes
– Exemple :
› Classe Voiture
› Attributs: vitesse courante, numéro de l’immatriculation, nombre de
cylindre, …

› Notation UML:

L2GLSI-ISIMM-23/24-M.GZARA 24

24
21/09/2024

Attribut
› Visibilité/Nom Attribut : type [=valeur initiale {propriété}]
– Visibilité (-, +, #)
– Nom d’attribut: nom unique dans sa classe
– Type : type primitif
– Valeur initiale facultative
– Attribut dérivé : calculé à partir d’autres attributs de la classe
(/nom attribut dérivé)
– {proporiétés}: valeurs marquées facultatives (ex: <<interdit>>
pour mise à jour interdite)
– Attribut peut avoir des valeurs multiples (diplômes[5])

L2GLSI-ISIMM-23/24-M.GZARA 25

25

Opération
› Décrit le comportement d’un objet :
– Un élément de comportement (un service) contenu dans une
classe
› Fonction applicable aux objets d’une classe
› Une méthode est l’implémentation d’une opération
› Formalisme:
– Uniquement le nom de l’opération
(ou)
– Nom de l’opération, liste de paramètres, type de résultat

L2GLSI-ISIMM-23/24-M.GZARA 26

26
21/09/2024

Opération
› Visibilité Nom opération(paramètres) [:[type résultat] {propriétés}]:
– Visibilité (-, +, #)
– Nom opération: verbe représentant l’action à réaliser
– Paramètres : nom du paramètre, type, valeur par défaut
– Type résultat: type (s) de valeurs retournées
– {propriétés} : valeurs facultatives applicables

L2GLSI-ISIMM-23/24-M.GZARA 27

27

Visibilité des attributs et des opérations


› Public (+) : attribut ou opération visible partout
› Protégé (#): attribut ou opération visible seulement à
l’interieur de la classe et pour toutes les sous-classes de
la classe
› Privé (-): attribut ou opération seulement visible à
l’interieur de la classe
› Paquetage (~): attribut ou opération ou classe seulement
visible à l’interieur du paquetage où se trouve la classe

L2GLSI-ISIMM-23/24-M.GZARA 28

28
21/09/2024

Attribut ou opération de niveau classe


› Attribut qui est une constante pour toutes les instances
d’une classe
› Opération d’une classe abstraite
› Opération <<créer>> qui peut être définie au niveau de la
classe et applicable à la classe elle-même
› Formalisme:
– Soulignement de l’attribut ou de l’opération

L2GLSI-ISIMM-23/24-M.GZARA 29

29

Classe : Formalisme général


› Un rectangle comportant
plusieurs compartiments:
– Les trois compartiments de
base
› Désignation de la classe
› Description des attributs
› Description des opérations
– Deux autres compartiemnts : ☞ Il est possible de manipuler les
› Description des responsabilités de classes en limitant le niveau de
la classe description à un nombre réduit de
› Description des exceptions traitées compartiments selon les objectifs
par la classe de modélisation

L2GLSI-ISIMM-23/24-M.GZARA 30

30
21/09/2024

Association
› Une association représente une relation sémantique
durable entre deux classes
– Exemple:
› Une personne peut posséder plusieurs voitures
› Une voiture est possédée par une seule personne
– Une association est bidirectionnelle
› Notation UML:

L2GLSI-ISIMM-23/24-M.GZARA 31

31

Association : multiplicité et contraintes


› Multiplicité : contrainte valable durant toute l’existence
des objets
– Une et une seule
– Plusieurs (0 ou plus)
– Optionnelle (0 ou 1)
– 1 ou plus
– De m à n
› Autres contraintes sur association
– {ordered}
– {subset}
– Contrainte de partition {xor}

L2GLSI-ISIMM-23/24-M.GZARA 32

32
21/09/2024

Association : multiplicité et contraintes

L2GLSI-ISIMM-23/24-M.GZARA 33

33

Rôle
› Possibilité de nommer les extrémités d’association
› Indispensable pour les associations entre objets de
même classe

L2GLSI-ISIMM-23/24-M.GZARA 34

34
21/09/2024

Association : multiplicité et contraintes


› Une personne peut passer plusieurs commandes
› Une commande est toujours passée par une et une seule
personne

• L'extrémité d'une
association est
appelée rôle.
• Le rôle décrit
comment une
classe voit l'autre
classe au travers
d'une association
L2GLSI-ISIMM-23/24-M.GZARA 35

35

Association : multiplicité et contraintes


› Cardinalités (Merise, modèle entité association)
› Multiplicité (UML)

L2GLSI-ISIMM-23/24-M.GZARA 36

36
21/09/2024

Association : multiplicité et contraintes


› Ordonnancement, bags et séquences
– Ordonnancement des objets situés à l’extrémité d’une
association « plusieurs »

– Bag (sac) : collection non ordonnée avec autorisation de


doublons
– Séquence : collection ordonnée avec autorisation de doublons

L2GLSI-ISIMM-23/24-M.GZARA 37

37

Association : multiplicité et contraintes


› Les contraintes d’exclusion:
– Ce type de contrainte permet de modéliser le cas où pour une
instance donnée d’une classe, une seule association, parmi
plusieurs possibles, peut être valide à un instant donné

L2GLSI-ISIMM-23/24-M.GZARA 38

38
21/09/2024

Association : multiplicité et contraintes


› La contrainte {sous-ensemble} indique qu’une collection
est incluse dans une autre collection
› Des contraintes spécifiques au moyen du langage OCL
(Object Constraint Language)

L2GLSI-ISIMM-23/24-M.GZARA 39

39

Classe d’association
› Une association ne peut posséder d’attributs, à
l’exception du cas très particulier des associations
qualifiées.
› On peut définir une classe association, c‟est-à-dire une
association qui est également une classe.
› C’est une classe qui réalise la navigation entre les
instances dautres classes.
› Elle sert à connecter les classes entre elles

L2GLSI-ISIMM-23/24-M.GZARA 40

40
21/09/2024

Classe d’association

L2GLSI-ISIMM-23/24-M.GZARA 41

41

Classe d’association

L2GLSI-ISIMM-23/24-M.GZARA 42

42
21/09/2024

Classe d’association

L2GLSI-ISIMM-23/24-M.GZARA 43

43

Classe d’association
› Ne pas confondre classe-association et association
promue au rang de classe

L2GLSI-ISIMM-23/24-M.GZARA 44

44
21/09/2024

Association qualifiée

› Qualificateur :
– Attribut permettant de distinguer les objets situés à l’extrémité
de multiplicité « plusieurs » d’une association
– Attribut réduisant la multiplicité « plusieurs » à « un »
› Association qualifiée : association contenant un ou
plusieurs attributs qualificateurs

L2GLSI-ISIMM-23/24-M.GZARA 45

45

Association qualifiée

L2GLSI-ISIMM-23/24-M.GZARA 46

46
21/09/2024

Les diagrammes de classes : Navigabilité


› La navigabilité indique s’il est possible de traverser une
association.
› Par défaut, une association est navigable dans les deux
sens

L2GLSI-ISIMM-23/24-M.GZARA 47

47

Esemple : Système de fichier


› Spécification :
– Un utilisateur possède au moins un répertoire
– Un répertoire appartient à un et un seul utilisateur
– Un répertoire peut contenir d ’autres répertoires
– Un utilisateur peut accéder à au moins un répertoire
– Un répertoire peut être accédé par au moins un utilisateur
– Réaliser le diagramme de classes correspondant

L2GLSI-ISIMM-23/24-M.GZARA 48

48
21/09/2024

Exemple :pays et langues


› Spécifications :
– Un pays a un nom, un nombre d’habitants et une superficie
– Dans ce pays, certaines langues sont parlées
– Un pourcentage de la population parle une langue ;
– Une langue peut être officielle dans un pays
› Réaliser le diagramme de classes correspondant

L2GLSI-ISIMM-23/24-M.GZARA
49

49

Exemple : gestion salles d’attente clinique


› Spécifications:
– Chaque salle a une capacité d‟accueil limitée.
– Les salles portent un nom et sont situées à un emplacement
précis de la clinique.
– Les patients sont admis normalement ou en urgence.
– Les patients sont appelés prioritairement selon lordre darrivée
– Un patient est appelé est reçu et soigné par le docteur.
– Les soins ne sont pas interrompus par larrivée d’un patient en
urgence.

L2GLSI-ISIMM-23/24-M.GZARA 50

50
21/09/2024

Exemple : gestion salles d’attente clinique

L2GLSI-ISIMM-23/24-M.GZARA 51

51

Agrégation et composition
› Une agrégation exprime une relation de contenance
› Association non symétrique
› Une agrégation n’a pas besoin d’être nommée
– Implicitement : <<contient>>, <<est composé de>>
– Classe agrégat (composé), classes agrégée (composant)

Un répertoire contient des fichiers

L2GLSI-ISIMM-23/24-M.GZARA 52

52
21/09/2024

Exemple : personnes et commune


› Spécification :
– Une personne peut travailler pour plusieurs sociétés
– Une société a un et un seul PDG
– Une personne peut être PDG de plusieurs sociétés
– Une personne peut posséder plusieurs voitures
– Une voiture a un seul propriétaire
– Une personne peut avoir des enfants
– Une personne peut être le maire d ’une commune
– Une personne peut être le député d ’une circonscription
– Une commune appartient à une circonscription

L2GLSI-ISIMM-23/24-M.GZARA 53

53

Exemple : personnes et commune

L2GLSI-ISIMM-23/24-M.GZARA 54

54
21/09/2024

Agrégation et composition
› Une composition est 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 entrâine la destruction de
tous ses éléments
› Le composite est responsable du cycle de vie des parties,

Une pièce contient des murs


L2GLSI-ISIMM-23/24-M.GZARA 55

55

Généralisation, super-classe, sous-classe


› Relation de généralisation:
– Relier une super-classe (classe plus générale) à une ou plusieurs
autres classes plus spécialisées (sous-classes)
– Les sous-classes <<héritent>> des propriétés de leur super-
classe
– Les sous-classes peuvent comporter des propriétés spécifiques
› Exemple :
– Classe : moyen de transport : désignation, âge, vitesse limite,
prix HT, …
– Voiture: numéro d’immatriculation, nombre de portes, couleur
– Bateau : nombre de voiles
– Avion: altitude,

L2GLSI-ISIMM-23/24-M.GZARA 56

56
21/09/2024

Généralisation, super-classe, sous-classe

L2GLSI-ISIMM-23/24-M.GZARA 57

57

Généralisation, super-classe, sous-classe

L2GLSI-ISIMM-23/24-M.GZARA 58

58
21/09/2024

Association généralisation: contrainte

› Une généralisation incomplète indique qu’il existe


d’autres sous-classes qui peuvent être introduites dans la
généralisation.
› Une généralisation complète indique que l’ensemble des
sous-classes a été répertorié
› Par défaut, la généralisation est dite complète et
disjointe, i.e. une instance est au plus instance d’une
seule des sous-classes
› La contrainte overlapping indique qu’une instance de la
super-classe est l'instance de deux ou plusieurs
sousclasses.

L2GLSI-ISIMM-23/24-M.GZARA 59

59

Encapsulation
› L'encapsulation est un principe de conception consistant
à protéger le coeur d'un système des accès intempestifs
venant de l'extérieur.
› En UML, utilisation de modicateurs d'accès sur les
attributs ou les classes :
– Public ou << + >> : propriété ou classe visible partout
– Protected ou <<#>> . propriété ou classe visible dans la classe
et par tous ses descendants.
– Private ou <<- >> : propriété ou classe visible uniquement dans
la classe Package, ou <<~>> : propriété ou classe visible
uniquement dans le paquetage
– Il n'y a pas de visibilité par défaut .

L2GLSI-ISIMM-23/24-M.GZARA 60

60
21/09/2024

Classe abstraite
› Une méthode est dite abstraite lorsqu'on connaît son entête mais pas la manière
dont elle peut être réalisée.
› Il appartient aux classes enfant de définir les methodes abstraites.
› Une classe est dite abstraite lorsqu'elle définit au moins une méthode abstraite
ou lorsqu'une classe parent contient une méthode abstraite non encore réalisée.

L2GLSI-ISIMM-23/24-M.GZARA 61

61

Classe abstraite

L2GLSI-ISIMM-23/24-M.GZARA 62

62
21/09/2024

Package
› Mécanisme général de regroupement d’éléments en UML
– Regrouper des classes et des associations
– Les package sont des espaces de nommage:
› Deux éléments ne peuvent pas porter le même nom au sein du même
package
› Deux éléments appartenant à des packages différents peuvent porter le
même nom
› Structuration d’un modèle en packages:
– Cohérence :
› Regrouper les classes proches de point de vue sémantique
– Independence :
› Minimiser les relations entre packages, soit, les relations entre classes de
packages différents
Critère intéressant: Évaluer les durées de vie des
instances de concepts et rechercher l’homogénéité L2GLSI-ISIMM-23/24-M.GZARA 63

63

Interface
› Le rôle d'une interface est de regrouper un ensemble
d'opérations assurant un service cohérent offert par un
classeur et une classe en particulier.
› Une interface est définie comme une classe, avec les mêmes
compartiments.
› On ajoute le stéréotype <<interface>> avant le nom de
l'interface.
› On utilise une relation de type réalisation entre une interface
et une classe qui l'implémente.
› Les classes implémentant une interface doivent implémenter
toutes les opérations décrites dans l'interface

L2GLSI-ISIMM-23/24-M.GZARA 64

64
21/09/2024

Interface
› Classe cliente d'une interface:
– Quand une classe dépend d'une interface (interface requise)
pour réaliser ses opérations, elle est dite classe cliente de
l'interface
– On utilise une relation de dépendance entre la classe cliente et
l'interface requise.
– Toute classe implémentant l'interface pourra être utilisée

L2GLSI-ISIMM-23/24-M.GZARA 65

65

Interface

L2GLSI-ISIMM-23/24-M.GZARA 66

66
21/09/2024

Eléments dérivés
› Les attributs dérivés peuvent être calculés à partir
d'autres attributs et des formules de calcul.
› Les attributs dérivés sont symbolisés par l'ajout d’un
<</>> devant leur nom.
› Lors de la conception, un attribut dérivé peut être utilisé
comme marqueur jusqu'à ce que vous puissiez
déterminer les règles à lui appliquer.
› Une association dérivée est conditionnée ou peut être
déduite à partir d'autres autres associations. On utilise
également le symbole <</>>.
L2GLSI-ISIMM-23/24-M.GZARA 67

67

Attributs de classe
› Par défaut, les valeurs des attributs définis dans une
classe diffèrent d'un objet à un autre.
› Parfois, il est nécessaire de dénir un attribut de classe qui
garde une valeur unique et partagée par toutes les
instances.
› Graphiquement, un attribut de classe est souligné

L2GLSI-ISIMM-23/24-M.GZARA 68

68
21/09/2024

Opérations de classe
› Semblable aux attributs de classe
› Une opération de classe est une propriété de la classe, et
non de ses instances.
› Elle n'a pas accès aux attributs des objets de la classe.

L2GLSI-ISIMM-23/24-M.GZARA 69

69

Classe paramétrée
› Pour dénir une classe générique et paramétrable en fonction
de valeurs et/ou de types :
– Dénition d'une classe paramétrée par des éléments spéciés dans un
rectangle en pointillés ;
– Utilisation d'une dépendance stéréotypée <<bind>> pour dénir des
classes en fonction de la classe paramétrée.

Java5 : généricité
C++ : templates

L2GLSI-ISIMM-23/24-M.GZARA 70

70
21/09/2024

Le diagramme de classe
› Le diagramme de classe exprime de manière générale la
structure statique d’un système
› Le modèle des classes et des objets décrit les objets
persistants du système d’information
› Le diagramme de classes est le diagramme le plus important
dans toutes les méthodes orientés objets.
› Le développement du modèle statique constitue la deuxième
activité dans l’étape d’analyse
› Une classe ne doit pas avoir trop de responsabilités
› Ne pas confondre objet logique et objet physique (une entité
et sa description)
L2GLSI-ISIMM-23/24-M.GZARA 71

71

Comment construire un diagramme de


classes
› Lister les noms
– Un substantif (mot du domaine) est un candidat potentiel pour
› Une entité
› Un attribut
– Supprimer :
› Synonymes
› Polysèmes
› Noms superflus (inutiles ou hors domaine)
– Procéder par itérations
› Identifier les classes
– Regroupent des attribut

L2GLSI-ISIMM-23/24-M.GZARA 72

72
Cours conception des
systèmes d’information
Analyse et Conception de Systèmes Informatiques Orientés objets en UML

Le diagramme de séquence
Enseignant du cours: Mariem Gzara
Filière : Licence en Génie Logiciel et Système d’Information
Niveau : 2ème année
Année universitaire : 2023-2024

L2GLSI-ISIMM-23/24-M.GZARA 1
Diagrammes de séquence
› Les diagrammes de séquences permettent de décrire
COMMENT les éléments du système interagissent entre
eux et avec les acteurs.
– Montrent les interactions entre objets selon un point de vue
temporel
– Description de scénarios types et des exceptions
› Deux utilisations principales :
1. Documentation des CU (point de vue Fonctionnel)
2. Représentation précise des interactions (point de vue
Dynamique)
› identification des messages, des envois, réceptions, etc

L2GLSI-ISIMM-23/24-M.GZARA 2
Diagramme de séquence
› 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

› Éléments du diagramme de séquence :


– Acteurs
– Objets (instances)
– Messages (cas d'utilisation, appels d’opération)

L2GLSI-ISIMM-23/24-M.GZARA 3
Diagrammes de séquence
› Concepts principaux :
› 1. Les participants (le plus souvent des objets)
– Une ligne de vie : représente un participant à une interaction (objet ou acteur).
– Des zones d’activation
› 2. Les messages :
– L’opération et éventuellement ses paramètres
– Éventuellement son résultat
– Envoi d’un signal
– Destruction ou création d’objets
› 3. Des Fragments combinés
– Alt : conditionnelle
– Loop : boucle
– Ref : référence à un autre diagramme de séquence (=appel de fonction)
– Etc.

L2GLSI-ISIMM-23/24-M.GZARA 4
Diagramme de séquence: éléments de base

Fares: Acteur

L2GLSI-ISIMM-23/24-M.GZARA 5
Période d’activité

› La réception des messages provoque une période d’activité


(rectangle vertical sur la ligne de vie) marquant le traitement du
message.
› Période durant laquelle un objet effectue une action
› Etat actif (= durée de vie)
› un objet peut être actif plusieurs fois
L2GLSI-ISIMM-23/24-M.GZARA 6
Types de messages
› Message synchrone : Émetteur bloqué en attente du
retour
– Typiquement : appel de méthode (Si un objet A invoque une
méthode d’un objet B, A reste bloqué tant que B n’a pas
terminé.

L2GLSI-ISIMM-23/24-M.GZARA 7
Types de messages
› Message asynchrone : Émetteur non bloqué, continue son
exécution
– Le message envoyé peut être pris en compte par le récepteur à
tout moment ou ignoré.

L2GLSI-ISIMM-23/24-M.GZARA 8
Type de message
› Message de retour : On peut associer aux messages
d’appel de méthode un message de retour (en pointillés)
marquant la reprise du contrôle par l’objet émetteur du
message synchrone.

L2GLSI-ISIMM-23/24-M.GZARA 9
Correspondance message/opérations
› Les messages synchrones correspondent à des opérations dans le
diagramme de classes.
› Envoyer un message et attendre la réponse pour poursuivre son
activité revient à invoquer une méthode et attendre le retour pour
poursuivre ses traitements.

L2GLSI-ISIMM-23/24-M.GZARA 10
Message de retour
› Le récepteur d’un message synchrone rend la main à l’émetteur du
message en lui envoyant un message de retour
› Les messages de retour sont optionnels : la fin de la période
d’activité marque également la fin de l’exécution d’une méthode.
› Ils sont utilisés pour spécifier le résultat de la méthode invoquée.

L2GLSI-ISIMM-23/24-M.GZARA 11
Création d’objets
› Un message peut entraîner la création ou la destruction d’objets
– La création d’un objet est matérialisée par une flèche qui pointe sur le
sommet d’une ligne de vie (On peut aussi utiliser un message asynchrone
ordinaire portant le nom «create»).
› La destruction d’un objet est matérialisée par une croix qui
marque la fin de la ligne de vie de l’objet.

L2GLSI-ISIMM-23/24-M.GZARA 12
Création et destruction d'objet

L2GLSI-ISIMM-23/24-M.GZARA 13
Catégories de messages
› message trouvé (Found message) :
– message dont on ignore la provenance
– en dehors du cadre décrit par le Diagramme de Séquence
› message perdu (Lost message) :
– message envoyé, mais jamais reçu

L2GLSI-ISIMM-23/24-M.GZARA 14
Message réflexif
Un objet peut s’envoyer des messages:
• appel à une autre méthode de l’objet
• appel récursif

L2GLSI-ISIMM-23/24-M.GZARA 15
Durées et contraintes temporelles
› Représentation des délais de transmission :

L2GLSI-ISIMM-23/24-M.GZARA 16
L2GLSI-ISIMM-23/24-M.GZARA 17
Fragments combinés
› Un fragment combiné permet de décomposer une
interaction complexe en fragments suffisamment simples
pour être compris
› Types
– 1. Opt
– 2. Loop
– 3. Alt
– 4. Break
– 5. Critique
– 6. Ref
– 7. ...

L2GLSI-ISIMM-23/24-M.GZARA 18
Opt : Fragment parcouru si une condition est vérifiée

Alt : Equivalent à la structure de contrôle "si .. alors .. sinon"

L2GLSI-ISIMM-23/24-M.GZARA 19
Loop : Répétition du fragment tant que la condition est vérifiée

Break : Fragment exécuté et met fin au fragment englobant

L2GLSI-ISIMM-23/24-M.GZARA 20
Décomposition : mot clef "ref"

L2GLSI-ISIMM-23/24-M.GZARA 21
Fragments
combinés :
exemples

L2GLSI-ISIMM-23/24-M.GZARA 22
Alternative
› Principe : Condition à l'envoi d'un message
› Notation :
– Deux diagrammes
– Bloc d'alternative alt

L2GLSI-ISIMM-23/24-M.GZARA 23
Alternative

L2GLSI-ISIMM-23/24-M.GZARA 24
Boucle

L2GLSI-ISIMM-23/24-M.GZARA 25
Référence à un autre diagramme

L2GLSI-ISIMM-23/24-M.GZARA 26
L2GLSI-ISIMM-23/24-M.GZARA 27
L2GLSI-ISIMM-23/24-M.GZARA 28
L2GLSI-ISIMM-23/24-M.GZARA 29
Quelques règles
› Messages entre acteurs et interface
– « Fausses » opérations liées au cas d'utilisation (même nom)
– Arguments (saisis) et valeurs de retour (affichées) simples : texte,
nombre
› Messages au sein du système
– Opérations du diagramme de classes
– Si message de objA : ClasseA vers objB : ClasseB,
alors opération du message dans ClasseB

L2GLSI-ISIMM-23/24-M.GZARA 30
Utilisation d’un diagramme de séquence pour
modéliser un cas d’utilisation
› Chaque cas d'utilisation donne lieu à un diagramme de
séquences

› Les inclusions et les extensions sont des cas typiques


d’utilisation de la réutilisation par référencement

L2GLSI-ISIMM-23/24-M.GZARA 31
Utilisation d’un diagramme de séquence pour
modéliser un cas d’utilisation
Diagramme de séquences correspondant :

L2GLSI-ISIMM-23/24-M.GZARA 32
21/09/2024

Cours conception des


systèmes d’information
Analyse et Conception de Systèmes Informatiques Orientés objets en UML

Le modèle des objets


Enseignant du cours: Mariem Gzara
Filière : Licence en Génie Logiciel et Système d’Information
Niveau : 2ème année
Année universitaire : 2023-2024

L2GLSI-ISIMM-23/24-M.GZARA 1

Le diagramme d’objets
› Le diagramme d’objets fait parties des diagrammes structurels
(statique).
› Il représente les objets d’un système (c.à.d. les instances des
classes) et leurs liens (c.à.d. les instances des associations) à
un instant donné.
› Il donne une image instantanée des instances d'un système et
des relations entre ces instances.
› A un diagramme de classe correspond une infinité de
diagrammes d’objets.
› Les diagrammes d’objet donnent des exemples, des cas de
figure:
– permettent d’affiner le diagramme de classe
– de mieux comprendre le diagramme de classe

L2GLSI-ISIMM-23/24-M.GZARA 2

2
21/09/2024

Le diagramme d’objets
› Pendant phase analyse, créer jeux d'essai pour vérifier si
le diagramme de classes est complet et exact.
› Avant de créer un diagramme de classes, illustrer avec
des exemples précis

L2GLSI-ISIMM-23/24-M.GZARA 3

Représentation graphique
› Chaque objet est
représenté dans un
rectangle:
– le nom de l’objet
(souligné)
– éventuellement la
valeur de un ou
plusieurs de ses
attributs.

L2GLSI-ISIMM-23/24-M.GZARA 4

4
21/09/2024

Représentation graphique

L2GLSI-ISIMM-23/24-M.GZARA 5

Diagramme d’objets

une instance
particulière du
diagramme de
classe

L2GLSI-ISIMM-23/24-M.GZARA 6

6
21/09/2024

Diagramme d’objets

L2GLSI-ISIMM-23/24-M.GZARA 7

Diagramme d’objets

L2GLSI-ISIMM-23/24-M.GZARA 8

8
21/09/2024

Diagramme d’objets

L2GLSI-ISIMM-23/24-M.GZARA 9

Diagramme d’objets

L2GLSI-ISIMM-23/24-M.GZARA 10

10
21/09/2024

Diagramme Objets recommandation


› Le diagramme d’objets ne doit être utilisé que pour
clarifier certaines structures complexes apparaissant sur
un diagramme de classes
› Tous les objets du diagramme de classes ne doivent pas
obligatoirement figurer sur le diagramme d’objets
› Le diagramme d’objets peut servir de base à un
diagramme d’interaction

L2GLSI-ISIMM-23/24-M.GZARA 11

11
21/09/2024

Cours conception des


systèmes d’information
Analyse et Conception de Systèmes Informatiques Orientés objets en UML

Diagramme d’états-transitions
Diagramme d’activité
Enseignant du cours: Mariem Gzara
Filière : Licence en Génie Logiciel et Système d’Information
Niveau : 2ème année
Année universitaire : 2023-2024

L2GLSI-ISIMM-23/24-M.GZARA 12

12

Diagrammes d’états-
transitions

L2GLSI-ISIMM-23/24-M.GZARA 13

13
21/09/2024

Diagramme états-transitions
› Objectif :
– Décrire le comportement dynamique d'une entité (logiciel,
composant, objet...)
– Décrire le fonctionnement d’une machine (ou d’un objet) ayant
un comportement séquentiel.
› Comportement décrit par états + transitions entre les
états
– État : abstraction d'un moment de la vie d'une entité pendant
lequel elle satisfait un ensemble de conditions
– Transition : changement d'état

L2GLSI-ISIMM-23/24-M.GZARA 14

14

Diagramme états-transitions
› Intérêt :
– Vue synthétique de la dynamique de l'entité
– Regroupe un ensemble de scénarios

! Un diagramme d’états-transition est toujours associé à une et une seule classe.


L2GLSI-ISIMM-23/24-M.GZARA 15

15
21/09/2024

Exemple : distributeur automatique

L2GLSI-ISIMM-23/24-M.GZARA 16

16

Exemple : distributeur automatique

L2GLSI-ISIMM-23/24-M.GZARA 17

17
21/09/2024

Etat
› Types d'états :
– État initial :
› Initialisation du système, exécution du constructeur de l'objet
› est représenté par un point noir
– État final :
› Fin de vie du système, destruction de l'objet
› se représente par un point entouré d’un cercle
– États intermédiaires :
› étapes de la vie du système, de l'objet
› un rectangle arrondi contenant son nom

L2GLSI-ISIMM-23/24-M.GZARA 18

18

État
› Caractéristiques d'un état :
– Conditions vérifiées
– Événements attendus

L2GLSI-ISIMM-23/24-M.GZARA 19

19
21/09/2024

Diagramme états-transitions
› Un diagramme d’états-transition est toujours associé à une et
une seule classe:
– Un objet peut passer par une série d'états pendant sa durée de vie.
– Un état représente une période dans la vie d'un objet pendant laquelle
ce dernier
› attend un événement (signal provenant d'autres objets) (Objet inactif)
› ou accomplit une activité (objet actif):
– Exécution d’une série de méthodes
– Interactions avec d’autres objets

– Etat initial: correspond à l'état de l'objet juste après sa création (défini


par l'un des constructeurs de l'objet).
– Un ou plusieurs états finaux : correspondent à une phase de
destruction de l'objet.
› Il arrive également qu'il n'y ait pas d'état final car un objet peut ne jamais être
détruit (dans le cas des services notamment).

L2GLSI-ISIMM-23/24-M.GZARA 20

20

Evénement
› Un événement est un fait qui déclenche le changement
d'état
› Un événement se produit à un instant précis et est
dépourvu de durée
› Il existe quatre types d’événements :
1. Événement de type signal (signal event)
2. Événement appel d'opération (call event)
3. Événement de changement (change event)
4. Événement temporel (time event)

L2GLSI-ISIMM-23/24-M.GZARA 21

21
21/09/2024

Evénement
1. Événement de type signal (signal event)
– réception d’un signal asynchrone émit par un autre objet ou par
un acteur

L2GLSI-ISIMM-23/24-M.GZARA 22

22

Evénement
2. Événement appel d'opération (call event) :
– Appel d’une méthode de l’objet courant par un autre objet ou par un
acteur.
3. Evénement de changement d'état:
– La satisfaction (vrai ou faux) d'une expression booléenne sur des
valeurs d'attributs.
– L’expression est testée en permanence.

4. Événement temporel (time event) :


– générés soit de manière absolue (date précise), soit de manière
relative (temps écoulé). Par défaut, le temps commence à s'écouler
dès l'entrée dans l'état courant.

L2GLSI-ISIMM-23/24-M.GZARA 23

23
21/09/2024

Une transition est une relation entre 2 états. Elle est orientée ce qui signifie que l'état
2 est possible si certains événements sont vérifiés.

Exemple : Une commande passera dans l'état "En attente" dès lors qu'elle aura été
expédiée

L2GLSI-ISIMM-23/24-M.GZARA 24

24

Transitions « change » et « after »


› Le changement de saisons constitue une boucle
continue. On considère un objet de la classe Saison
de durée de vie infinie.
› En utilisant des événements de type change ou after ,
donner le diagramme des états-transitions de la classe
Saison correspondant aux états de l'année climatique de
la Tunisie (printemps, été, automne, hiver).
› Les événements sont when(date=21 mars), when(date=21
juin)... ou alors after(3 mois)

L2GLSI-ISIMM-23/24-M.GZARA 25

25
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 26

26

Etats associés à une classe


› Considérons une classe Partie dont la responsabilité est de
gérer le déroulement d'une partie de jeu d'échecs.
› Cette classe peut être dans deux états : le tour des blancs
le tour des noirs.
› Les événements à prendre en considération sont :
– un déplacement de pièces de la part du joueur noir
– un déplacement de pièces de la part du joueur blanc
– la demande de prise en compte d'un échec et mat par un joueur.
› S'il est validé par la classe partie, un échec et mat assure la victoire du dernier
joueur.
› Dans ce cas, une activité noirsGagnants ou blancsGagnants selon le cas
est déclenchée (appel de méthode).
– la demande de prise en compte d'un pat qui mène aussi à une n de
partie, avec une égalité.
› Dans ce cas, une activité égalité est déclenchée.

L2GLSI-ISIMM-23/24-M.GZARA 27

27
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 28

28

Diagramme d’activité

L2GLSI-ISIMM-23/24-M.GZARA 29

29
21/09/2024

DIAGRAMME D’ACTIVITES
› Variante des diagrammes d’états-transitions•
› Diagramme d’activité représente graphiquement le
comportement d'une méthode ou le déroulement d'un cas
d'utilisation.
› Le passage d'une activité vers une autre est matérialisé par
une transition.
› Les transitions sont déclenchées par la fin d'une activité et
provoquent le début immédiat d'une autre (elles sont
automatiques).
› En théorie, tous les mécanismes dynamiques pourraient être
décrits par un diagramme d'activités, mais seuls les
mécanismes complexes ou intéressants méritent d'être
représentés

L2GLSI-ISIMM-23/24-M.GZARA 30

30

DIAGRAMME D’ACTIVITES
› Pour montrer le flux des opérations qui s'enchaînent dans
un processus interne du système.
› Ce diagramme est le comment de la description d’un
système que nous avons évité dans les diagrammes de
cas d’utilisation.
› Ce n’est pas un diagramme d’états-transitions :
– Le diagramme d’états-transitions met l’accent sur l’évolution
d’un objet au cours du temps.
– Le diagramme d’activités se focalisent sur le flux d’activités
concourant à la réalisation d’un processu

L2GLSI-ISIMM-23/24-M.GZARA 31

31
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 32

32

L2GLSI-ISIMM-23/24-M.GZARA 33

33
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 34

34

L2GLSI-ISIMM-23/24-M.GZARA 35

35
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 36

36

L2GLSI-ISIMM-23/24-M.GZARA 37

37
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 38

38

Distributeur de billets

› Le client introduit sa carte dont la validité est


immédiatement vérifiée.
› Il est ensuite invité à saisir le code de la carte.
› Après trois tentatives infructueuses, la carte est avalée.
› Sinon le client peut indiquer le montant qu'il désire retirer,
le solde de son compte bancaire est alors consulté pour
s'assurer que le retrait est possible.
– En cas de solde insuffisant, le client en est informé et peut alors
saisir un montant inférieur.
– Si le solde du compte est suffisant, le distributeur restitue la
carte et délivre alors les billets accompagnés d'un reçu.

L2GLSI-ISIMM-23/24-M.GZARA 39

39
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 40

40

Mousse au chocolat (UML2 par la pratique, P.


Roques)
Voici la recette pour faire une bonne mousse au chocolat :
› Commencer par casser le chocolat en morceaux, puis le faire
fondre.
› En parallèle, casser les œufs en séparant les blancs des jaunes.
› Quand le chocolat est fondu, ajouter les jaunes d’œuf.
› Battre les blancs en neige jusqu’à ce qu’ils soient bien fermes.
› Les incorporer délicatement à la préparation chocolat sans les
briser.
› Verser dans des ramequins individuels.
› Mettre au frais au moins 3 heures au réfrigérateur avant de servir.

L2GLSI-ISIMM-23/24-M.GZARA 41

41
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 42

42

Mousse au chocolat (UML2 par la pratique, P.


Roques)
› Dans le diagramme d’activité de la question 1, on ne voit
pas encore les ingrédients manipulés. Ajouter les flots
d’objets (objet et son état) pour compléter le diagramme.

L2GLSI-ISIMM-23/24-M.GZARA 43

43
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 44

44

Mousse au chocolat (UML2 par la pratique, P.


Roques)
› 3. Le chef et son assistant vont partager le travail pour
préparer la recette. Créer un autre les partitions
représentant les entités responsables des actions.

L2GLSI-ISIMM-23/24-M.GZARA 45

45
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 46

46

L2GLSI-ISIMM-23/24-M.GZARA 47

47
21/09/2024

DIAGRAMME
D’ACTIVITES

L2GLSI-ISIMM-23/24-M.GZARA 48

48

DIAGRAMME D’ACTIVITES
› Flux d'objet :
– Un flux d'objet représente la participation d'un objet dans un flux
de contrôle.
– Les flux d'objets sont représentés par des relations de
dépendance entre objets et états d'action ou d'activités.
– Les flux d'objets sont représentés par des flèches :
› Le diagramme ainsi obtenu est très intéressant, puisqu’il
fait le pont entre les trois axes de modélisation :
fonctionnel (actions), dynamique (flots) et statique
(entités et partitions)

L2GLSI-ISIMM-23/24-M.GZARA 49

49
21/09/2024

L2GLSI-ISIMM-23/24-M.GZARA 50

50

Diagramme de paquetage

L2GLSI-ISIMM-23/24-M.GZARA 51

51
21/09/2024

Diagramme de
composant

L2GLSI-ISIMM-23/24-M.GZARA 52

52

Vous aimerez peut-être aussi