Notation UML
Sommaire
• Historique
• La Modélisation
• Axe Statique
• Axe Dynamique
• Références
N O T A T I O N U M
L
Historique
BOOCH
• Pionnier de l ’Orienté-ObjetPionnier
– Article en 1981: ‘ Object Oriented Development ’ – Au début, méthodeméthode pour le développement
d ’applications en Ada pour le ‘ Department of Ada Défense ’
– Etendue au C++C++
• Distingue 2 niveaux:
– Logique Logique
• Diagrammes de classes
• Diagramme d’instance
• Diagramme états/transitions
– PhysiquePhysique
• Diagrammes de modules (principe des packages)
• Diagramme de processus
Historique
Les Principales Méthodes Objet
N O T A T I O N U M
L
Grady Booch
OMT
• Object O Modeling TM Technique
– Livre de James Rumbaugh (1991)
• 3 axes
– StatiqueStatique – DynamiqueDynamique – FonctionnelFonctionnel
Historique
Les Principales Méthodes Objet
N O T A T I O N U M
L
James Rumbaugh
OOSE
• Object O Oriented SO Software EEngineering
– Souvent appelée ObjectoryObjectory
• 5 modèles
– Besoins – Analyse – Conception – Implantation – Test
• 3 types d ’objets (MVC en Design Paterns)
– entitésentités – contrôlescontrôles – interfacesinterfaces
• Notion de Cas d’Utilisation: Use CasesUse Cases
Historique
Les Principales Méthodes Objet
N O T A T I O N U M
L
Ivar Jacobson
Méthodes Objets
• En 1994, plus de 50 méthodes50 méthodes OO
– Fusion, Shlaer-Mellor, ROOM, Classe-Relation, Wirfs-Brock, Coad- Yourdon, MOSES, Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD, Ooram, DOORS...
• Les notations graphiques sont toutes notations graphiques différentesdifférentes
• L’industrie a besoin de standardsstandards
Historique
Les Principales Méthodes Objet
N O T A T I O N U M
L
Naissance d’UML
• 1993-1994: Booch’93Booch’93, OMT-2, OMT-2
– Les 2 méthodes sont leadersleaders sur le marché – Elles sont de plus en plus prochesproches
• Octobre 1994
– J. Rumbaugh (OMT) rejoint J. Rumbaugh G. Booch chez G. Booch RationalRational – Annonce de l’unification des deux méthodes
• Octobre 1995: Méthode Unifiée v0.8Méthode Unifiée
• Fin 1995: le fondateur d ’Objectory, Ivar Jacoson, rejoint à son tour Ivar Jacoson Rational
Rational
• Janvier 97 : Soumission à lSoumission ’OMG de la version UML 1.0’OMG
– OMG: Object Management Group
• Organisme à but non lucratif fondé en 1989
• Plus de 700 entreprises y adhèrent
• Connu pour la norme CORBA
• Septembre 97 : UML 1.1UML 1.1
La Convergence vers UML
N O T A T I O N U M
L
Historique
Conclusion
Historique
La Convergence vers UML
N O T A T I O N U M
L
• UML: Prendre le UML meilleur de chacune des meilleur méthodes
– OOSE (Jacobson): OOSE Use CasesUse Cases – OMT (Rumbaugh): OMT AnalyseAnalyse
– Booch: Booch: Conception, ArchitectureConception, Architecture
• UML est dans le domaine publicdomaine public
• Soutenu par le marchémarché
– Microsoft, HP, Oracle, IBM...
La Modélisation
UML ?
La Modélisation Définition
N O T A T I O N U M
L
• Est une notation, pas une méthodenotation, pas une méthode
• Est un langage de modélisation objetlangage
• Convient à toustous les langages objets
– C++ (Héritage multiple, Template) – Java (Interface)
– SmallTalk
Axe de Modélisation
Cycle de développement
N O T A T I O N U M
L
Statique Statique
Dynamique Dynamique Fonctionnel
Fonctionnel
Diagramme de Classes Diagramme d’Objets
Diagramme de Composants Diagramme de Déploiement Diagramme de Use Case
Diagramme de Use Case Diagramme d'Etats-Transitions Diagramme d'Activité
Diagramme de Séquence
La Modélisation
Les 4+1 Vues
Cycle de développement
N O T A T I O N U M
L
La Modélisation
Vue logique Vue des composants
Vue des processus Vue de déploiement
Besoins des utilisateurs
• Composant
• Fichiers Source
=> Configuration du systme
• Classes
• Interfaces
• Collaboration
=> Les services du systèmes
• Thread
• Process
• Concurrence
• Synchronisation
=> Performance du système
• Architecture
• Hardware
• Distribution
=> Topologie du système
=> Comportement du système
La modélisation des
besoins
- ActeurActeur : entité externe qui agit sur le système (opérateur, composant interne…).
- Use caseUse case : ensemble d’actions réalisées par le système, en réponse à une action d’un acteur. L’ensemble des uses cases décrit les objectifs (le but) du système.
- Les relations de base entre cas d’utilisation et acteurs - Les relations de base entre cas d’utilisation et acteurs
« include »
« include »« extends »
« extends »héritage
N O T A T I O N U M
L
Diagramme de uses cases
La représentation des
scénarios
Scénario
Diagramme de Séquence
N O T A T I O N U M
L
• Il y a autant de diagrammes de séquence qu’il y a de scénarios
• Un Scénario montre une séquence particulière d’interactions entre objets, dans un seul contexte d’exécution du système
• Un scénario peut être vu comme une réponse à un besoin ou une partie d ’un besoin du diagramme des Uses Cases.
• On y fait intervenir des objets, des objets messages et des messages événementsévénements
objet1 : Classe objet2 : Classe
Objets de type Classe Message synchrone
Message asynchrone
Notation Graphique
Diagramme de Séquence
N O T A T I O N U M
L
Objet
Appelant: Ligne téléphonique: Appelé:
décroche() tonalité numérotation() indication sonnerie
indication sonnerie() décroche
L ’axe statique
Notation de base
• ClasseClasse
– Une description d’un ensemble d’objets qui partage les mêmes attributs,
opérations, méthodes, relations et contraintes
• ObjetObjet
– Une entité avec une limite et une identité bien définies qui encapsule de l'état et du comportement. L’état est représenté par des attributs et des relations, le
comportement est représenté par des opérations et des méthodes. Un objet est une instance d’une classe.
L ’Axe Statique Classes et Objets
N O T A T I O N U M
L
Objet de type Classe Classe
Attribut
• Attribut = propriétéAttribut propriété nommée d ’une classe
• SyntaxeSyntaxe
– visibilité nom : type = valeur initiale
• VisibilitéVisibilité
– + public – # protégé – - privé – package
• Attribut de classeAttribut de classe
– la portée standard d’un attribut est limité à un portée standard objetobjet
– quand cette portée s’applique à la classeportée classe elle même, on parle d’attribut de ’attribut de classe
classe (représenté par le symbole $ ou souligné$ souligné)
• Attribut dérivéAttribut dérivé
– attribut qui peut être déduit d’un ou plusieurs déduit autres attributs (représenté autres attributs par le symbole /)/
L ’Axe Statique Classes et Objets
N O T A T I O N U M
L
Méthode
• Méthode = Méthode service que l ’on peut demander à un objet pour réaliser un service comportement
• SyntaxeSyntaxe
– visibilité nom (paramètres) : type retour
• Mêmes notions que l’attribut
– visibilitévisibilité
– méthode de classeméthode de classe
L ’Axe Statique Classes et Objets
N O T A T I O N U M
L
Notation Complète
L ’Axe Statique Classes et Objets
N O T A T I O N U M
L
Visibilité
Static
Dérivé
Paramètre
Retour
Initialisation Nom de la Classe
Fenetre
+ taille : Rectangle = 100,100 - visible : Boolean = true
couleur : Color = blue
#$ tailleMax : Rectangle
#$ tailleMin : Rectangle
/#$ tailleMoyenne : Rectangle + afficher() : Position
+ cacher()
# setTaille(taille : Rectangle)
}
}
AttributsMéthodes
Définition
L ’Axe Statique Associations
N O T A T I O N U M
L
• AssociationAssociation
– Exprime une connexion sémantique bi-directionnelle entre classesconnexion – Abstraction des liens qui existent entre objets
– Le sens d ’une association peut-être précisé par une sens flêcheflêche
• Association binaire = Association entre 2 classes. Cas particulier Association binaire d ’association n-airen-aire
• Rôle = rôle joué par une classe dans une association
• Multiplicité = indique le nombrenombre d’instances d ’une classe qui peut être mise en relation avec une seul instance de la classe associée
– 1 : obligatoire – 0..1 : optionnel – 0..* ou * : quelconque – 1..* : au moins 1
– 1..5, 10 : entre 1 et 5, ou 10
Exemple
L ’Axe Statique Associations
N O T A T I O N U M
L Classe
Rôle
Multiplicité
Nom Entreprise
Raison Sociale Activité
Personne Nom
Prénom
1..* 0..1
emploie
-employé -employeur
1..* 0..1
Sens
Sémantique
L ’Axe Statique Associations
N O T A T I O N U M
L
Mari 11 marié avec 11 Epouse
Homme 1 marié avec 1 Femme épouse
mari 1 1
Homme 0..*0..* a été marié avec 0..*0..* Femme
Note
L ’Axe Statique Associations
N O T A T I O N U M
L
• Note = Commentaire placé sur un diagramme
Entreprise Personne
Commentaire sur une association
Commentaire sur une classe
Classe d’Association
L ’Axe Statique Associations
N O T A T I O N U M
L
• Classe d’association = Elément ayant à la fois les propriétés d ’une classe et Classe d’association d ’une association
Personne nom
age
prendre retraite(
Société nom
capital
embaucher( ) déposer bilan(
0..* 0..*0..*
0..*
Contrat de Travail date
salaire
augmenter( ) résilier( )
Convention Collective - référence
+ renégocier( ) 1..* 1..1
respecte 1..* 1..1
travaille
Classe
Association n-aire
L ’Axe Statique Associations
N O T A T I O N U M
L
• Association n-aire = Une association parmi 3 classes ou plus. Chaque instance de l’association Association n-aire est un n-tuple de valeurs des classes respectives.
Professeur Elève
Salle
Heure de début Heure de fin
Cours lieu
1
1
1..*
Définitions
L ’Axe Statique
Agrégation et Composition
N O T A T I O N U M
L
• Agrégation = associationAgrégation association particulière spécifiant une relation ‘tout - partie’ entre l’agrégat et un composant
– InclusionInclusion – PropagationPropagation
• Composition = forme Composition forte d’agrégation avec un forte d’agrégation cycle de vie des cycle de vie parties lié à celui du composite
Livre Chapitre Mot
1..* 1..*
1..* 1..*
Exemples
L ’Axe Statique
Agrégation et Composition
N O T A T I O N U M
L
Moteur Chassis Roue Porte
Voiture
1..1 1..1 4 2,3,4,5
1..1 1..1 4 2,3,4,5
Agrégation
Composition
Multiplicité
Définitions
L ’Axe Statique
Généralisation, Spécialisation
N O T A T I O N U M
L
• Généralisation = relation ente un élément plus général et un élément plus spécifique qui est entièrement conforme avec le premier élément, et qui ajoute de l ’information supplémentaire
• Spécialisation = mécanisme par lequel des éléments plus spécifiques incorporent la structure et le comportement d’éléments plus généraux (notion d’héritaged’héritage).
Avion
Planeur AvionAMoteur MoyenCourrier LongCourrier
A320
motorisation motorisation rayon d'action rayon d'action
Discriminant
Généralisation Généralisation
Spécialisation Spécialisation
Héritage multiple
Interface
L ’Axe Statique
Généralisation, Spécialisation
N O T A T I O N U M
L
<<Interface>>
Planneur
AvionDeChasse Avion
Wind Listener
<<Interface>>
Missile_Listener<<Interface>>
Extends Implements
Stéréotype
• Notations
• Hériter d’une interface
Contraintes
L ’Axe Statique Généralisation
N O T A T I O N U M
L
Avion
Planeur AvionAMoteur MoyenCourrier LongCourrier
{incomplete} - - - - - - - {disjoint}
• Les seules contraintes pré-définies en UML pour la généralisation sont :contraintes
– disjoint (un moyen courrier ne peut être long courrier) / disjoint overlappingoverlapping – complete (liste éxhaustive de classe) / complete incompleteincomplete
Classe Abstraite
L ’Axe Statique Généralisation
N O T A T I O N U M
L
• Classe Abstraite = classe que l ’on ne peut pas instancierinstancier
• Notation :
Avion Avion
{abstract}
Ou
Italic Contrainte
Pour Structurer
L ’Axe Statique Package
N O T A T I O N U M
L
• Package = RegroupementPackage Regroupement d’éléments de modèle
• Les Packages divisent et organisent les modèles de la même manière que les répertoires organisent les systèmes de fichiers
• Les Packages eux-mêmes peuvent être imbriqués à l ’intérieur d ’autres Packagesimbriqués
Package Parent
Package Enfant 1 Package Enfant 2
Notation
L ’Axe Statique
Diagramme de Classes
N O T A T I O N U M
L
Diagramme des composants
N O T A T I O N U M
L
Diagramme des composants
L ’Axe Statique
Permet de définir des composants logiciels en terme de constitution et de dépendance.
L ’Axe Statique
N O T A T I O N U M
L
Diagramme des composants
Classe1.h
Classe1.cpp
.
L ’Axe Statique
N O T A T I O N U M
L
Diagramme de déploiement
Diagramme de déploiement
.
L ’Axe Statique
N O T A T I O N U M
L
Diagramme de déploiement
Décrit les ressources matérielles et la répartition du logiciel dans ces ressources
TX serveur
Serveur SGBD
PC
TCP IP RNIS
L ’Axe Dynamique
Que représente-t-on dans le modèle dynamique ?
L ’Axe Dynamique Introduction
N O T A T I O N U M
L
• Le modèle dynamique représente les séquences d’événements, d’étatsd’événements d’états et de réactionsréactions qui doivent survenir dans le système.
• Il est intimement lié au modèle objet et décrit les aspects de contrôle d’un système en prenant compte du tempstemps, du, séquencement des séquencement des opérations
opérations et des interactions entre objetsinteractions
• Deux diagrammes fondamentaux :
– Diagramme d ’activitésDiagramme d ’activités
– Diagramme Etats-TransitionsDiagramme Etats-Transitions
Définition
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Un diagramme Etats-Transitions (ou Etats-Transitions Automate) :Automate
– décrit l’évolution au cours du temps d’une instance d’une classe en réponse l’évolution aux interactions avec d’autres objets
– est forcément associé à une classe, mais toutes les classes n’en ont pas une classe besoin
– est un graphe orienté d’états (noeuds) connectés par des transitions’états transitions (arc orientés)
• Source: Les StatechartsStatecharts de David HarelDavid Harel
David Harel
Etats
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Chaque objet est à un moment donné dans un état particulier :état
– Etat Initial : état d’une instance juste après sa création (un seul état initial)Etat Initial – Etat Intermédiaire : un objet est toujours dans un état donné pour un certain Etat
temps
– Etat Final : état d’une instance juste avant sa destruction (un automate Etat Final infini peut ne pas avoir d’état final)
état initial état intermédiaire état final
Transition, Condition
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Transition : Transition relation entre 2 états indiquant qu’un objet dans le relation entre 2 états premier état va exécuter une actionaction et entrer dans le deuxième état quand un événementévénement apparaîtra
• Condition : Condition expression booléenne devant être expression booléenne vérifiée pour permettre vérifiée la transition
Mineur anniverssaire [age=18 ans] Majeur
Etat initial Etat final
Evénement
Condition
Transition
Action, Activité
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Action : opération atomiqueAction atomique (non interruptible) déclenchée par une transition
• Activité : opération qui Activité dure un certain temps (interruptible) dans un dure état particulier
– entry : action exécutée chaque fois que l’on entry rentre dans l’étatrentre – exit : action exécutée chaque fois que l’on exit quitte l’étatquitte
Activité Action
Arret Marche
entry: tourner moteur Appui bouton étage( N° )[ N°!=étage courant ]
/démarrer moteur
Notation Complète
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Exemple : fonctionnement d’une montre digitaleExemple :
Action Activité Evénement
Etat initial
Affichage heure
Modification heure entry: clignoter heure
Mofication minute entry: clignoter minute Appui bouton mode
Appui bouton avance / avancer minute
Appui bouton avance / avancer heure
Appui bouton mode Appui bouton mode
Généralisation d’états
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Dans le cas d’un comportement dynamique complexe, les diagrammes complexe d’états sur unun niveau deviennent rapidement illisiblesillisibles
• Pour éviter ce problème, il est nécessaire de structurer les diagrammes structurer d’états en:
– super-états : états généraux super-états
– sous-états : héritent des caractéristiques des états générauxsous-états
A B
C
E2 E1
E2
C
A B
A E1 B
E2
= =
Même evt Super-état Sous-état
Notation Complète
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Exemple : transmission d’une automobileExemple :
Super-état Sous-état
Point Mort (N)
Marche avant (F)
Première Seconde Troisième
Première Seconde Troisième
rapport sup
rapport inf rapport sup
rapport inf N enclenché
Marche arrière (R) N enclenché
R enclenché
F enclenché
Historique
L ’Axe Dynamique
Diagramme Etats-Transitions
N O T A T I O N U M
L
• Par défaut, un automate n’a pas de mémoirepas de mémoire
• La notation H offre un H mécanisme pour mémoriser le dernier sous-état mécanisme pour mémoriser qui l’englobe
• Exemple : cycle de lavage d’un lave vaisselleExemple
Historique H
Rinçage Lavage Séchage
Rinçage Lavage Séchage
Attente Porte ouverte Porte fermée
L ’Axe Dynamique Diagramme d ’activités
N O T A T I O N U M
L
Diagramme d ’activités
L ’Axe Dynamique Diagramme d ’activités
N O T A T I O N U M
L
Activité1
Activité2 Activité3
[condition1] [else]
*
Utilisé pour étiqueter les autres diagrammes (traitements associés aux messages des diagrammes de séquences, transitions des diagrammes d’états-transitions, activité d’un état…)* Sert à spécifier un traitement à priori séquentiel en offrant un pouvoir d’expression très proche des algorithmes.
* Branche conditionnelle
L ’Axe Dynamique Diagramme d ’activités
N O T A T I O N U M
L
Refroidir
Arrêter le chauffage Aérer
* Barre de synchronisation
Couloir 1: Couloir 2:
Act ivité 1
Act ivit é 2
* Couloir d ’activités
L ’Axe Dynamique Diagramme d ’activités
N O T A T I O N U M
L
* Flux d ’objets
Activité1
Objet en sortie:
* Signal
Exécuter séquence de démarrage
Accep ter connexion de l'utilisateur
Attente de rép onse
Prêt Demander validation
réseau:
recevoir confirmation
Activité1
Objet en entrée:
UML 2
N O T A T I O N U M
L
Les apports d ’UML 2
UML 2
N O T A T I O N U M
L
Diagramme de séquences
- Fragment “ Alternatif ” (IF - THEN - ELSE)
UML 2
N O T A T I O N U M
L
Diagramme de séquences
- Fragment “ break ” utilisé pour représenter des scénarios
d’exceptions.
UML 2
N O T A T I O N U M
L
Diagramme de séquences
Fragment “ Parallel ” utilisé pour représenter
des interactions en parallèle.
UML 2
N O T A T I O N U M
L
Diagramme de séquences
Fragment “ Loop ” utilisé pour décrire un ensemble
d’interactions qui s’exécutent en boucle.
UML 2
N O T A T I O N U M
L
Diagramme de séquences
Références: un pointeur ou un raccourci vers un
autre diagramme de séquences existant.
UML 2
N O T A T I O N U M
L
Diagramme de séquences
Etat précise l’état dans lequel doit se trouver
l’instance de classe concernée.
UML 2
N O T A T I O N U M
L
Diagramme de structure composite
spécifier la connectique interne et externe entre ces
classes
Références
Livres
Références
Pour en Savoir Plus
N O T A T I O N U M
L
• The Unified Modeling Language User Guide , G. Booch, J. G. Booch J.
Rumbaugh, I. Jacobson,
Rumbaugh, I. Jacobson, 1999, Addison Wesley
• Object-Oriented Modeling and Design, J. Rumbaugh, 1991, Prentice-J. Rumbaugh Hall
• Object Solution, G. Booch, 1996, Addison-WesleyG. Booch
• Object-Oriented Software Engineering: A Use Case Driven Approach, I. I.
Jacobson
Jacobson, 1992, Addison-Wesley
• Modélisation Objet avec UML, P. A. Muller, 1997, Eyrolles
• UML Distilled, M. Fowler, 1997, Addison-Wesley
• UML La notation unifiée de modélisation objet, M. Lai, Masson
• Designing Object Systems: Object-Oriented Modeling with Syntropy, S.
Cook, J. Daniels, 1994, Prentice-Hall
Articles
Références
Pour en Savoir Plus
N O T A T I O N U M
L
• Getting started: using use case to capture requirements, J. Rumbaugh, Sept 1994, JOOP
• Formalizing use-case modeling, I. Jacobson, Juin 1995, JOOP
• OMT: The object model, J. Rumbaugh, Jan 1995, JOOP
• A search values: Attributes and associations, J. Rumbaugh, Juin 1996, JOOP
• A matter: How to define subclasses, J. Rumbaugh
• The life of an object model: How the object model changes during development, J. Rumbaugh, Mars 1994, JOOP
• Statecharts: a visual Formalism for Complex Systems, D. Harel, 1987, Science of Computer Programming vol 8
• Executable Object Modeling with Statecharts, D. Harel, Juillet 1997, Computer
• OMT: The dynamic model, J. Rumbaugh, Fev 1995, JOOP