SYSTÈMES INTERACTIFS
A. Farchane
20:29 2
Modélisation et modèle
• La Modélisation consiste à créer une représentation
virtuelle de la réalité. Elle comporte deux composantes:
• L'analyse, c'est-à-dire l'étude du problème;
• la conception, soit la mise au point d'une solution au problème.
• Un Modèle est une simplification de la réalité (abstraction
de la réalité). Grâce au modèle il est possible de
représenter simplement un problème, un concept et le
simuler.
20:29 3
Modélisation et modèle
20:29 4
Qu’est ce que l’UML ?
• UML (Unified Modeling Language) est un langage de
modélisation graphique.
• Il est conçu pour représenter, construire et documenter
des systèmes logiciels utilisant les techniques orientées
objet.
• Il permet la création de plusieurs modèles d’un même
système, chacun privilégiant un aspect différent :
fonctionnel, dynamique, statique.
20:29 5
Qu’est ce que l’UML ?
• Il offre plusieurs niveaux d’abstraction qui simplifient la conception des
solutions.
• Sa notation graphique est très adaptée à la conception orientée objet,
et sera beaucoup plus simple à manipuler que l’algorithmique
classique.
• Son côté visuel facilite également la comparaison et l’évaluation de
solutions.
• C’est le résultat d’un large consensus et du travail d’experts reconnus.
• UML est ainsi devenu un langage incontournable dans tout projet de
taille conséquente.
20:29 6
Qu’est ce que l’UML ?
• UML est un langage qui permet de représenter des
modèles, mais il ne définit pas le processus d'élaboration
des modèles : UML n’est donc pas une méthode de
modélisation.
• Cependant, dans le cadre de la modélisation d'une
application informatique, les auteurs d'UML préconisent
d'utiliser une démarche :
• Itérative et incrémentale :
L’idée est simple : pour modéliser (comprendre et représenter) un
système, il faut mieux s’y prendre en plusieurs fois, en affinant son
analyse par étapes.
20:29 7
Diagrammes d’UML
• Un diagramme d’UML est une représentation graphique,
qui s’intéresse à un aspect précis du modèle ; c’est une
perspective du modèle.
• UML propose 13 types de diagramme que l’on peut
classer en trois catégories : diagrammes fonctionnels,
dynamiques et statiques.
• Diagrammes fonctionnels (ou comportementaux).
1. Diagramme de cas d’utilisation.
2. Diagramme d’activités.
3. Diagramme d’états-transitions.
20:29 8
Diagrammes d’UML
• Diagrammes dynamiques.
1. Diagramme de séquence.
2. Diagramme de collaboration.
3. Diagramme global d’interaction.
4. Diagramme de temps.
• Diagrammes statiques.
1. Diagramme de classes.
2. Diagramme d’objets.
3. Diagramme de paquetage.
4. Diagramme de composants.
5. Diagramme de déploiement.
6. Diagramme de structure composite.
20:29 9
Diagrammes d’UML
• Dans la suite de ce cours, nous étudierons 10 Principaux
diagrammes:
20:29 10
DIAGRAMME DE CAS
D’UTILISATION
20:29 11
Diagramme de cas d’utilisation
• But de ce diagramme
• C’est souvent le premier diagramme construit lors du
développement d’un projet.
• Son but est de recenser les grandes fonctionnalités d’un système.
• Il va clarifier, filtrer et structurer les besoins des utilisateurs, et donc
les objectifs à atteindre par le système.
20:29 12
Diagramme de cas d’utilisation
• Ce diagramme insiste uniquement sur ce que fait le
système et non sur comment il va le faire.
• Les solutions d’implémentation font l’objet d’autres
diagrammes, comme par exemple les diagrammes de
classes.
• Cette démarche simplificatrice permet une meilleure
compréhension du système à développer, et permet de
vérifier tout au long de la conception que les besoins des
utilisateurs sont satisfaits.
20:29 13
Diagramme de cas d’utilisation
• Eléments du diagrammes des cas d’utilisation:
1. Frontière du système
2. Acteur
3. Cas d’utilisation
4. relations
20:29 14
Diagramme de cas d’utilisation
• Acteurs et cas d’utilisation
• Acteur :
Un acteur est un entité externe au système qui interagit directement avec
lui. L’acteur peut être humain, matériel,...
• Représentation :
20:29 15
Diagramme de cas d’utilisation
• Cas d’utilisation
• Un cas d’utilisation est ensemble des actions réalisées par le
système en réponse à une action d’un acteur;
• Est un moyen de recueillir et de décrire les besoins des acteurs du
système;
• Les cas d’utilisation peuvent être organisée en paquetages
• Représentation :
20:29 16
Diagramme de cas d’utilisation
• Délimitation du système :
20:29 17
Diagramme de cas d’utilisation
• Association (acteur  C.U) :
Marque la participation d’un acteur à un cas d’utilisation.
• Représentation :
20:29 18
Diagramme de cas d’utilisation
• Exemple:
20:29 19
Diagramme de cas d’utilisation
• On distingue entre deux types d’acteurs:
• Acteur principal : celui pour qui le cas d’utilisation produit un
résultat observable et qui a le pouvoir de le déclencher.
• Acteur secondaire : autre participant du cas d’utilisation sollicité
dans le cadre de sa réalisation.
• Représentation:
20:29 20
Diagramme de cas d’utilisation
• Exemple:
20:29 21
Diagramme de cas d’utilisation
• Exemple:
20:29 22
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Afin de clarifier les diagrammes, de limiter le nombre de
liens et de gagner en lisibilité, UML permet d’établir des
relations de trois types entre les cas d’utilisation :
1. Relation d’inclusion.
2. Relation d’extension.
3. Relation de généralisation / spécialisation.
20:29 23
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Relation d’inclusion ou d’utilisation : un cas A est inclus dans un
cas B si la sollicitation de A entraine nécessairement celle de B
comme une partie de A.
• Représentation :
• Exemple:
20:29 24
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Exemple :
Dans cet exemple, la relation « include » indique que le cas d’utilisation
source contient aussi le comportement décrit dans le cas d’utilisation
destination.
En d’autres termes, pour réaliser l’objectif « imprimer solde compte », on
utilise les objectifs « consulter compte » et « imprimer un ticket » du
système
20:29 25
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Relation d’extension : un cas B étend un cas A si la sollicitation de
A peut éventuellement provoquer celle de B en complément de A.
• Représentation
• La relation d’extension est souvent soumise à condition. Cette
condition est représentée graphiquement sous forme de note.
20:29 26
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Exemple:
20:29 27
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Relation de généralisation / spécialisation (ou héritage) :
• indique qu’un cas B est un cas particulier d’un cas A, ou autrement dit
qu’un cas A est une généralisation d’un cas B.
• Un acteur en relation avec un cas A le sera aussi avec B.
• Représentation :
20:29 28
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Relation de généralisation / spécialisation (ou héritage) :
• Exemple:
20:29 29
Diagramme de cas d’utilisation
• Relation de généralisation / spécialisation (ou héritage):
• Indique qu’un acteur B est un cas particulier d’un acteur A. Tous les
cas d’utilisation accessibles à A le seront aussi à B.
• Représentation :
20:29 30
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Relation de généralisation / spécialisation (ou héritage) :
• Exemple:
20:29 31
Diagramme de cas d’utilisation
• Relations entre cas d’utilisation
• Exemple récapitulatif :
20:29 32
Diagramme de cas d’utilisation
• Exercice .
Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du
matériel pédagogique (ordinateur portable ou/et vidéo projecteur).
• Seuls les enseignants sont habilités à effectuer des réservations (sous réserve de disponibilité de la
salle ou du matériel).
• Le planning des salles peut quant à lui être consulté par tout le monde (enseignants et étudiants).
Par contre, le récapitulatif horaire par enseignant ne peut ne peut être consulté que par les
enseignants.
• Enfin, il existe pour chaque formation un enseignant responsable qui seul peut éditer le récapitulatif
horaire pour l’ensemble de la formation.
• Questions
1. Identifier les acteurs,
2. Identifier les cas d’utilisation
3. Donnez le diagramme de cas d’utilisation (en utilisant le StarUML OU
ArgoUML ou un autre logiciel de votre choix)
20:29 33
Diagramme de cas d’utilisation
• Exercice .
Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du
matériel pédagogique (ordinateur portable ou/et vidéo projecteur).
• Seuls les enseignants sont habilités à effectuer des réservations (sous réserve de disponibilité de la
salle ou du matériel).
• Le planning des salles peut quant à lui être consulté par tout le monde (enseignants et étudiants).
Par contre, le récapitulatif horaire par enseignant ne peut ne peut être consulté que par les
enseignants.
• Enfin, il existe pour chaque formation un enseignant responsable qui seul peut éditer le récapitulatif
horaire pour l’ensemble de la formation.
• Questions
1. Identifier les acteurs,
2. Identifier les cas d’utilisation
3. Donnez le diagramme de cas d’utilisation (en utilisant le StarUML OU
ArgoUML ou un autre logiciel de votre choix)
20:29 34
Diagramme de cas d’utilisation
• Corrigé
20:29 35
DIAGRAMME DE CLASSES
(DCL)
20:29 36
Diagramme de classes (DCL)
• But du diagramme de classes.
• Le diagramme de cas d’utilisation montre un système du point de
vue des acteurs.
• Le diagramme de classes va présenter la structure interne du
système.
• Il donne une vue statique du système, en montrant les classes et
leurs relations entre elles.
• L’aspect dynamique sera apporté par exemple par un diagramme
de séquence (voir la suite).
20:29 37
Diagramme de classes (DCL)
• Classe d'objets :
Décrit un groupe d’objets ayant les mêmes propriétés et le même
comportement (même structure et même ensemble de méthodes)
afin d'en faciliter la gestion.
• Représentation:
• Exemple :
20:29 38
Diagramme de classes (DCL)
• Approche classe / Objet
• Objet : entité identifiable du monde réel pouvant avoir ou pas une
existence physique.
• Un objet possède trois composantes :
1. Une identité.
2. Des variables définissant sont état (attributs).
3. Des sous programmes gérant son comportement (méthodes).
• Exemple d’une classe et d’une de ses instances
20:29 39
Diagramme de classes (DCL)
• Approche classe / Objet
• Encapsulation : permet l’accès aux données uniquement via les méthodes.
• Association : représente une relation entre plusieurs classes
• Héritage : permet la classification, la généralisation et la spécialisation. est un
mécanisme de transmission des propriétés d’une classe (ses attributs et
méthodes) vers une sous-classe.
• Une classe peut être spécialisée en d’autres classes, afin d’y ajouter des
caractéristiques spécifiques ou d’en adapter certaines.
• Plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de
regrouper les caractéristiques communes d’un ensemble de classes;
20:29 40
Diagramme de classes (DCL)
• Approche classe / Objet
• Agrégation : est une relation qui permet de décrire un objet
composite en terme d'objets qui le constituent.
• Polymorphisme : est la capacité donnée à une même opération de
s’exécuter différemment suivant le contexte de la classe où elle se
trouve;
• Exemple : exécution d’un calcul de salaire de deux sous-classes
spécialisées (une pour les cadres, l’autre pour les non-cadres)
20:29 41
Diagramme de classes (DCL)
• Visibilité des attributs et méthodes :
• Un attribut ou une méthode sont dits privés si leur utilisation est
interdite en dehors de la classe.
• Un attribut ou une méthode sont dits publics si leur utilisation est
autorisée en dehors de la classe.
• Un attribut ou une méthode sont dits protégés si leur utilisation est
limitée à la classe et ses descendantes.
20:29 42
Diagramme de classes (DCL)
• Représentation de la visibilité :
• Public (+) : accès à partir de toute entité interne ou externe à la
classe
• Protégé (#) : accès à partir de la classe ou des sous-classes
• Privé (-) : accès à partir des opérations de la classe
• Exemple:
20:29 43
Diagramme de classes (DCL)
• Possibilité d’initialisation des attributs:
• Possibilité d’initialisation des attributs Lors de la déclaration d’un
attribut on peut lui attribuer une valeur par défaut.
• Exemple:
20:29 44
Diagramme de classes (DCL)
• Attributs de classes :
ce sont des attributs particuliers qui ont la même valeur pour toutes
les instances de la classe. L’exemple fondamental est un attribut qui
compte le nombre d’objets instanciés de la classe.
• Représentation : ils sont soulignés.
Exemple:
20:29 45
Diagramme de classes (DCL)
• Attributs dérivés : attributs dont la valeur peut être
calculée à partir d’autres attributs et de formules de
calcul.
• Représentation : avec un « / » devant le nom.
• Exemple :
20:29 46
Diagramme de classes (DCL)
• Multiplicité : il est possible d’indiquer la multiplicité d’un
attribut, c’est à dire le nombre de valeurs que la variable
peut stocker.
• Représentation : entre [ ].
• Exemple:
20:29 47
Diagramme de classes (DCL)
• Méthodes
• Sont des fonctions applicables aux objets d’une classe
• Permettent de décrire le comportement d’un objet
• Dans la signature des méthodes on peut de façon
optionnelle :
• Donner des valeurs par défaut aux paramètres.
• Spécifier la nature des paramètres (entrée, sortie,
entrée/sortie).
20:29 48
Diagramme de classes (DCL)
• Méthodes
• Méthodes de classes : ce sont des méthodes qui ne dépendent
pas des attributs propres de chaque objet mais qui portent sur les
attributs de classes.
• Représentation : elles sont soulignées.
20:29 49
Diagramme de classes (DCL)
• Classe abstraite :
• classe qui ne peut être instanciée, car elle contient des méthodes
abstraites, c’est à dire des méthodes non implémentées.
• Une classe abstraite sert essentiellement à factoriser des
méthodes et attributs communs à plusieurs classes, et ce dans une
relation d’héritage.
• Représentation : On fait précéder les méthodes abstraites par le
stéréotype « abstract ».
20:29 50
Diagramme de classes (DCL)
• Classes abstraites:
• Interface : il s’agit d’une classe totalement abstraite, c’est à dire
d’une classe sans attributs qui ne contient que des méthodes
abstraites.
• Son rôle est de regrouper un ensemble cohérent d’opérations.
• On utilise des interfaces pour classer les opérations en catégories
sans se soucier de leurs implémentations.
• Représentations d’une interface
20:29 51
Diagramme de classes (DCL)
Exercice :
Une personne est caractérisée par son nom, son prénom, son sexe et son âge. Les objets
de classe Personne doivent pouvoir calculer leurs revenus et leurs charges. Les attributs
de la classe sont privés; le nom, le prénom ainsi que l’âge de la personne doivent être
accessibles par des opérations publiques.
1) Donnez une représentation UML de la classe Personne.
2) En plus des informations fournies précédemment, deux types de revenus sont
envisagés: d'une part le salaire et d'autre part toutes les autres sources de revenus. les
deux revenus sont représentés par des nombres réels. Pour calculer les charges globales,
on applique un coefficient fixe de 20% sur les salaires et de 15% sur les autres revenus.
Enrichissez la représentation précédente pour prendre en compte ces nouveaux éléments.
3) Un objet de la classe Personne peut être créé a partir du nom et de la date de
naissance. Il est possible de changer le prénom d'une personne. par ailleurs, le calcul des
charges ne se fait pas de la même manière lorsque la personne décède.
Enrichissez encore la représentation précédente pour prendre en compte ces nouveaux
éléments.
20:29 52
Diagramme de classes (DCL)
• Solution
20:29 53
Diagramme de classes (DCL)
• Relations entre classes
1. Association
2. Agrégation
3. Composition
4. Dépendance
5. Héritage
6. Interfaces
20:29 54
Diagramme de classes (DCL)
• Association :
Une association est une relation sémantique durable entre deux
classes.
• représente les liens qui existent entre les instances de ces classes.
• Chaque association peut être identifié par son nom
• Exemple :
une personne peut travailler pour une entreprise. La relation «travaille
pour» est une association entre les classes «personne» et «entreprise».
20:29 55
Diagramme de classes (DCL)
• Multiplicité des associations
Est une information portée par le rôle, qui quantifie le nombre de fois
où un objet participe à une instance de relation
20:29 56
Diagramme de classes (DCL)
• Multiplicité des associations
• Exemple:
• 1 : chaque personne travaille pour une et une seule entreprise
(toutes les personnes ont un emploi)
• 0..* : Une entreprise emploie de zéro à plusieurs personnes
20:29 57
Diagramme de classes (DCL)
• Rôle d’association
Avec l’UML, l’extrémité d’une association peut être enrichie d’un
rôle:
• Un rôle définit la manière dont une classe intervient dans une relation,
est placé à une extrémité du lien d’association
• Toute association binaire possède 2 rôles
• Le professeur perçoit les Masters comme une certaine responsabilité et
un Master perçoit un professeur comme son responsable
20:29 58
Diagramme de classes (DCL)
• Une association entre deux classes peut être multiple :
• « nom » est souvent un verbe complété par un sens de lecture.
• l’exemple suivant représente à la fois les vœux et les affectations qui lient les
étudiants aux stages en nommant les associations
20:29 59
Diagramme de classes (DCL)
• Une association peut être réflexive :
20:29 60
Diagramme de classes (DCL)
• Association à navigabilité restreinte :
• Par défaut, une association est navigable dans les deux
sens.
• Mais, on peut aussi indiquer que les instances d’une
classe ne connaissent pas les instances d’une autre.
20:29 61
Diagramme de classes (DCL)
• Contraintes sur les associations
• Une contrainte est une relation sémantique entre des éléments du
modèle qui spécifie les conditions et les propositions qui doivent
être respectées, il s’agit d’un texte encadré d’accolades.
20:29 62
Diagramme de classes (DCL)
• Contraintes sur les associations:
• Dans cet exemple, on peut faire un choix entre deux associations
possibles.
20:29 63
Diagramme de classes (DCL)
• Classe Association
• Certaines associations nécessitent de stocker des informations
complémentaires qui, d’un point de vue conceptuel, ne peuvent
faire partie d’aucune des classes de la relation.
• On crée alors une nouvelle classe dite classe d’association,
destinée à contenir ces informations.
20:29 64
Diagramme de classes (DCL)
• Agrégation :
• est une association qui permet de représenter un lien de type « ensemble »
comprenant des « éléments »
• est une association non symétrique : l’une des extrémités joue un rôle
prédominant par rapport à l’autre
• Elle est possible d’utiliser une agrégation dans les cas suivants :
1. Lorsqu’une classe fait partie d’une autre classe ;
2. Lorsqu’une action sur une classe implique une action sur une autre classe;
3. Quand les objets d’une classe sont subordonnées aux objets d’une autre classe.
20:29 65
Diagramme de classes (DCL)
• Propriétés de l’agrégation :
• Les cycles de vie de l’agrégat et de ses éléments agrégés sont
indépendants : ils peuvent exister l’un sans l’autre.
• Un élément peut appartenir à plusieurs agrégats.
• L’agrégation peut être multiple comme une association classique
• Exemples d’agrégation :
20:29 66
Diagramme de classes (DCL)
• Agrégation
• Exemple :
Ici, on exprime qu’un fichier peut être attaché à un email (ou à plusieurs,
au même à aucun) et qu’un email peut (ou non) attacher (contenir une
copie) un ou plusieurs fichiers
20:29 67
Diagramme de classes (DCL)
• Agrégation particulière : Composition
• Les cycles de vie du composite et de ses composants sont liés : la création
ou la destruction d’un composite implique celle de ses composants.
• La suppression de la classe composé implique la suppression de la ou des
classes composant.
• La valeur maximale de multiplicité du côté du conteneur ne doit pas
excéder 1 puisque les objets, instances de la classe des composants,
doivent tous appartenir au même objet conteneur (Un élément ne peut
appartenir qu’à un seul composite).
20:29 68
Diagramme de classes (DCL)
• Composition :
• Exemple:
20:29 69
Diagramme de classes (DCL)
• Dépendance :
relation unidirectionnelle indiquant qu’une classe est modifiée si
l’élément dont elle dépend est lui même modifié
• Représentation :
• Exemple :
20:29 70
Diagramme de classes (DCL)
• Dépendance
• Une dépendance est une relation unidirectionnelle exprimant une
dépendance sémantique entre des éléments du modèle.
• Elle indique que la modification de la cible peut impliquer une
modification de la source.
• On utilise souvent une dépendance quand une classe en utilise
une autre comme argument dans la signature d’une opération.
20:29 71
Diagramme de classes (DCL)
• Héritage :
relation de spécialisation/généralisation entre deux classes. Elle
indique qu’une classe dite classe fille spécialise une autre classe
dite classe mère, i.e. qu’elle possède les attributs et les méthodes de
la classe mère plus d’autres qui lui sont propres.
• Représentation :
20:29 72
Diagramme de classes (DCL)
• Héritage :
• Les deux visions de l’héritage :
• Spécialisation :
On étend les propriétés d’une classe à des sous-classes plus
spécifiques. Cela permet donc la réutilisation de modèles déjà
existants.
• Généralisation :
On factorise les propriétés communes d’un ensemble de
classes dans une super-classe plus abstraite. Cela permet de
gagner en généricité.
20:29 73
Diagramme de classes (DCL)
• Héritage :
20:29 74
Diagramme de classes (DCL)
• Héritage:
Exemple :
20:29 75
Diagramme de classes (DCL)
• Propriétés de l’héritage :
• Une classe fille possède les attributs et méthodes de sa classe
mère mais n’a accès à ceux-ci que s’ils sont déclarés « publics »
ou « protégés ».
• Une classe fille peut redéfinir (avec la même signature) des
méthodes de la classe mère. C’est le mécanisme de
polymorphisme.
• Les associations de la classe mère s’appliquent par défaut aux
classes filles.
20:29 76
Diagramme de classes (DCL)
• Interfaces:
• D’autres classes utiliseront l’interface pour réaliser leurs
opérations. On les dit classes clientes de l’interface.
• C’est un lien de dépendance qui unit une classe cliente à une
interface, complété par le stéréotype « uses ».
• Représentation :
20:29 77
Diagramme de classes (DCL)
• But d’une interface
L’interface est utilisée pour diminuer le couplage
entre les classes car une classe « cliente » qui
utilise les services spécifiés dans une interface
n’a pas besoin de connaître quelle classe «
serveur » implante réellement ce service ni de
quelle manière ces services sont implantés.
20:29 78
Diagramme de classes (DCL)
• Interfaces:
Exemple :
20:29 79
Diagramme de classes (DCL)
• Plan d’élaboration d’un DCL
• Identifier les classes. Cela peut se faire à partir d’une liste de
classes « candidates » fournies par un expert du domaine. On
éliminera les classes redondantes et les classes superflues (celles
qui ne sont pas en rapport direct avec le problème).
• Établir les associations entre les classes
• Identifier les attributs des classes..
20:29 80
Diagramme de classes (DCL)
• Plan d’élaboration d’un DCL
• Organiser et simplifier le modèle, en particulier en utilisant la
relation d’héritage.
• Recommencer toute cette procédure du début à la fin autant de
fois que nécessaire. Au fil des itérations, le modèle s’affinera.
• Utiliser un diagramme d’objets pour donner un exemple, ou pour
préciser un aspect délicat du diagramme de classes.
20:29 81
Exercice
A partir des phrases suivantes, élaborez le diagramme de classe
Correspondant:
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert a la réservation et fermé sur ordre de la Compagnie
3. Un client peut réserver un ou plusieurs vols, pour des passagers
différents.
4. Une réservation concerne un seul vol et un seul passager
5. Une réservation peut être annulée ou confirme
6. Un vol a un aéroport de départ et un aéroport d'arrivée.
7. Un vol a un jour et une heure de départ et un jour et une heure
d'arrivée.
8. Un vol peut comporter des escales dans des aéroports
9. Une escale a une heure d'arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes
20:29 82
Exercice
20:29 83
DIAGRAMME D’OBJETS
20:29 84
Diagramme de objets (DOB)
• Un diagramme d’objets représente des instances de
classes et leurs relations.
• Il sert entre autres à illustrer le diagramme de classes en
montrant un exemple explicatif du modèle.
• Il va permettre également de clarifier certaines relations
entre classes, en particulier les associations réflexives et
multiples.
20:29 85
Diagramme de objets (DOB)
• Diagramme d’objets
20:29 86
Diagramme de objets (DOB)
• Représentation d’objet en UML
• Trois représentation possibles des instances :
• Exemples :
20:29 87
Diagramme de objets (DOB)
• Exemple : reconsidérons cette relation réflexive.
• Un diagramme d’objets va permettre de mieux voir les liens entre
des instances de la classe Personne qui n’ont pas le même rôle.
20:29 88
Diagramme de objets (DOB)
• Exemple (suite) :
le diagramme d’objets correspondant.
20:29 89
Diagramme de objets (DOB)
• Exemple (suite) :
20:29 90
Diagramme de objets (DOB)
• Diagramme d’objets : liens entre objets
• Les objets composites de sous-objets peuvent être visualisés :
• Les objets composites sont instances de classes composites
20:29 91
Diagramme de objets (DOB)
• Exercice:
Préparer un diagramme d'objets correspondant au
voyage imaginaire décrit ci-après. Le diagramme d'objets
contiendra uniquement les objets utiles dans le cadre de
cet exemple.
« Ali a été parti le 20 décembre 2021 à Paris suite à sa
réservation de voyage numéro R12502/15 du vol V4567
de la compagnie RAM; vol qui part tous les jours à 7h15
de l'aéroport Mohammed 5 de Casablanca et qui arrive à
10h10 à l'aéroport de Charles de Gaulle»
20:29 92
Diagramme de objets (DOB)
• Exercice
20:29 93
DIAGRAMME DE SÉQUENCE
(DES)
20:29 94
Diagramme de séquence (DES)
• Il donne une description dynamique du système.
• Il va permettre d’établir un lien entre le diagramme de cas
d’utilisation (vue fonctionnelle et externe d’un système) et le
diagramme de classes (vue statique et interne).
• Représente les interactions entre objets en précisant la chronologie
des échanges de messages.
• Permet de représenter les scénarios d’un cas d’utilisation donné:
• un scénario est une instance d’un cas d’utilisation
• Un message reçu par un objet déclenche l’exécution d’une opération, et en
général renvoie un message qui correspond au résultat de l’opération.
20:29 95
Diagramme de séquence (DES)
• Le cœur d’un diagramme de séquence est la description
des échanges de messages entre éléments du système
ou acteurs extérieurs.
• Les messages les plus courants sont :
• L’envoi d’un signal.
• L’appel d’une méthode d’un objet.
• La création ou la destruction d’un objet.
20:29 96
Diagramme de séquence (DES)
• Lignes de vie et périodes d’activité
• Ligne de vie :
représente un participant à une interaction. C’est par exemple un des
objets du système ou un acteur extérieur.
• Représentation :
20:29 97
Diagramme de séquence (DES)
• Lignes de vie et périodes d’activité
• Une ligne de vie signifie qu’un élément existe mais il n’est pas
nécessairement actif.
• Période d’activité : marque le fait qu’un élément soit actif. Cette
période commence généralement à la réception d’un message et
peut se clôturer par l’envoi d’une réponse.
• On la représente par un rectangle blanc sur la ligne de vie de
l’élément en question.
• Représentation :
20:29 98
Diagramme de séquence (DES)
• Lignes de vie et périodes d’activité
• Scénario A
20:29 99
Diagramme de séquence (DES)
• Création et destruction d’instances
• Un message peut également commander la création ou la
destruction d’un objet.
• La destruction d’un objet, se représente par « X »
• Représentation:
20:29 100
Diagramme de séquence (DES)
• Message synchrone : message bloquant l’activité de son
expéditeur. L’émetteur reste en attente de la réponse à son
message,
• Cela correspond par exemple à l’appel d’une méthode d’un objet.
• Représentation :
• Réponse :
20:29 101
Diagramme de séquence (DES)
• Message asynchrone : Message ne bloquant pas l’activité de son
expéditeur. L’émetteur n’attend pas la réponse à son message, il
poursuit l’exécution de ses opérations
• Cela correspond par exemple à l’envoi d’un signal.
• Représentation
20:29 102
Diagramme de séquence (DES)
• Exemple de DES du scénario retirer l’argent
20:29 103
Diagramme de séquence (DES)
• Fragments d’interaction combinés
Principe.
• Dans des situations complexes, on décomposera une interaction en
fragments, qui vont permettre de modéliser par exemple une alternative,
une itération ou encore une exécution de tâches en parallèle.
• Ces fragments d’interaction pourront faire intervenir tous ou une partie
des éléments du système.
• Les combiner et les imbriquer permettra alors de rendre compte de la
complexité d’un système.
20:29 104
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Principe.
• Représentation :
20:29 105
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateurs d’alternative et d’itération
• Opérateur alt : permet de modéliser une alternative entre plusieurs
scénarios.
• Représentation :
20:29 106
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateurs d’alternative et d’itération
• Exemple :
20:29 107
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateurs d’alternative et d’itération
• Opérateur opt : permet de modéliser un scénario optionnel. Selon la
validité d’une condition, une interaction aura lieu ou pas.
• Représentation :
20:29 108
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateurs d’alternative et d’itération
• Exemple
20:29 109
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateur break : permet de modéliser un scénario de rupture.
Selon la validité d’une condition, le scénario de l’interaction est
abandonné au profit du scénario contenu dans le fragment break.
• Représentation :
20:29 110
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Exemple :
20:29 111
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Exemple :
20:29 112
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateur loop : permet de modéliser une itération. Le nombre de
boucle est compris entre une valeur minimum et une valeur
maximum, et peut de plus être soumis à une condition.
• Représentation :
20:29 113
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Exemple :
20:29 114
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Opérateur par : permet de modéliser des interactions ayant lieu en
parallèle. Dans chaque opérande les évènements se déroulent
dans l’ordre, mais pris globalement ils peuvent s’entrelacer.
• Représentation
20:29 115
Diagramme de séquence (DES)
• Fragments d’interaction combinés
• Exemple :
20:29 116
Diagramme de séquence (DES)
Exercice d'application
Le déroulement de réservation de vol est le suivant:
• le Client sélectionne un vol.
• Une validation de nombre de place automatique du système se déclenche.
• Si le nombre de places réservés est inferieur au nombre de places
disponibles dans un vol, la création de la réservation se lance, sinon une
erreur s'affichera au client.
Le déroulement de création de vol est le suivant
• Le gestionnaire affecte un avion à un vol: il doit sélectionner un avion
disponible et l'affecter au vol
• En suite il doit sélectionner un aéroport de départ et un autre d'arrivée
• Puis il crée un vol après avoir spécifier les autres informations requis
Elaborez les DS relatifs à : « réserver dans un vol » et« créer un vol »

