Cours Notions Uml
Cours Notions Uml
Cours Notions Uml
Volume : 30 heures
Chargé du cours : M Serge GNAGBO 47264047
UML (Unified Modeling Language en anglais, soit langage de modélisation objet unifié) est né
de la fusion des trois méthodes qui s’imposaient dans le domaine de la modélisation objet au
milieu des années 1990 : OMT, Booch et OOSE. D’importants acteurs industriels (IBM,
Microsoft, Oracle, DEC, HP, Rational, Unisys etc.) s’associent alors à l’effort et proposent
UML 1.0 à l’OMG (Object Management Group) .
La Conception Orientée Objet (COO) est la méthode qui conduit à des architectures logicielles
fondées sur les objets du système, plutôt que sur la fonction qu’il est censé réaliser.
UML n’est pas une méthode (i.e. une description normative des étapes de la modélisation) :
mais un langage graphique qui permet de représenter et de communiquer les divers aspects d’un
système d’information. Aux graphiques sont bien sûr associés des textes qui expliquent leur
contenu. UML est donc un métalangage car il fournit les éléments permettant de construire le
modèle qui, lui, sera le langage du projet.
Il est impossible de donner une représentation graphique complète d’un logiciel, ou de tout
autre système complexe mais il est possible de donner sur un tel système des vues partielles.
Représentation
Nom du système
2- Les acteurs
Un acteur est l’idéalisation d’un rôle joué par une personne externe, un processus ou une chose qui
interagit avec un système.
Representation
Exemple
L’acteur caissière sera representé par :
3- Le cas d’utilisation
Un cas d’utilisation est une unité cohérente représentant une fonctionnalité visible de l’extérieur. Il
réalise un service de bout en bout, avec un déclenchement, un déroulement et une fin, pour l’acteur
qui l’initie.
Representation
Representation
Exemple
La caissière édite un reçu
Mais on peut avoir des acteurs principaux et secondaires. Un acteur est qualifié de principal pour
un cas d’utilisation lorsque ce cas rend service à cet acteur. Les autres acteurs sont alors qualifiés de
secondaires. Un cas d’utilisation a au plus un acteur principal.
Exemple
La caissière edite le paiement d’un étudiant
Exemple
Pour manger une personne doit obligatoirement se laver les mains
b- Relation d’extension
On dit qu’un cas d’utilisation A étend un cas d’utilisation B lorsque le cas d’utilisation A peut être
appelé au cours de l’exécution du cas d’utilisation B. Exécuter B peut éventuellement entraîner
l’exécution de A : contrairement à l’inclusion, l’extension est optionnelle.
Exemple
Une personne mange du foutou et prend un dessert s’il a eu une prime
c- Relation de généralisation
Un cas A est une généralisation d’un cas B si B est un cas particulier de A.
Representation
Pour une application de vente en ligne, un visiteur peut consulter les annonces du jour.
L’abonnée faire des recherches mais il doit obligatoirement s’authentifier. Il peut egalement
acheter des articles mais doit payer et s’authentifier. Il paye soit par carte bancaire ou par pay
pal. Pendant les promos il paye avec remise
II- La classe
1- Définition
Une classe est un type de données abstrait qui précise des caractéristiques (attributs et
méthodes) communes à toute une famille d’objets et qui permet de créer (instancier) des objets
possédant ces caractéristiques
Un objet est une instance d’une classe. C’est une entité discrète dotée d’une identité, d’un état
et d’un comportement que l’on peut invoquer. Les objets sont des éléments individuels d’un
système en cours d’exécution.
Une classe définit un jeu d’objets dotés de caractéristiques communes. Les caractéristiques d’un
objet permettent de spécifier son état et son comportement.
État d’un objet : Ce sont les attributs qui décrivent l’état d’un objet. Les propriétés décrites
par les attributs prennent des valeurs lorsque la classe est instanciée
Comportement d’un objet : Les opérations décrivent les éléments individuels d’un
comportement que l’on peut invoquer. Ce sont des fonctions qui peuvent prendre des valeurs
en entrée et modifier les attributs ou produire des résultats.
3- Representation
4- Encapsulation et visibilité
L’encapsulation consiste à masquer les détails d’implémentation d’un objet, en définissant une
interface. L’interface est la vue externe d’un objet, elle définit les services accessibles (offerts)
aux utilisateurs de l’objet.
L’encapsulation permet de définir des niveaux de visibilité des éléments d’un conteneur. La
visibilité déclare la possibilité pour un élément de modélisation de référencer un élément qui se
trouve dans un espace de noms différents de celui de l’élément qui établit la référence.
Public ou + : tout élément qui peut voir le conteneur peut également voir l’élément indiqué.
Private ou - : seul un élément situé dans le conteneur peut voir l’élément.
Protected ou # : seul un élément situé dans le conteneur ou un de ses descendants peut voir
l’élément indiqué.
Package ou ∼ ou rien : seul un élément déclaré dans le même paquetage peut voir l’élément.
Exemple
Exercice
Donner la classe des objets suivants :
2+3
2*3
2-3
2x+3=0
La terminaison d’association
exactement un : 1 ou 1..1
plusieurs : * ou 0..*
navigabilité : La navigabilité indique s’il est possible de traverser une association. Si une classe
contient des instances des classes avec laquelle elle est en association. Par defaut la navigabilité est
dans les deux sens.
Exemple
Explication
la terminaison du côté de la classe Commande n’est pas navigable : cela signifie que les instances de la
classe Produit ne stockent pas de liste d’objets du type Commande. Inversement, la terminaison du
côté de la classe Produit est navigable : chaque objet commande contient une liste de produits.
Exemple
Plusieurs personnes travaillent dans une entreprise
Plusieurs personnes sont citoyens d’un pays et peuvent voyager dans un ou plusieurs pays.
<Association>
Classe A Classe B
Classe C
Exemple
Plusieurs enseignants font cours avec plusieurs classes dans plusieurs matières
Representation
Classe Association
multiplicité multiplicité
Exemple
Plusieurs étudiants composent dans des matières et obtiennent des notes. L’étudiant à un
matricule, un nom, un prenom. La matière est caractérisée par un code, un libellé et un
coefficient . la note a une date de composition et la note obtenue. On peut annuler une note et
savoir l’appreciation.
3- Agrégation et composition
a- L’agregation
Une association simple entre deux classes représente une relation structurelle entre pairs, c’est
à dire entre deux classes de même niveau conceptuel : aucune des deux n’est plus importante
que l’autre. Lorsque l’on souhaite modéliser une relation tout/partie où une classe constitue un
élément plus grand (tout) composé d’éléments plus petit (partie), il faut utiliser une agrégation.
Une agrégation est une association qui représente une relation d’inclusion structurelle ou
comportementale d’un élément dans un ensemble.
Exemple
Une unité pédagogique est composée d’enseignants
b- La composition
La composition, également appelée agrégation composite, décrit une contenance structurelle entre
instances. Ainsi, la destruction de l’objet composite implique la destruction de ses composants. Une
instance de la partie appartient toujours à au plus une instance de l’élément composite : la multiplicité
du côté composite ne doit pas être supérieure à 1
Representation
Exemple
Un dossier est composé de fichiers
La classe enfant possède toutes les caractéristiques des ses classes parents, mais elle
ne peut accéder aux caractéristiques privées de cette dernière.
Une classe enfant peut redéfinir (même signature) une ou plusieurs méthodes de la
classe parent. Sauf indication contraire, un objet utilise les opérations les plus
spécialisées dans la hiérarchie des classes.
Toutes les associations de la classe parent s’appliquent aux classes dérivées.
Une instance d’une classe peut être utilisée partout où une instance de sa classe parent
est attendue.
Representation
Exemple
Exercice N°1 :
Quels types d'association y a t'il entre classes des expressions suivantes ?
- un pays a une capitale ;
- une transaction boursière est un achat ou une vente ;
- les fichiers contiennent des enregistrements ;
- un polygone est composé d'un nombre ordonné de points ;
- une personne utilise un langage dans un projet ;
- modems et claviers sont des périphériques d'entrées / sorties ;
- les classes d'objets peuvent avoir plusieurs attributs.
Exercice N°2 :
Le diagramme de classes suivant correspond au cahier des charges pour la gestion d'une
médiathèque.
Ajoutez à ce diagramme les cardinalités des associations. Faîtes apparaître des relations
d'héritage et d'agrégation.
Exercice N°2
On désire automatiser la gestion d’une petite bibliothèque municipale. Pour cela, on a
analysé son fonctionnement pour obtenir la liste suivante de règles et d’affirmations :
Le diagramme de classes modélise les règles et le diagramme d’objets modélise des faits.
Representation
Instance nomm
Instance :classe
Exemple personne1 est une instance de Personne
personne1 :Personne
Instance :classe
Attribut=valeur
Attribut = valeur
Attribut=valeur
Personne1 :Personne
nom= ‘’koffi’’
prenom = ‘’konan’’
Instance anonyme
:classe
Exemple
Une personne
:Personne
2- les liens
Dans un diagrammes d’objets, les relations du diagramme de classes deviennent des liens. La relation
de généralisation ne possède pas d’instance, elle n’est donc jamais représentée dans un diagramme
d’objets. Graphiquement, un lien se représente comme une relation, mais, s’il y a un nom, il est
souligné. Naturellement, on ne représente pas les multiplicités.
Exemple
Q5. Une médiathèque possède des médias, empruntables par les abonnés de la médiathèque.
Exercice N°2
Drogba didier âgé de 35 ans joue dans la sélection ivoirienne qu’on surnomme les éléphants.
Yaya Touré âgé de 29 ans joue aussi dans cette sélection ainsi que copa barry.
Drogba et yaya sont des joueurs de champs et copa est un gardien. L’équipe de côte d’ivoire a
les maillots composé d’un haut orange , un bas orange et des chaussettes orange et le maillot
composé d’un haut vert, un bas blanc et des chaussettes verts.
La cote d’ivoire joue le match de la Can 2014 du 01 janvier 2014 contre l’équipe du Zambie
qu’on nomme les chipolopolo dans le stade Houphouet Boigny qui est d’une capacité de
35000 personnes situé dans la ville d’abidjan.
Au cours de ce match Drogba marque un but et joue les 90 minutes, yaya marque un but et
joue 75 min, copa obtient un carton jaune.
Taf
1- donner le diagramme de classe
2- donner le diagramme d’objet de la situation.
I- Objectif du diagramme
Les diagrammes d'états-transitions d'UML décrivent le comportement interne d'un objet à l'aide
d'un automate à états finis. Ils présentent les séquences possibles d'états et d'actions qu'une
instance de classe peut traiter au cours de son cycle de vie en réaction à des événements discrets
(de type signaux, invocations de méthode).Il s'agit d'une représentation séquentielle des états
d'un système.
Un état (state) représente une situation d'un bloc fonctionnel pendant laquelle
formalisme
l’etat simple
- Les pseudo-état
l’etat initial
L'état initial indique l'état de départ, par défaut, lorsque le diagramme d'états-transitions, ou
l'état enveloppant, est invoqué. Lorsqu'un objet est créé, il entre dans l'état initial.
l’état final
L'état final indique que le diagramme d'états-transitions, ou l'état enveloppant, est terminé.
2- L’événement
Un événement est quelque chose qui se produit pendant l'exécution d'un système et qui mérite
d'être modélisé.
- Evenement d’appel
Syntaxe
- Evenement de changement
Un événement de changement est généré par la satisfaction (i.e. passage de faux à vrai) d'une
expression booléenne sur des valeurs d'attributs. Il s'agit d'une manière déclarative d'attendre
qu'une condition soit satisfaite.
syntaxe
when ( <condition_booléenne> )
- Evenement temporel
Les événements temporels sont générés par le passage du temps. Ils sont spécifié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.
Syntaxe
after ( <durée> )
syntaxe
3- La transition
- Definition
Une transition définit la réponse d'un objet à l'occurrence d'un événement. Elle lie,
généralement, deux états E1 et E2 et indique qu'un objet dans un état E1 peut entrer dans l'état
syntaxe
Une transition peut avoir une condition de garde (spécifiée par '[' <garde> ']' dans la syntaxe).
Il s'agit d'une expression logique sur les attributs de l'objet, associé au diagramme d'états-
transitions, ainsi que sur les paramètres de l'événement déclencheur. La condition de garde est
évaluée uniquement lorsque l'événement déclencheur se produit. Si l'expression est fausse à ce
moment-là, la transition ne se déclenche pas, si elle est vraie, la transition se déclenche et ses
effets se produisent.
- L’activité
Lorsqu'une transition se déclenche (on parle également de tir d'une transition), son effet
(spécifié par '/' <activité> dans la syntaxe) s'exécute. Il s'agit généralement d'une activité qui
peut être
La façon de spécifier l'activité à réaliser est laissée libre (langage naturel ou pseudocode).
Lorsque l'exécution de l'effet est terminée, l'état cible de la transition devient actif.
Une transition externe est une transition qui modifie l'état actif. Il s'agit du type de transition le
plus répandu. Elle est représentée par une flèche allant de l'état source vers l'état cible.
Les règles de déclenchement d'une transition interne sont les mêmes que pour une transition
externe excepté qu'une transition interne ne possède pas d'état cible et que l'état actif reste le
même à la suite de son déclenchement
exemple
entry permet de spécifier une activité qui s'accomplit quand on entre dans l'état.
exit
exit permet de spécifier une activité qui s'accomplit quand on sort de l'état.
do
une activité do commence dès que l'activité entry est terminée. Lorsque cette activité est
terminée, une transition d'achèvement peut être déclenchée, après l'exécution de
l'activité exit bien entendu. Si une transition se déclenche pendant que l'activité do est
en cours, cette dernière est interrompue et l'activité exit de l'état s'exécute.
- Point de jonction
Un point de jonction peut avoir plusieurs segments de transition entrante et plusieurs segments
de transition sortante. Par contre, il ne peut avoir d'activité interne ni des transitions sortantes
dotées de déclencheurs d'événements.
Exemple
- Point de decision
Un point de décision possède une entrée et au moins deux sorties. Contrairement à un point de
jonction, les gardes situées après le point de décision sont évaluées au moment où il est atteint.
Cela permet de baser le choix sur des résultats obtenus en franchissant le segment avant le point
de choix Si, quand le point de décision est atteint, aucun segment en aval n'est franchissable,
c'est que le modèle est mal formé.
Il est possible d'utiliser une garde particulière, notée [else], sur un des segments en aval d'un
point de choix. Ce segment n'est franchissable que si les gardes des autres segments sont toutes
Exemple
Le diagramme d'état peut comporter des super-états (submachine state) qui encapsulent d'autres
diagrammes d'états. Ils permettent de "factoriser" des transitions déclenchées par le même
évènement et amenant vers le même état cible (brancher, débrancher) tout en spécifiant des
transitions particulières entre les sous-états.
La mémorisation est modélisée par un pseudo état History symbolisé par la lettre H.
L'activation de ce pseudo-état permet au super état de se souvenir du dernier sous-état qui
était actif avant une transitsion sortante.
Exercice N°1
Partie 1
Considérons un réveille-matin simplifié :
1. On peut mettre l’alarme ‘on’ ou ‘off’ ;
2. Quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter.
3. On peut interrompre la sonnerie.
Questions
1. Dessinez le diagramme d’états correspondant.
2. Complétez le diagramme d’états précédent pour prendre en compte le fait que la sonnerie
du réveil s’arrête d’elle même au bout d’un certain temps.
Exercice N°2
Une équipe est qualifié pour une compétition à élimination directe. Lorsqu’il ya un match, elle
peut gagné ou perdre, si elle est perd elle est élimée. Sinon est qualifié pour le prochain tour. Si
elle est finale , si elle est gagne est championne sinon est elle est vice-championne.
Exercice N°3
Un étudiant affecté se préinscrit dans la période de préinscription est lancée. Pour cela il saisit
ses informations. Lors des orientations, son inscription est validée. A la rentrée il est en activité
et en fin d’année il est en congé. Il reprend son cycle et finit son cycle de formation soit en etat
renvoyé si pendant l’examen, il échoue pour la deuxième fois ; soit admis à l’examen.
Pendant son activité il est disponible, si il y a un appel il est soit présent, soit absent. S’il est
présent il peut en fin de module composer dans un module, il valide le module ou il est en
ajourné. S’il est present et en cas de faute grave, il peut être suspendu, sur décision du conseil
de discipline, il peut etre renvoyé alors il sort du cycle ou être réintegré mais il sera disponible
pour les cours qu’apres 3 jours de suspensions.
Représentation
2- La ligne de vie
Une ligne de vie représente l’ensemble des opérations exécutées par un objet.
Représentation
Obj :classe
Dans ce cas, l’émetteur n’attend pas la réponse à son message, il poursuit l’exécution de
ses opérations.
Représentation
- Le message synchrone
Dans ce cas l’émetteur reste en attente de la réponse à son message avant de poursuivre
ses actions. On peut ajouter un message de retour si besoin.
Représentation
Message de retour
Représentation
Taf
Représenter l’action allumer de l’additionneuse d’un opérateur