Système_Interactif_Transformation_Digital_Industrielle.pptx

  • 1.
  • 2.
    20:29 2 Modélisation etmodèle • La Modélisation consiste à créer une représentation virtuelle de la réalité. Elle comporte deux composantes: • L'analyse, c'est-à-dire l'étude du problème; • la conception, soit la mise au point d'une solution au problème. • Un Modèle est une simplification de la réalité (abstraction de la réalité). Grâce au modèle il est possible de représenter simplement un problème, un concept et le simuler.
  • 3.
  • 4.
    20:29 4 Qu’est ceque l’UML ? • UML (Unified Modeling Language) est un langage de modélisation graphique. • Il est conçu pour représenter, construire et documenter des systèmes logiciels utilisant les techniques orientées objet. • Il permet la création de plusieurs modèles d’un même système, chacun privilégiant un aspect différent : fonctionnel, dynamique, statique.
  • 5.
    20:29 5 Qu’est ceque l’UML ? • Il offre plusieurs niveaux d’abstraction qui simplifient la conception des solutions. • Sa notation graphique est très adaptée à la conception orientée objet, et sera beaucoup plus simple à manipuler que l’algorithmique classique. • Son côté visuel facilite également la comparaison et l’évaluation de solutions. • C’est le résultat d’un large consensus et du travail d’experts reconnus. • UML est ainsi devenu un langage incontournable dans tout projet de taille conséquente.
  • 6.
    20:29 6 Qu’est ceque l’UML ? • UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus d'élaboration des modèles : UML n’est donc pas une méthode de modélisation. • Cependant, dans le cadre de la modélisation d'une application informatique, les auteurs d'UML préconisent d'utiliser une démarche : • Itérative et incrémentale : L’idée est simple : pour modéliser (comprendre et représenter) un système, il faut mieux s’y prendre en plusieurs fois, en affinant son analyse par étapes.
  • 7.
    20:29 7 Diagrammes d’UML •Un diagramme d’UML est une représentation graphique, qui s’intéresse à un aspect précis du modèle ; c’est une perspective du modèle. • UML propose 13 types de diagramme que l’on peut classer en trois catégories : diagrammes fonctionnels, dynamiques et statiques. • Diagrammes fonctionnels (ou comportementaux). 1. Diagramme de cas d’utilisation. 2. Diagramme d’activités. 3. Diagramme d’états-transitions.
  • 8.
    20:29 8 Diagrammes d’UML •Diagrammes dynamiques. 1. Diagramme de séquence. 2. Diagramme de collaboration. 3. Diagramme global d’interaction. 4. Diagramme de temps. • Diagrammes statiques. 1. Diagramme de classes. 2. Diagramme d’objets. 3. Diagramme de paquetage. 4. Diagramme de composants. 5. Diagramme de déploiement. 6. Diagramme de structure composite.
  • 9.
    20:29 9 Diagrammes d’UML •Dans la suite de ce cours, nous étudierons 10 Principaux diagrammes:
  • 10.
    20:29 10 DIAGRAMME DECAS D’UTILISATION
  • 11.
    20:29 11 Diagramme decas d’utilisation • But de ce diagramme • C’est souvent le premier diagramme construit lors du développement d’un projet. • Son but est de recenser les grandes fonctionnalités d’un système. • Il va clarifier, filtrer et structurer les besoins des utilisateurs, et donc les objectifs à atteindre par le système.
  • 12.
    20:29 12 Diagramme decas d’utilisation • Ce diagramme insiste uniquement sur ce que fait le système et non sur comment il va le faire. • Les solutions d’implémentation font l’objet d’autres diagrammes, comme par exemple les diagrammes de classes. • Cette démarche simplificatrice permet une meilleure compréhension du système à développer, et permet de vérifier tout au long de la conception que les besoins des utilisateurs sont satisfaits.
  • 13.
    20:29 13 Diagramme decas d’utilisation • Eléments du diagrammes des cas d’utilisation: 1. Frontière du système 2. Acteur 3. Cas d’utilisation 4. relations
  • 14.
    20:29 14 Diagramme decas d’utilisation • Acteurs et cas d’utilisation • Acteur : Un acteur est un entité externe au système qui interagit directement avec lui. L’acteur peut être humain, matériel,... • Représentation :
  • 15.
    20:29 15 Diagramme decas d’utilisation • Cas d’utilisation • Un cas d’utilisation est ensemble des actions réalisées par le système en réponse à une action d’un acteur; • Est un moyen de recueillir et de décrire les besoins des acteurs du système; • Les cas d’utilisation peuvent être organisée en paquetages • Représentation :
  • 16.
    20:29 16 Diagramme decas d’utilisation • Délimitation du système :
  • 17.
    20:29 17 Diagramme decas d’utilisation • Association (acteur  C.U) : Marque la participation d’un acteur à un cas d’utilisation. • Représentation :
  • 18.
    20:29 18 Diagramme decas d’utilisation • Exemple:
  • 19.
    20:29 19 Diagramme decas d’utilisation • On distingue entre deux types d’acteurs: • Acteur principal : celui pour qui le cas d’utilisation produit un résultat observable et qui a le pouvoir de le déclencher. • Acteur secondaire : autre participant du cas d’utilisation sollicité dans le cadre de sa réalisation. • Représentation:
  • 20.
    20:29 20 Diagramme decas d’utilisation • Exemple:
  • 21.
    20:29 21 Diagramme decas d’utilisation • Exemple:
  • 22.
    20:29 22 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Afin de clarifier les diagrammes, de limiter le nombre de liens et de gagner en lisibilité, UML permet d’établir des relations de trois types entre les cas d’utilisation : 1. Relation d’inclusion. 2. Relation d’extension. 3. Relation de généralisation / spécialisation.
  • 23.
    20:29 23 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Relation d’inclusion ou d’utilisation : un cas A est inclus dans un cas B si la sollicitation de A entraine nécessairement celle de B comme une partie de A. • Représentation : • Exemple:
  • 24.
    20:29 24 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Exemple : Dans cet exemple, la relation « include » indique que le cas d’utilisation source contient aussi le comportement décrit dans le cas d’utilisation destination. En d’autres termes, pour réaliser l’objectif « imprimer solde compte », on utilise les objectifs « consulter compte » et « imprimer un ticket » du système
  • 25.
    20:29 25 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Relation d’extension : un cas B étend un cas A si la sollicitation de A peut éventuellement provoquer celle de B en complément de A. • Représentation • La relation d’extension est souvent soumise à condition. Cette condition est représentée graphiquement sous forme de note.
  • 26.
    20:29 26 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Exemple:
  • 27.
    20:29 27 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Relation de généralisation / spécialisation (ou héritage) : • indique qu’un cas B est un cas particulier d’un cas A, ou autrement dit qu’un cas A est une généralisation d’un cas B. • Un acteur en relation avec un cas A le sera aussi avec B. • Représentation :
  • 28.
    20:29 28 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Relation de généralisation / spécialisation (ou héritage) : • Exemple:
  • 29.
    20:29 29 Diagramme decas d’utilisation • Relation de généralisation / spécialisation (ou héritage): • Indique qu’un acteur B est un cas particulier d’un acteur A. Tous les cas d’utilisation accessibles à A le seront aussi à B. • Représentation :
  • 30.
    20:29 30 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Relation de généralisation / spécialisation (ou héritage) : • Exemple:
  • 31.
    20:29 31 Diagramme decas d’utilisation • Relations entre cas d’utilisation • Exemple récapitulatif :
  • 32.
    20:29 32 Diagramme decas d’utilisation • Exercice . Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du matériel pédagogique (ordinateur portable ou/et vidéo projecteur). • Seuls les enseignants sont habilités à effectuer des réservations (sous réserve de disponibilité de la salle ou du matériel). • Le planning des salles peut quant à lui être consulté par tout le monde (enseignants et étudiants). Par contre, le récapitulatif horaire par enseignant ne peut ne peut être consulté que par les enseignants. • Enfin, il existe pour chaque formation un enseignant responsable qui seul peut éditer le récapitulatif horaire pour l’ensemble de la formation. • Questions 1. Identifier les acteurs, 2. Identifier les cas d’utilisation 3. Donnez le diagramme de cas d’utilisation (en utilisant le StarUML OU ArgoUML ou un autre logiciel de votre choix)
  • 33.
    20:29 33 Diagramme decas d’utilisation • Exercice . Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du matériel pédagogique (ordinateur portable ou/et vidéo projecteur). • Seuls les enseignants sont habilités à effectuer des réservations (sous réserve de disponibilité de la salle ou du matériel). • Le planning des salles peut quant à lui être consulté par tout le monde (enseignants et étudiants). Par contre, le récapitulatif horaire par enseignant ne peut ne peut être consulté que par les enseignants. • Enfin, il existe pour chaque formation un enseignant responsable qui seul peut éditer le récapitulatif horaire pour l’ensemble de la formation. • Questions 1. Identifier les acteurs, 2. Identifier les cas d’utilisation 3. Donnez le diagramme de cas d’utilisation (en utilisant le StarUML OU ArgoUML ou un autre logiciel de votre choix)
  • 34.
    20:29 34 Diagramme decas d’utilisation • Corrigé
  • 35.
    20:29 35 DIAGRAMME DECLASSES (DCL)
  • 36.
    20:29 36 Diagramme declasses (DCL) • But du diagramme de classes. • Le diagramme de cas d’utilisation montre un système du point de vue des acteurs. • Le diagramme de classes va présenter la structure interne du système. • Il donne une vue statique du système, en montrant les classes et leurs relations entre elles. • L’aspect dynamique sera apporté par exemple par un diagramme de séquence (voir la suite).
  • 37.
    20:29 37 Diagramme declasses (DCL) • Classe d'objets : Décrit un groupe d’objets ayant les mêmes propriétés et le même comportement (même structure et même ensemble de méthodes) afin d'en faciliter la gestion. • Représentation: • Exemple :
  • 38.
    20:29 38 Diagramme declasses (DCL) • Approche classe / Objet • Objet : entité identifiable du monde réel pouvant avoir ou pas une existence physique. • Un objet possède trois composantes : 1. Une identité. 2. Des variables définissant sont état (attributs). 3. Des sous programmes gérant son comportement (méthodes). • Exemple d’une classe et d’une de ses instances
  • 39.
    20:29 39 Diagramme declasses (DCL) • Approche classe / Objet • Encapsulation : permet l’accès aux données uniquement via les méthodes. • Association : représente une relation entre plusieurs classes • Héritage : permet la classification, la généralisation et la spécialisation. est un mécanisme de transmission des propriétés d’une classe (ses attributs et méthodes) vers une sous-classe. • Une classe peut être spécialisée en d’autres classes, afin d’y ajouter des caractéristiques spécifiques ou d’en adapter certaines. • Plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques communes d’un ensemble de classes;
  • 40.
    20:29 40 Diagramme declasses (DCL) • Approche classe / Objet • Agrégation : est une relation qui permet de décrire un objet composite en terme d'objets qui le constituent. • Polymorphisme : est la capacité donnée à une même opération de s’exécuter différemment suivant le contexte de la classe où elle se trouve; • Exemple : exécution d’un calcul de salaire de deux sous-classes spécialisées (une pour les cadres, l’autre pour les non-cadres)
  • 41.
    20:29 41 Diagramme declasses (DCL) • Visibilité des attributs et méthodes : • Un attribut ou une méthode sont dits privés si leur utilisation est interdite en dehors de la classe. • Un attribut ou une méthode sont dits publics si leur utilisation est autorisée en dehors de la classe. • Un attribut ou une méthode sont dits protégés si leur utilisation est limitée à la classe et ses descendantes.
  • 42.
    20:29 42 Diagramme declasses (DCL) • Représentation de la visibilité : • Public (+) : accès à partir de toute entité interne ou externe à la classe • Protégé (#) : accès à partir de la classe ou des sous-classes • Privé (-) : accès à partir des opérations de la classe • Exemple:
  • 43.
    20:29 43 Diagramme declasses (DCL) • Possibilité d’initialisation des attributs: • Possibilité d’initialisation des attributs Lors de la déclaration d’un attribut on peut lui attribuer une valeur par défaut. • Exemple:
  • 44.
    20:29 44 Diagramme declasses (DCL) • Attributs de classes : ce sont des attributs particuliers qui ont la même valeur pour toutes les instances de la classe. L’exemple fondamental est un attribut qui compte le nombre d’objets instanciés de la classe. • Représentation : ils sont soulignés. Exemple:
  • 45.
    20:29 45 Diagramme declasses (DCL) • Attributs dérivés : attributs dont la valeur peut être calculée à partir d’autres attributs et de formules de calcul. • Représentation : avec un « / » devant le nom. • Exemple :
  • 46.
    20:29 46 Diagramme declasses (DCL) • Multiplicité : il est possible d’indiquer la multiplicité d’un attribut, c’est à dire le nombre de valeurs que la variable peut stocker. • Représentation : entre [ ]. • Exemple:
  • 47.
    20:29 47 Diagramme declasses (DCL) • Méthodes • Sont des fonctions applicables aux objets d’une classe • Permettent de décrire le comportement d’un objet • Dans la signature des méthodes on peut de façon optionnelle : • Donner des valeurs par défaut aux paramètres. • Spécifier la nature des paramètres (entrée, sortie, entrée/sortie).
  • 48.
    20:29 48 Diagramme declasses (DCL) • Méthodes • Méthodes de classes : ce sont des méthodes qui ne dépendent pas des attributs propres de chaque objet mais qui portent sur les attributs de classes. • Représentation : elles sont soulignées.
  • 49.
    20:29 49 Diagramme declasses (DCL) • Classe abstraite : • classe qui ne peut être instanciée, car elle contient des méthodes abstraites, c’est à dire des méthodes non implémentées. • Une classe abstraite sert essentiellement à factoriser des méthodes et attributs communs à plusieurs classes, et ce dans une relation d’héritage. • Représentation : On fait précéder les méthodes abstraites par le stéréotype « abstract ».
  • 50.
    20:29 50 Diagramme declasses (DCL) • Classes abstraites: • Interface : il s’agit d’une classe totalement abstraite, c’est à dire d’une classe sans attributs qui ne contient que des méthodes abstraites. • Son rôle est de regrouper un ensemble cohérent d’opérations. • On utilise des interfaces pour classer les opérations en catégories sans se soucier de leurs implémentations. • Représentations d’une interface
  • 51.
    20:29 51 Diagramme declasses (DCL) Exercice : Une personne est caractérisée par son nom, son prénom, son sexe et son âge. Les objets de classe Personne doivent pouvoir calculer leurs revenus et leurs charges. Les attributs de la classe sont privés; le nom, le prénom ainsi que l’âge de la personne doivent être accessibles par des opérations publiques. 1) Donnez une représentation UML de la classe Personne. 2) En plus des informations fournies précédemment, deux types de revenus sont envisagés: d'une part le salaire et d'autre part toutes les autres sources de revenus. les deux revenus sont représentés par des nombres réels. Pour calculer les charges globales, on applique un coefficient fixe de 20% sur les salaires et de 15% sur les autres revenus. Enrichissez la représentation précédente pour prendre en compte ces nouveaux éléments. 3) Un objet de la classe Personne peut être créé a partir du nom et de la date de naissance. Il est possible de changer le prénom d'une personne. par ailleurs, le calcul des charges ne se fait pas de la même manière lorsque la personne décède. Enrichissez encore la représentation précédente pour prendre en compte ces nouveaux éléments.
  • 52.
    20:29 52 Diagramme declasses (DCL) • Solution
  • 53.
    20:29 53 Diagramme declasses (DCL) • Relations entre classes 1. Association 2. Agrégation 3. Composition 4. Dépendance 5. Héritage 6. Interfaces
  • 54.
    20:29 54 Diagramme declasses (DCL) • Association : Une association est une relation sémantique durable entre deux classes. • représente les liens qui existent entre les instances de ces classes. • Chaque association peut être identifié par son nom • Exemple : une personne peut travailler pour une entreprise. La relation «travaille pour» est une association entre les classes «personne» et «entreprise».
  • 55.
    20:29 55 Diagramme declasses (DCL) • Multiplicité des associations Est une information portée par le rôle, qui quantifie le nombre de fois où un objet participe à une instance de relation
  • 56.
    20:29 56 Diagramme declasses (DCL) • Multiplicité des associations • Exemple: • 1 : chaque personne travaille pour une et une seule entreprise (toutes les personnes ont un emploi) • 0..* : Une entreprise emploie de zéro à plusieurs personnes
  • 57.
    20:29 57 Diagramme declasses (DCL) • Rôle d’association Avec l’UML, l’extrémité d’une association peut être enrichie d’un rôle: • Un rôle définit la manière dont une classe intervient dans une relation, est placé à une extrémité du lien d’association • Toute association binaire possède 2 rôles • Le professeur perçoit les Masters comme une certaine responsabilité et un Master perçoit un professeur comme son responsable
  • 58.
    20:29 58 Diagramme declasses (DCL) • Une association entre deux classes peut être multiple : • « nom » est souvent un verbe complété par un sens de lecture. • l’exemple suivant représente à la fois les vœux et les affectations qui lient les étudiants aux stages en nommant les associations
  • 59.
    20:29 59 Diagramme declasses (DCL) • Une association peut être réflexive :
  • 60.
    20:29 60 Diagramme declasses (DCL) • Association à navigabilité restreinte : • Par défaut, une association est navigable dans les deux sens. • Mais, on peut aussi indiquer que les instances d’une classe ne connaissent pas les instances d’une autre.
  • 61.
    20:29 61 Diagramme declasses (DCL) • Contraintes sur les associations • Une contrainte est une relation sémantique entre des éléments du modèle qui spécifie les conditions et les propositions qui doivent être respectées, il s’agit d’un texte encadré d’accolades.
  • 62.
    20:29 62 Diagramme declasses (DCL) • Contraintes sur les associations: • Dans cet exemple, on peut faire un choix entre deux associations possibles.
  • 63.
    20:29 63 Diagramme declasses (DCL) • Classe Association • Certaines associations nécessitent de stocker des informations complémentaires qui, d’un point de vue conceptuel, ne peuvent faire partie d’aucune des classes de la relation. • On crée alors une nouvelle classe dite classe d’association, destinée à contenir ces informations.
  • 64.
    20:29 64 Diagramme declasses (DCL) • Agrégation : • est une association qui permet de représenter un lien de type « ensemble » comprenant des « éléments » • est une association non symétrique : l’une des extrémités joue un rôle prédominant par rapport à l’autre • Elle est possible d’utiliser une agrégation dans les cas suivants : 1. Lorsqu’une classe fait partie d’une autre classe ; 2. Lorsqu’une action sur une classe implique une action sur une autre classe; 3. Quand les objets d’une classe sont subordonnées aux objets d’une autre classe.
  • 65.
    20:29 65 Diagramme declasses (DCL) • Propriétés de l’agrégation : • Les cycles de vie de l’agrégat et de ses éléments agrégés sont indépendants : ils peuvent exister l’un sans l’autre. • Un élément peut appartenir à plusieurs agrégats. • L’agrégation peut être multiple comme une association classique • Exemples d’agrégation :
  • 66.
    20:29 66 Diagramme declasses (DCL) • Agrégation • Exemple : Ici, on exprime qu’un fichier peut être attaché à un email (ou à plusieurs, au même à aucun) et qu’un email peut (ou non) attacher (contenir une copie) un ou plusieurs fichiers
  • 67.
    20:29 67 Diagramme declasses (DCL) • Agrégation particulière : Composition • Les cycles de vie du composite et de ses composants sont liés : la création ou la destruction d’un composite implique celle de ses composants. • La suppression de la classe composé implique la suppression de la ou des classes composant. • La valeur maximale de multiplicité du côté du conteneur ne doit pas excéder 1 puisque les objets, instances de la classe des composants, doivent tous appartenir au même objet conteneur (Un élément ne peut appartenir qu’à un seul composite).
  • 68.
    20:29 68 Diagramme declasses (DCL) • Composition : • Exemple:
  • 69.
    20:29 69 Diagramme declasses (DCL) • Dépendance : relation unidirectionnelle indiquant qu’une classe est modifiée si l’élément dont elle dépend est lui même modifié • Représentation : • Exemple :
  • 70.
    20:29 70 Diagramme declasses (DCL) • Dépendance • Une dépendance est une relation unidirectionnelle exprimant une dépendance sémantique entre des éléments du modèle. • Elle indique que la modification de la cible peut impliquer une modification de la source. • On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans la signature d’une opération.
  • 71.
    20:29 71 Diagramme declasses (DCL) • Héritage : relation de spécialisation/généralisation entre deux classes. Elle indique qu’une classe dite classe fille spécialise une autre classe dite classe mère, i.e. qu’elle possède les attributs et les méthodes de la classe mère plus d’autres qui lui sont propres. • Représentation :
  • 72.
    20:29 72 Diagramme declasses (DCL) • Héritage : • Les deux visions de l’héritage : • Spécialisation : On étend les propriétés d’une classe à des sous-classes plus spécifiques. Cela permet donc la réutilisation de modèles déjà existants. • Généralisation : On factorise les propriétés communes d’un ensemble de classes dans une super-classe plus abstraite. Cela permet de gagner en généricité.
  • 73.
    20:29 73 Diagramme declasses (DCL) • Héritage :
  • 74.
    20:29 74 Diagramme declasses (DCL) • Héritage: Exemple :
  • 75.
    20:29 75 Diagramme declasses (DCL) • Propriétés de l’héritage : • Une classe fille possède les attributs et méthodes de sa classe mère mais n’a accès à ceux-ci que s’ils sont déclarés « publics » ou « protégés ». • Une classe fille peut redéfinir (avec la même signature) des méthodes de la classe mère. C’est le mécanisme de polymorphisme. • Les associations de la classe mère s’appliquent par défaut aux classes filles.
  • 76.
    20:29 76 Diagramme declasses (DCL) • Interfaces: • D’autres classes utiliseront l’interface pour réaliser leurs opérations. On les dit classes clientes de l’interface. • C’est un lien de dépendance qui unit une classe cliente à une interface, complété par le stéréotype « uses ». • Représentation :
  • 77.
    20:29 77 Diagramme declasses (DCL) • But d’une interface L’interface est utilisée pour diminuer le couplage entre les classes car une classe « cliente » qui utilise les services spécifiés dans une interface n’a pas besoin de connaître quelle classe « serveur » implante réellement ce service ni de quelle manière ces services sont implantés.
  • 78.
    20:29 78 Diagramme declasses (DCL) • Interfaces: Exemple :
  • 79.
    20:29 79 Diagramme declasses (DCL) • Plan d’élaboration d’un DCL • Identifier les classes. Cela peut se faire à partir d’une liste de classes « candidates » fournies par un expert du domaine. On éliminera les classes redondantes et les classes superflues (celles qui ne sont pas en rapport direct avec le problème). • Établir les associations entre les classes • Identifier les attributs des classes..
  • 80.
    20:29 80 Diagramme declasses (DCL) • Plan d’élaboration d’un DCL • Organiser et simplifier le modèle, en particulier en utilisant la relation d’héritage. • Recommencer toute cette procédure du début à la fin autant de fois que nécessaire. Au fil des itérations, le modèle s’affinera. • Utiliser un diagramme d’objets pour donner un exemple, ou pour préciser un aspect délicat du diagramme de classes.
  • 81.
    20:29 81 Exercice A partirdes phrases suivantes, élaborez le diagramme de classe Correspondant: 1. Des compagnies aériennes proposent différents vols. 2. Un vol est ouvert a la réservation et fermé sur ordre de la Compagnie 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager 5. Une réservation peut être annulée ou confirme 6. Un vol a un aéroport de départ et un aéroport d'arrivée. 7. Un vol a un jour et une heure de départ et un jour et une heure d'arrivée. 8. Un vol peut comporter des escales dans des aéroports 9. Une escale a une heure d'arrivée et une heure de départ. 10. Chaque aéroport dessert une ou plusieurs villes
  • 82.
  • 83.
  • 84.
    20:29 84 Diagramme deobjets (DOB) • Un diagramme d’objets représente des instances de classes et leurs relations. • Il sert entre autres à illustrer le diagramme de classes en montrant un exemple explicatif du modèle. • Il va permettre également de clarifier certaines relations entre classes, en particulier les associations réflexives et multiples.
  • 85.
    20:29 85 Diagramme deobjets (DOB) • Diagramme d’objets
  • 86.
    20:29 86 Diagramme deobjets (DOB) • Représentation d’objet en UML • Trois représentation possibles des instances : • Exemples :
  • 87.
    20:29 87 Diagramme deobjets (DOB) • Exemple : reconsidérons cette relation réflexive. • Un diagramme d’objets va permettre de mieux voir les liens entre des instances de la classe Personne qui n’ont pas le même rôle.
  • 88.
    20:29 88 Diagramme deobjets (DOB) • Exemple (suite) : le diagramme d’objets correspondant.
  • 89.
    20:29 89 Diagramme deobjets (DOB) • Exemple (suite) :
  • 90.
    20:29 90 Diagramme deobjets (DOB) • Diagramme d’objets : liens entre objets • Les objets composites de sous-objets peuvent être visualisés : • Les objets composites sont instances de classes composites
  • 91.
    20:29 91 Diagramme deobjets (DOB) • Exercice: Préparer un diagramme d'objets correspondant au voyage imaginaire décrit ci-après. Le diagramme d'objets contiendra uniquement les objets utiles dans le cadre de cet exemple. « Ali a été parti le 20 décembre 2021 à Paris suite à sa réservation de voyage numéro R12502/15 du vol V4567 de la compagnie RAM; vol qui part tous les jours à 7h15 de l'aéroport Mohammed 5 de Casablanca et qui arrive à 10h10 à l'aéroport de Charles de Gaulle»
  • 92.
    20:29 92 Diagramme deobjets (DOB) • Exercice
  • 93.
    20:29 93 DIAGRAMME DESÉQUENCE (DES)
  • 94.
    20:29 94 Diagramme deséquence (DES) • Il donne une description dynamique du système. • Il va permettre d’établir un lien entre le diagramme de cas d’utilisation (vue fonctionnelle et externe d’un système) et le diagramme de classes (vue statique et interne). • Représente les interactions entre objets en précisant la chronologie des échanges de messages. • Permet de représenter les scénarios d’un cas d’utilisation donné: • un scénario est une instance d’un cas d’utilisation • Un message reçu par un objet déclenche l’exécution d’une opération, et en général renvoie un message qui correspond au résultat de l’opération.
  • 95.
    20:29 95 Diagramme deséquence (DES) • Le cœur d’un diagramme de séquence est la description des échanges de messages entre éléments du système ou acteurs extérieurs. • Les messages les plus courants sont : • L’envoi d’un signal. • L’appel d’une méthode d’un objet. • La création ou la destruction d’un objet.
  • 96.
    20:29 96 Diagramme deséquence (DES) • Lignes de vie et périodes d’activité • Ligne de vie : représente un participant à une interaction. C’est par exemple un des objets du système ou un acteur extérieur. • Représentation :
  • 97.
    20:29 97 Diagramme deséquence (DES) • Lignes de vie et périodes d’activité • Une ligne de vie signifie qu’un élément existe mais il n’est pas nécessairement actif. • Période d’activité : marque le fait qu’un élément soit actif. Cette période commence généralement à la réception d’un message et peut se clôturer par l’envoi d’une réponse. • On la représente par un rectangle blanc sur la ligne de vie de l’élément en question. • Représentation :
  • 98.
    20:29 98 Diagramme deséquence (DES) • Lignes de vie et périodes d’activité • Scénario A
  • 99.
    20:29 99 Diagramme deséquence (DES) • Création et destruction d’instances • Un message peut également commander la création ou la destruction d’un objet. • La destruction d’un objet, se représente par « X » • Représentation:
  • 100.
    20:29 100 Diagramme deséquence (DES) • Message synchrone : message bloquant l’activité de son expéditeur. L’émetteur reste en attente de la réponse à son message, • Cela correspond par exemple à l’appel d’une méthode d’un objet. • Représentation : • Réponse :
  • 101.
    20:29 101 Diagramme deséquence (DES) • Message asynchrone : Message ne bloquant pas l’activité de son expéditeur. L’émetteur n’attend pas la réponse à son message, il poursuit l’exécution de ses opérations • Cela correspond par exemple à l’envoi d’un signal. • Représentation
  • 102.
    20:29 102 Diagramme deséquence (DES) • Exemple de DES du scénario retirer l’argent
  • 103.
    20:29 103 Diagramme deséquence (DES) • Fragments d’interaction combinés Principe. • Dans des situations complexes, on décomposera une interaction en fragments, qui vont permettre de modéliser par exemple une alternative, une itération ou encore une exécution de tâches en parallèle. • Ces fragments d’interaction pourront faire intervenir tous ou une partie des éléments du système. • Les combiner et les imbriquer permettra alors de rendre compte de la complexité d’un système.
  • 104.
    20:29 104 Diagramme deséquence (DES) • Fragments d’interaction combinés • Principe. • Représentation :
  • 105.
    20:29 105 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateurs d’alternative et d’itération • Opérateur alt : permet de modéliser une alternative entre plusieurs scénarios. • Représentation :
  • 106.
    20:29 106 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateurs d’alternative et d’itération • Exemple :
  • 107.
    20:29 107 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateurs d’alternative et d’itération • Opérateur opt : permet de modéliser un scénario optionnel. Selon la validité d’une condition, une interaction aura lieu ou pas. • Représentation :
  • 108.
    20:29 108 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateurs d’alternative et d’itération • Exemple
  • 109.
    20:29 109 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateur break : permet de modéliser un scénario de rupture. Selon la validité d’une condition, le scénario de l’interaction est abandonné au profit du scénario contenu dans le fragment break. • Représentation :
  • 110.
    20:29 110 Diagramme deséquence (DES) • Fragments d’interaction combinés • Exemple :
  • 111.
    20:29 111 Diagramme deséquence (DES) • Fragments d’interaction combinés • Exemple :
  • 112.
    20:29 112 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateur loop : permet de modéliser une itération. Le nombre de boucle est compris entre une valeur minimum et une valeur maximum, et peut de plus être soumis à une condition. • Représentation :
  • 113.
    20:29 113 Diagramme deséquence (DES) • Fragments d’interaction combinés • Exemple :
  • 114.
    20:29 114 Diagramme deséquence (DES) • Fragments d’interaction combinés • Opérateur par : permet de modéliser des interactions ayant lieu en parallèle. Dans chaque opérande les évènements se déroulent dans l’ordre, mais pris globalement ils peuvent s’entrelacer. • Représentation
  • 115.
    20:29 115 Diagramme deséquence (DES) • Fragments d’interaction combinés • Exemple :
  • 116.
    20:29 116 Diagramme deséquence (DES) Exercice d'application Le déroulement de réservation de vol est le suivant: • le Client sélectionne un vol. • Une validation de nombre de place automatique du système se déclenche. • Si le nombre de places réservés est inferieur au nombre de places disponibles dans un vol, la création de la réservation se lance, sinon une erreur s'affichera au client. Le déroulement de création de vol est le suivant • Le gestionnaire affecte un avion à un vol: il doit sélectionner un avion disponible et l'affecter au vol • En suite il doit sélectionner un aéroport de départ et un autre d'arrivée • Puis il crée un vol après avoir spécifier les autres informations requis Elaborez les DS relatifs à : « réserver dans un vol » et« créer un vol »

Notes de l'éditeur

  • #1 SYSTÈMES INTERACTIFS & APPLICATIONS MOBILES