UML — The Unified Modeling Language
Introduction à la notation
Gerson Sunyé Université de Nantes
Gerson Sunyé - Université de Nantes
Introduction
• UML - Langage de modélisation unifié
• Standard de l’OMG (Object Management Group)
• Une notation (syntaxe concrète)
• Un méta-modèle (syntaxe abstraite)
• Ce n’est pas une méthode (pas de processus de développement)
�2
Gerson Sunyé - Université de Nantes
Un peu d’histoire La jungle de méthodes des années 90
• OMT (Rumbaugh et al.), OOA/OOD (Booch), OOA (Coad), OOSE (Jacobson), OOA/OODLE (Schlaer & Mellor) , Fusion (HP), Classe-Relation (Desfray).
• et aussi: DFD (De Marco), Etat-transition (Harel), ER (Chen), CRC (Wirf & Brooks), JSD (Jackson)
Gerson Sunyé - Université de Nantes
Un peu d’histoire
• Les années 80-90:
• Différents langage de modélisation
• Différentes interprétations des constructeurs de modélisation
• Peu d’outils, pas adaptés
• Pas d’échange de modèles
Gerson Sunyé - Université de Nantes
Objectifs d’UML
• Proposer un langage visuel de modélisation, indépendant de l’implémentation et du processus de développement
• Proposer une base formel pour l’interprétation des modèles
Gerson Sunyé - Université de Nantes
Objectifs d’UML
• Intégrer des concepts de haut niveau: Composants, Patrons de conception (Patterns), Cadres d’applications (Framewoks)
• Encourager l’outillage
Gerson Sunyé - Université de Nantes
UML et le processus de développement
• Un processus est composé (au minimum) des étapes suivantes: • Expression des besoins • Analyse • Conception • Réalisation, validation, maintenance
Gerson Sunyé - Université de Nantes
Analyse et conception
• UML: une même notation, deux niveaux d’abstraction différents
• Une frontière floue, qui doit être précisée par une méthode de développement
Gerson Sunyé - Université de Nantes
Analyse avec UML
• Généralement:
• Le résultat de l’analyse est un modèle idéal de la solution
• Abstraction des particularités de la plate-forme d’implémentation (persistance, réseau, etc.)
Gerson Sunyé - Université de Nantes
Conception avec UML
• Le résultat de la conception est un modèle de la solution, adapté au monde réel
• Ce modèle reste indépendant du langage d’implémentation
Gerson Sunyé - Université de Nantes
Modélisation avec UML
• Diagrammes de cas d’utilisation
• Diagrammes structurels
• Diagrammes comportementaux
• Mécanismes d’extension
�11
Diagrammes de cas d’utilisation
�12
Gerson Sunyé - Université de Nantes
Modèle des cas d’utilisation
• Buts : • modéliser le point de vue des utilisateurs • définir les limites précises du système
• Notation très simple, compréhensible par tous, y compris le client
• Permet de structurer : • les besoins (cahier des charges) • le reste du développement
• Modéle (principalement) communicationnel
CasU1
CasU4
CasU5
CasU2
CasU3
A1
A2
S A3
Gerson Sunyé - Université de Nantes
Modèle des cas d’utilisation
• Moyens :
• Les acteurs UML
• Les use-cases UML
• Utilisation d’un dictionnaire du domaine
Gerson Sunyé - Université de Nantes
Use Case Diagram Example
DistributeurDeBillets
Client
RetirerDeLArgent AuDistributeur
ConsulterSonCompte
AssurerLaMaintenance TechnicienAjouter
DesBilletsTransporteurDeBillets
RetirerLesCartesAvalées
Gerson Sunyé - Université de Nantes
Modèle de cas d’utilisation
• Diagramme de cas d’utilisation !
• Modèle de cas d’utilisation • descriptions textuelles, • diagrammes de cas
d'utilisation • diagrammes de
séquences • dictionnaire de données • …
CasU1
CasU4
CasU5
CasU2
CasU3
A1
A2
S A3
Gerson Sunyé - Université de Nantes
Eléments de base
Acteurs Cas d'utilisation Système
Gerson Sunyé - Université de Nantes
Cas d’utilisation (CU)
• Cas d’utilisation • une manière d’utiliser le système • une suite d’interactions entre un acteur et le système
• Correspond à une fonction du système visible par l’acteur • Permet à un acteur d’atteindre un but • Doit être utile en soi • Regroupe un ensemble de scénarii correspondant à un même
but
RetirerDeLArgentAu Distributeur
TaperSonCodeEnregistrerEntrée EntrerPendantLesHeuresDOuverture
SIdentifier
Gerson Sunyé - Université de Nantes
Système
• Le système est • modélisé par un ensemble de cas d’utilisation • vu comme une boîte noire !
• Le système contient : • les cas d’utilisation, • mais pas les acteurs. !
• Un modèle de cas d’utilisation permet de définir : • les fonctions essentielles du système, • les limites du système, • le système par rapport à son environnement, • délimiter le cadre du projet !
Gerson Sunyé - Université de Nantes
Acteurs
• Un Acteur = • élément externe • qui interagit avec le système (prend des décisions, des
initiatives. Il est "actif".) • Rôle qu’un "utilisateur" joue par rapport au système
CapteurAIncendie
PorteurDeCarte AdministrateurGardien
Gerson Sunyé - Université de Nantes
Acteurs vs. utilisateurs
Ne pas confondre les notions d’acteur et de personne utilisant le système
!• Une même personne peut jouer plusieurs rôles
ex: Maurice est directeur mais peut jouer le rôle de guichetier !• Plusieurs personnes peuvent jouer un même rôle ex: Paul et Pierre sont deux clients !• Un rôle par rapport au système plutôt qu’une position dans
l'organisation ex: PorteurDeCarte plutôt qu'Enseignant !• Un acteur n’est pas forcément un être humain ex: un distributeur de billet peut être vu comme un acteur
Gerson Sunyé - Université de Nantes
Différents types d’acteurs
Ne pas oublier d'acteurs : !• Utilisateurs principaux
ex: client, guichetier !
• Utilisateurs secondaires ex: contrôleur, directeur, ingénieur système, administrateur... !
• Périphériques externes ex: un capteur, une horloge externe, ... !
• Systèmes externes ex: système bancaires
Gerson Sunyé - Université de Nantes
Notation
•Notations alternatives pour les acteurs PorteurDeCarte
PorteurDeCarte
<<actor>>PorteurDeCarte
PorteurDeCarte
CapteurAIncendie
<<actor>>
SystèmeBancaire
<<actor>>
■ Note de style : utiliser plutôt le stéréotype <<actor>> pour les acteurs non humains
Gerson Sunyé - Université de Nantes
Relations entre les éléments de base
• Relations acteurs ⟷ cas d'utilisation ? !
• Relations acteurs ⟷ acteurs ? !
• Relations cas d'utilisation ⟷ cas d'utilisation ??
? ?
Gerson Sunyé - Université de Nantes
Relation acteur ⟷ cas d'utilisation
• Point de vue besoin: représente la possibilité d'atteindre un but • Point de vue système: représente un canal de communication
• Echange de messages, potentiellement dans les deux sens • Protocole particulier concernant le cas d'utilisation considéré
ClientRetirerDeLArgent
AuDistributeur
ClientRetirerDeLArgent
AuDistributeur
Gerson Sunyé - Université de Nantes
Relation acteur ⟷ cas d'utilisation
• Description via des diagrammes de séquences "systèmes" !
• Plus tard dans le cours ...
Client
RetirerDeLArgentAuDistributeur
Gerson Sunyé - Université de Nantes
Relation acteur ⟷ cas d'utilisation
• Acteur "primaire » • utilise le système comme
outil pour réaliser son but • initie généralement la
communication • Acteur(s) "auxiliaire(s)"
• interviennent suite à l'intervention de l'acteur primaire
• offrent généralement leurs services au système
Guichetier
SystèmeBancaire
ConsulterUnCompte
Acteur primaire
Acteur auxiliaire
Gerson Sunyé - Université de Nantes
Relation cas d’utilisation ⟷ cas d’utilisation
• Communications internes non modélisées.
• UML se concentre sur la description du système et de ses interactions avec l'extérieur
• Formalisme bien trop pauvre pour décrire l'intérieur du système. Utiliser les autres modèles UML pour cela.
• Autres relations possibles entre CU (slides suivants) Système
Bancaire
Directeur
Client
RetierDeLArgent
ConsulterLesSoldes
Gerson Sunyé - Université de Nantes
Relation cas d’utilisation ⟷ cas d’utilisation
• Utilisation («include» / « uses ») • Utilisation d’autres use-cases pour en préciser la définition !
• Extension («extend» / « extends ») • Un use-case étendu est une spécialisation du use-case père
Gerson Sunyé - Université de Nantes
Relation acteur ⟷ acteur
• Communications externes non modélisée !
• UML se concentre sur la description du système et de ses interactions avec l'extérieur
Guichetier
Client
RetirerDeLArgentAuDistributeur
ConsulterSonCompte
RetirerDeLArgentParChèque
Gerson Sunyé - Université de Nantes
Relation acteur ⟷ acteur : généralisation
• La seule relation entre acteurs est la relation de généralisation
GuichetierEnChef
Guichetier
CréerUnCompte
RetirerDeLArgentDUnCompte
AnnulerUnCompte
FermerUnCompte
Notation — résumé
«subsystem»Commandes
Consulter
Commander
MàJ catalogue
Traiter Commande
Etablir crédit
Client
0..1
1
1
1
0..1
0..1
Notation — résumé
Retrait Lecture carte«includes»
Transaction sur
distributeur
Aide en ligne«extends»
Gerson Sunyé - Université de Nantes
Exemple de marquage
DistributeurDeBillets
Client RetirerDeLArgentAuDistributeur
ConsulterSonCompte
GérerLaSécuritéAdministrateur
AjouterDesBilletsTransporteur
DeBillets
S’identifier
Gerson Sunyé - Université de Nantes
Cas d'utilisation vs. Scénarii
• Un scénario est un exemple :
• une manière particulière d’utiliser le système …
• … par un acteur particulier … • … dans un contexte particulier. !
• cas d’utilisation = ensemble de scénarios
!
• scénario = une exécution particulière d’un CU
Gerson Sunyé - Université de Nantes
Diagramme de séquences système
• Pour décrire un scénario : un diagramme de séquences • Diagramme de séquences :
• L’une des notations UML, une notation générale • Peut être utilisée dans de nombreux contextes • Permet de décrire une séquence de messages échangés entre différents objets • Différents niveaux de détails !
• Pour décrire un scénario simple, deux objets : l’acteur et le système !!
⇒ « Diagramme de séquences système »
Gerson Sunyé - Université de Nantes
Exemple de diagramme de séquence système
paul : Client le systèmeInsérer carte
Entrer code ‘1234 ’
Demander code
Message d ’erreur
Demander code
Entrer code ‘6622 ’
Vérifier carte
Vérifier code
...
Appeler Sylvia
Gerson Sunyé - Université de Nantes
Cas d'utilisation vs. scénarii
Niveau modèle
Niveau instances
Gerson Sunyé - Université de Nantes
Un peu de méthodologie…
Stabilisation du modèle par consensus
grandissant
!
• Équivalent à définir une table des matières et des résumés pour chaque chapitre • Pas de règles strictes • Effectuer les meilleurs regroupement possibles • Rester simple ! • Structuration possible en termes de paquetages • Culture d'entreprise
Gerson Sunyé - Université de Nantes
Pour en savoir plus
• Pour un template "standard" de description de cas d'utilisation :http://alistair.cockburn.us/Basic+use+case+template !
• Quelques livres :
Gerson Sunyé - Université de Nantes
Pour en savoir encore plus
Diagrammes structurels
�42
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes Structurels
• Classes • Objets • Structures composite
�43
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Classificateurs, attributs et opérations • Associations • Généralisation • Dépendances • Paquetages
Diagramme de classes
�44
Gerson Sunyé - Université de Nantes
Classificateurs
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Rappel: objet
• Encapsulation d’un état et d’un ensemble d’opérations (qui s’appliquent à cet état) • Abstraction d’une entité réelle • Identité unique • Existence temporelle (création, modification, destruction)
�46
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Description du comportement et des propriétés communs à un ensemble d’objets • Un objet est une instance d’une classe • Chaque classe a un nom
Rappel: classe
�47
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Notation
• Sans détails • Analyse • Conception • Propriétés groupées
selon leur visibilité
�48
HTML Page
HTML Page
title : Stringsize : Integerrender()save()
HTML Page
+ title : String+ /size : Integer~ version : Integer# contents : String- visibility : Boolean = true- tags : String [1..*]+ render()+ save()- optimize()
HTML Page
public title : String /size : Integerpackage version : Integerprotected contents : Stringprivate visibility : Boolean = true tags : String [1..*]public render() save()private optimize()
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Caractéristique structurelle typée d’un classificateur, qui spécifie la structure des instances de ce classificateur
• Peuvent être dérivés d’autres attributs
Attributs
�49
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Propriétés: • {readOnly}, {union}, {subsets <p>}, {redefines
<p>}, {ordered}, {unique}, {id}, {non-unique}, <prop-constraint>.
• Visibilité: [+,~,#,-] • Peuvent être soulignés (attributs de classe)
Attributs
Syntaxe: [visibility][/]name[:type][multiplicity] [=default][{prop-modifier}]
�50
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Caractéristique comportementale d’un classificateur qui spécifie le nom, les types, les paramètres et les contraintes pour invoquer un comportement associé
Opération
�51
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Peut être soulignée (opération de classe) • Propriétés: redefines<operation-name>, query, ordered, unique • direction: in, out, inout
Opération
parameter: [direction]name : type-expression [multiplicity] = default-value [param-properties]
Syntaxe: [visibility]name (parameter-list):return-type {oper-properties}-
�52
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Classes abstraites • Datatypes • Interfaces • Classes paramétrées
Autres classificateurs
�53
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Classes abstraites
• Encapsulent un comportement commun
• Ne possèdent pas d’instances
• Possèdent des opérations abstraites
Etudiant
Etudiant{abstract}
�54
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• deferred en Eiffel • abstract en Java • pure virtual en C++ • méthodes ^self shouldNotImplement en Smalltalk
Classes abstraites
�55
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Type, dont: • les valeurs n’ont pas
d’identité • les opérations sont de
fonctions “pures”
Datatypes
«dataType»Date
day : Integermonth : Integeryear : Integer
�56
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Enumeration • Types primitifs:
• Boolean, Integer, UnlimitedNatural, String
Datatypes
«enumeration»Temperature
Cold
Hot
�57
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Une déclaration d’un ensemble cohérent d’opérations
• Une interface peut être implémentée ou demandée
Interfaces
HTML Page
title : Stringsize : Integerrender()save()
«Interface»
Serializable
+ read()+ write
Exporter
write()
HTML Page
title : Stringsize : Integerrender()save()
Exporter
write()
Serializable
�58
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Indispensable pour les classes conteneurs (e.g. Listes)
• Existe en Ada, Eiffel, C++ (templates) et Java (>1.5)
• N’est pas nécessaire en Smalltalk et Python
Classes paramétrées
Vecteuritem : Ttaille : intajouter()supprimer()
T
Polygone
<<bind>> <Point>
�59
Gerson Sunyé - Université de Nantes
Associations
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Une association entre deux classes représente un lien stable entre deux objets (instances de ces classes)
Rappel: association
�61
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Un lien d’utilisation, temporaire, n’est pas une association
Rappel: association
feature {VISITOR} accept(v: VISITOR) is do v.visitExemple(Current) end -- accept
�62
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Nom • Rôles • Cardinalités • Direction de lecture • Navigabilité
Notation
HTMLFolder
HTMLPage
1 contents
Possède
container*
�63
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Exacte : 1 • Plusieurs (0 à n): * • Optionnelle: 0,1 • Spécifiée: 1, 2, 4 • Intervalle: 1-10
Cardinalités - Notation
�64
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• {set} : chaque élément est présent au plus une fois (par défaut) • {bag} : un élément peut être présent plus d’une fois • {ordered}: set ordonné • {sequence} or {seq}: bag ordonné
Propriétés des rôles
�65
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• {redefines <end-name>} : redéfinition d’un autre rôle • {subsets <property-name} : le rôle représente un sous-ensemble • {union} : union dérivée de tous ses sous-ensembles
Propriétés des rôles
�66
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Association réflexive • Association n-aire • Association qualifiée • Association-classe • Agrégation partagée • Agrégation composite
Cas particuliers (1/2)
�67
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Association réflexive
• Liaison entre objets de la même classePersonne
enfant
parent
0..2
*
�68
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Association n-aire
• Association entre plus de deux classes
• Interprétation confuse des cardinalités
Enseignant Matière
Classe
*enseignement
1..*
1..*
�69
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Association qualifiée
• Qualificatif: attribut spécial, qui permet de réduite la cardinalité (de n à 1)
• Une clef permettant de distinguer un objet de façon unique
Banque compte Personne* 0..1
�70
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Association-classe
• Aussi appelée classe de liaison
Etudiant Matière
Notevaleur : intop()op()
�71
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Agrégation
• Notion de “tout” et “partie”
• Partagée et compositeVoiture Roue
Chassis
4,6
1
�72
Gerson Sunyé - Université de Nantes
Généralisation
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Héritage, caractéristique des langages à objets • Partage de structure et comportement entre classes
Généralisation
�74
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Mécanisme d’extension de module • ajout de fonctionnalités dans la sous-classe • réutilisation de code
Utilisation (1/2)
�75
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Mécanisme de classification : sous-typage • relation X est-une-sorte-de Y (est substituable à) • organisation des systèmes complexes (cf. Linnaeus) • réutilisation d’interface
Utilisation (2/2)
�76
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Relation “est une sorte de”, “est remplaçable par”
Notation
Etudiant{abstract}
Etudiant de Maîtrise
Etudiant de DESS
Etudiant
Etudiant de Maîtrise
Etudiant de DESS
�77
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• complete/incomplete: couverture. Une personne est soit un homme, soit une femme.
• disjoint/overlapping: si les classificateurs partagent des instances. Une personne peut être aussi un étudiant.
Generalization Set
Personne
Etudiant Homme Femme
{complete, disjoint}{incomplete, disjoint}
�78
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Attributs • Opérations • Associations • Contrats, états, etc. (mais cela, nous verrons plus tard)
Généralisation
�79
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Un attribut qui a le même nom qu’un attribut hérité est une redéfinition
Attributs
Personnenom : Stringsecu : Integernaissance : Date
Personneid {redefines nom}naissance : Integer
�80
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Une opération peu être redéfinie si: • elle a le même nombre
de paramètres • Le type de chaque
paramètre est conforme au paramètre correspondant
Opérations
Départementvirer (e : Etudiant)
Département d'infovirer (e : EtudiantInfo)
�81
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Les associations sont héritées par les sous-classes
Associations
Etudiant
Etudiant de Maîtrise
Etudiant de DESS
Départementappartient
�82
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Il est possible de spécialiser une association • Double emploi avec <redefined> ?
Associations
Etudiant Département
Etudiant en informatique
Département d'info
appartient
appartient{redefined appartient}
�83
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Relation entre deux éléments (client et fournisseur) • Abstraction • Permission • Réalisation • Substitution
Dépendances
�84
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Entre éléments de différents niveaux sémantiques • «derive» : éléments dérivés, pas forcément du même type • «refine» : raffinement entre modèles • «trace» : (aussi) - utilisé pour marquer les changements entre
modèles.
Abstraction (1/2)
�85
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Relation entre un «type» du modèle d’analyse avec une classe du modèle de conception
Abstraction (2/2)
«type»Personne
Personne Impl
«refine»
�86
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Outillage de méthodes de développement (RUP, Catalysis, etc.)
Intérêt de l’abstraction
�87
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Droits d’accès aux propriétés privées
Permission
Etudiant+ nom- cartable
Professeur«permit»
�88
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Relation entre deux ensembles d’éléments, de spécification et d’implémentation
• Utilisé pour représenter: raffinement, optimisation, transformations, synthèses, etc.
• «realize»
Réalisation
�89
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Relation entre classificateurs. Les instances du fournisseur peuvent remplacer celles du client
Substitution
Etudiant+ nom- cartable
Espion«substitute»
�90
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• «call» : dépendance entre opérations (où classes) • «create» : le client créé des instances du fournisseur
(classificateurs) • «instantiate» : les opérateurs du client créent des instances du
fournisseur
Usage
�91
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• «send» : entre une opération et un signal
Usage (2/2)
�92
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Représentation des associations non permanentes • Très utiles pour estimer la testabilité d’un modèle ou l’impact
d’un changement
Intérêt de l’usage
�93
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Principal mécanisme d’extension d’UML • Permet l’extension (ou plutôt la restriction) de la plupart des
éléments de modélisation: classe, objet, opération, acteur, cas d’utilisation, diagrammes, etc.
Stéréotypes
�94
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Peuvent introduire: • une nouvelle notation • des contraintes
d’utilisation • Très utiles pour
l’interprétation d’un modèle
Notation
«persistent»Personne
nom : Stringsecu : Integernaissance : Date
Personne
nom : Stringsecu : Integernaissance : Date
«persistent»Personne
nom : Stringsecu : Integernaissance : Date
Personne
�95
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Pair de la forme “étiquette=valeur”, attachée aux éléments de modélisation
Etiquettes (tagged values)
Personne{author = G. Sunyé,status = incomplete}
nom : Stringsecu : Integernaissance : Date
�96
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Compléments de modélisation sous forme textuelle, attachées à un élément ou un diagramme
• Peuvent être stéréotypées
Notes
Départementvirer (e : Etudiant)
Département d'infovirer (e : EtudiantInfo)
Le département d'informatique ne peut virer que les étudiants
d'informatique
�97
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Mécanisme d’extension, permettant d’adapter UML à l’aide d’un ensemble de stéréotypes
• Le profil “Standard” contient les stéréotypes utilisés dans UML • Autres profils: J2EE/EJB, COM, .NET, CCM, etc.
Profils
�98
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Groupement d’éléments, qui leur fournit un espace de nommage commun
Paquetage (1/3)
�99
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Utilisé pour structurer une application • Il se compose de classes et d’autres paquetages • Il référence des classes ou d’autres paquetages
Paquetage (2/3)
�100
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Utilisé pour réglementer la visibilité des classes et paquetages qui le composent
Paquetage (3/3)
�101
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Vues externe et interne
Notation
Types
«datatype»Date
Types
�102
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Importation («import»): les éléments de l’espace de nommage sont importés
• Accès («access»): les éléments sont simplement utilisés
Dépendances entre paquetages
Types
Persistence Gestion
«import»
«access»
�103
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Une fusion définie la manière dont un paquetage étend un autre • Composé de liens de généralisation et de redéfinition
Fusion de paquetages
�104
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Vue externe
Notation
Types
Enumerations My Types
«merge»
«merge»
�105
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Vue interne
Notation
«datatype»Types::Date
My Types
«datatype»Date
�106
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes Structurels
• Classes • Objets • Structures composite
�107
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Représentation d’objets, de liens et de valeurs. • Très utiles pour expliquer les associations entre classes ou le
résultat d’une opération
Diagramme d’instances
�108
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Similaire à celle d’une classe • Le nom de l’instance et celui de la classe sont soulignés
et séparés par “:” • Les deux noms sont facultatifs
Notation
Arnaud : Etudiant
adresse = "13 r du pont"age : Integer = 38
: Département
nom = "Informatique"
appartient
�109
Gerson Sunyé - Université de Nantes
• Composant
• Connecteur
• Artefact
• Port
Élements du diagramme de composants
�111
Gerson Sunyé - Université de Nantes
• Composants:
• Partie remplaçable d’un système.
• Son comportement est spécifié en terme d’interfaces requises et fournies.
Définition
�112
Gerson Sunyé - Université de Nantes
• Interfaces requises et fournies.
Notation
«component»Dictionnaire
Synonymes
AntonymesTexte structuré
«component»Dictionnaire
«provided interfaces» Synonymes Antonymes«required interfaces» Texte structuré
�113
Gerson Sunyé - Université de Nantes
• Point d’interaction entre un composant et son environnement.
• La nature de ces interactions est spécifiée par des interfaces.
Port
«component»DictionnaireSynonymes
Antonymes
�114
Gerson Sunyé - Université de Nantes
• Liaison entre un contrat externe (port) et la réalisation.
• Assemblage, délégation.
Connecteur
:Index
:Langue
Dictionnaire
Texte structuréAntonymes
«component»:Texte
Texte structuré «component»:Dictionnaire
Texte structuré �115
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes Structurels
• Classes • Objets • Composants • Déploiement • Structures composite
�116
UML — Composants
Gerson Sunyé - Université de Nantes
• Composant
• Connecteur
• Artefact
• Port
Élements du diagramme de composants
�118
Gerson Sunyé - Université de Nantes
• Composants:
• Partie remplaçable d’un système.
• Son comportement est spécifié en terme d’interfaces requises et fournies.
Définition
�119
Gerson Sunyé - Université de Nantes
• Interfaces requises et fournies.
Notation
«component»Dictionnaire
Synonymes
AntonymesTexte structuré
«component»Dictionnaire
«provided interfaces» Synonymes Antonymes«required interfaces» Texte structuré
�120
Gerson Sunyé - Université de Nantes
• Point d’interaction entre un composant et son environnement.
• La nature de ces interactions est spécifiée par des interfaces.
Port
«component»DictionnaireSynonymes
Antonymes
�121
Gerson Sunyé - Université de Nantes
• Liaison entre un contrat externe (port) et la réalisation.
• Assemblage, délégation.
Connecteur
:Index
:Langue
Dictionnaire
Texte structuréAntonymes
«component»:Texte
Texte structuré «component»:Dictionnaire
Texte structuré �122
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes Structurels
• Classes • Objets • Composants • Déploiement • Structures composite
�123
UML — Déploiement
Gerson Sunyé - Université de Nantes
• Éléments de modélisation:
• Artefact
• Chemin de communication
• Déploiement
• Dispositif
• Noeud
Diagramme de déploiement
�125
Gerson Sunyé - Université de Nantes
• Spécification d’une pièce physique d’information utilisée dans le processus de développement
• Fichiers source, modèles, scripts, binaires, document, etc.
Artefact
�126
Gerson Sunyé - Université de Nantes
• Un artefact est un classificateur: il possèdes des propriétés et des opérations
• Il peut s’associer avec d’autres artefacts
Artefact
�127
Gerson Sunyé - Université de Nantes
• Stéréotypes standards: «source», «executable»
Notation
«artifact»
Order.jar
«artifact»
Order.jar
�128
Gerson Sunyé - Université de Nantes
• Ressource logique sur laquelle les artefacts sont déployés.
Noeud
�129
Gerson Sunyé - Université de Nantes
• Connexion, instances
Notation
Zope ZODB1 1..4
CMF
«deploy»
:Zope
:Zope
CMF«artifact»«artifact»
Plone
�130
Gerson Sunyé - Université de Nantes
• Association entre deux noeuds, permettant l’échange de signaux et de messages.
Chemin de communication
�131
Gerson Sunyé - Université de Nantes
• Ressource (artefact) déterminant les paramètres d’exécution d’un artefact.
Spécification de déploiement
«artifact»
Order.jar
«deployment spec»
description.xml
�132
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Classes • Objets • Structures composite
Diagrammes structurels
�133
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Structures internes • Collaborations
Structures composite
�134
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Spécification d’éléments créés à l’intérieur d’un classificateur
Structures internes
�135
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Propriétés • Instances • Références
Notation
:Point [3] :Color
Triangle
:Triangle
a:Point
c:Pointb:Point
blue:Color
Trianglemake(c : Color)
«create»
�136
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Spécification de la structure d’un ensemble d’éléments (rôles) qui réalisent une tache commune
• Représentation de la structure d’un patron de conception
Collaborations
�137
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Rôle: rôle d’une classe participant à une collaboration
• Connecteur: lien permettant la communication entre deux classes
Notation (1/3)
/Observer:Dependent /Subject:Model
Observer
�138
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Les propriétés définies par les classificateurs doivent être possédées par les classes jouant leurs rôles
Notation (2/3)
Modelnotify()
addDependent()
Dependentupdate()
Observer
Observer Subject
�139
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Occurrence d’une collaboration
Notation (3/3)
Fenêtre Donnée
:Observer
Observer Subject
�140
Diagrammes comportementaux
�141
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes de comportement
• Etat-transition • Interaction • Activités
�142
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Diagrammes état-transition
• Modélisation d’un comportement par un système fini d’états et de transitions
• Il existe deux sortes de digrammes d’état: • De comportement • De protocole
�143
Diagramme de d’état de comportement
�144
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Décrivent un comportement à l’aide d’un graphe d’États, interconnectés par des Transitions, qui sont déclenchées par des Événements
• En d’autres termes, décrivent les réactions d’un objet aux changements de son environnement.
• Essentiellement, un diagramme de Harel • Attachés à un classificateur (sauf interfaces) ou à une opération
• Sont hérités, et peuvent être spécialisés
Machines à états
�145
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Relation unidirectionnelle entre deux états (ou entre deux machine d’état)
• Interne à un état • Externe: implique un changement d’état • Locale: s’applique à tous les états d’un état composite
Transition
�146
Gerson Sunyé - Université de Nantes
Transition — notation
Evt1 [cond] / m() ^Evt2E1 E2
état transition
événement reçuévénement émisactioncondition de garde
�147
Gerson Sunyé - Université de Nantes
Transition — exemple
Syntaxe : trigger [guard]/ trigger
Open Closequit(user) [user has rights] / parent := user.parent(); parent.update()
�148
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Evénement qui peut causer l’exécution d’un comportement qui lui est associé. Exemples: • Message: Événement ou Opération • Temporel • Changement
Déclencheur (Trigger)
�149
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Événement/Signal
• Un événement est un type de message pouvant être échangé entre deux objets.
• Asynchrone (contrairement aux opérations, qui sont synchrones) • Peut transporter des données. • Correspond à un message asynchrone dans les diagrammes de
séquence.
�150
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Événement
• Stimuli auxquels réagissent les objets • Occurrence déclenchant une transition d’état
• Abstraction d’une information instantanée échangée entre des objets et des acteurs • Un événement est instantané • Un événement correspond à une communication
unidirectionnelle • Un objet peut réagir à certains événements lorsqu'il est dans
certains états. • Un événement appartient à une classe d'événements (classe
stéréotypée «signal»).
�151
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Événement
• Déclaration au sein d’un diagramme de classe au moyen d’une Classe stéréotypée « signal » !
!
!
!
• Utilisation au sein • d’un diagramme de séquence pour représenter les interactions
dynamiques entre objets, • des diagrammes d'états pour représenter les déclencheurs de
transitions.
�152
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Notion d’événements
• Les événements sont considérés comme des objets
time : Integer
«signal»IO Event
device : Integer
«signal»User Input
position : Point
«signal»Mouse Click
key : Integer
«signal»Key Pressed
port : Integer
«signal»Network
�153
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Types d’événements
• Réalisation d’une condition arbitraire • transcrit par une condition de garde sur la transition
• Réception d’un signal issu d’un autre objet • transcrit en un événement déclenchant sur la transition
• Réception d’un appel d’opération par un objet • transcrit comme un événement déclenchant sur la transition
• Période de temps écoulée • transcrit comme une expression du temps sur la transition
�154
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Contrainte évaluée avant le déclenchement d’une transition
Garde
�155
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Déclenchée par une transition ou interne à un état • Définit un comportement, spécifié dans n’importe quel langage
(!)
Activité
�156
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Notion d’action
• Action : opération instantanée (conceptuellement) et atomique (ne peut être interrompue)
• Déclenchée par un événement • Traitement associé à la transition • Ou à l’entrée dans un état ou à la sortie de cet étatUser_input / mise_sous_tension
délai_mise_en_veille / passage_en_mode_veille
Veille Allumé
action
action�157
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Notion d’activité interne à un état
• Activité : opération se déroulant continuellement tant que l’on est dans l’état associé • do/ action
• Une activité peut être interrompue par un événement.
TéléphoneN° invalide Téléphone raccroché Invalide
do / passer message
activité�158
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Situation stable d’un objet: • en attente d’un événement, ou • en train de réaliser une tâche
• Conditionne la réponse de l’objet à des événements • programmation réactive / « temps réel »
• Peut avoir des variables internes • Attributs de la classe attachée à ce diagramme d’états
• Trois sortes: simple, composite et sous-machine
Etat
�159
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Compartiments: • Nom • Activités internes • Transitions internes
Notation
ICQ-Connectedentry/say_hello()exit/bye_bye()do/poll()keyboard/read_msg()
�160
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Etat englobant différents sous-états • Possède une entrée et une sortie • Transition arrivant -> entrée • Transition sortant -> sort de tous les états
Etat composite
�161
Gerson Sunyé - Université de Nantes
Notation
Offline Available N/A Freedeconnect()
Online
set_available()
not_available() free_for_chat()
�162
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Notation
• Etat composite avec indicateur de décomposition
Online
do/poll()
�163
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Régions concurrentes, représentant 2 (ou n) aspects indépendants d’un objet.
• Activités parallèles • Evitent l’expression d’un
produit cartésien
Composite Orthogonal
Online
InvisibleVisible
Available
�164
Gerson Sunyé - Université de Nantes
Diagrammes d'états concurrents : exemple
Préparation d'un avion
Remplissage PleinMaintenance
Réservoir pleinpréparation Avion
prêt
Chargement nourriture Nourriture
chargée
Approvisionnement
Compartiment plein
Equipage absent Vérification
avion
Equipage
Montée
vérification OK
�165
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Sous-machine
• Référence à une machine d’états
�166
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Référence à une machine d’états • Points de connexion:
• Entrée • Sortie
Notation
Connexion:ConnexionMachine
timeout
�167
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Initial, Final • Entrée, sortie • Fourchette, jonction
(régions orthogonales) • Choix
Pseudo-états
id
[>10]
[<=10]
�168
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Envoi et réception d’événements
• Séquence d’actions • Pour une vue “orientée
transition”
Transitions particulières
Abort
Timeout
Connected
reason = timeout
Offline
�169
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Ajout de nouvelles transitions ou de nouveaux états
• Spécialisation d’états (transformation d’un état simple en composite)
• Un état peut être {final}
Spécialisation
Online Offline
Connection {extended}
new transition
�170
Diagramme d’état de protocole
�171
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Machines d’état de protocole
• Spécialisation des machines d’états • Toujours attachées à un classificateur • Représentent un cycle de vie d’un objet et spécifient quels
messages sont acceptés à chaque état
�172
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Similaire aux machines d’états
• Notée {protocol}
Notation
Porte {protocol}
Ouverte Fermée[couloir->libre] Fermer/
�173
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
• Spécifient une pré et une post condition
Transitions
[pré-condition] événement / [post-condition]
�174
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Spécifient un invariant
Etats
[invariant]Etat
�175
Résumé
�176
Gerson Sunyé - Université de Nantes
Exemple de diagramme d'états
Actif
En composition
connecté
décroche combiné
Repos
Appelé raccroche
Dialogue Sonnerie do/ sonneRéponse de l’appelé/
autorise parole
Compose numéro (n)
Appelant raccroche/ déconnexion
Tonalité do/ joue tonalité
Occupé do/ tonalité occupée
occupé
15 sec
Invalide do/ dit message
Compose numéro (n) [n.isInvalid]
Timeout do/ timeout tone 15 sec
Compose numéro (n)
Etablissement
OccupéLibre
Dernier numéro
�177
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Émission d’événements
• Automate d’états d’une télécommande double (TV + MAGNETOSCOPE) :
Contrôle distantMAGNETOSCOPE
TVcontrôle
TVcontrôle
MAGNETO
bouton marche ^signal ON/OFF
Télévision
Arrêt Marche
signal ON/OFF
�178
Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes
Etat-transition (résumé)
• Format : • événement (arguments) [conditions] / action ^événements provoqués
• Déclenchement : • par un événement (peut être nul).
• Peut avoir des arguments. • Conditionné par des expressions booléennes sur l'objet courant,
l'événement, ou d'autre objets.
• Tir de la transition : • Exécute certaines actions instantanément. • Provoque d'autres événements ; globaux ou vers des objets cibles.
�179
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes de comportement
• Interaction • Activités
�180
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Définissent le comportement d’un Classificateur • Le comportement est défini par deux ensembles de traces:
• Valides • Invalides
Interactions
�181
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Interactions
• Décrivent l’échange de messages entre objets. Diagrammes: • Séquence • Communication • Aperçu d’interaction
�182
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Interaction
• Diagramme de Séquences
�183
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Exemples de coopération entre objets • Illustrent la dynamique d’enchaînement d’un traitement à travers
les messages échangés entre objets • Représentation du temps comme une dimension explicite
(verticale)
Diagramme de séquences (scénario)
�184
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Constitution: • Un message initiateur • Un ensemble d’objets et de messages • Des cadres (frames) • Des contraintes de temps
Diagramme de séquences
�185
Gerson Sunyé - Université de Nantes
Notation
sd Exemple
obj : C1 obj2 : C2
obj3 : C1
Message Asynchrone
Message synchrone
creation()
new = obj3
message(obj, obj2)
debut
�186
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Messages
• Communication (synchrone ou asynchrone) entre deux lignes de vie. Sortes de message: • Complet (événements d’envoi et de réception connus) • Trouvé (événement d’envoi inconnu) • Perdu (événement de réception inconnu) • Inconnu
�187
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Asynchrone • Synchrone • Création • Perdu • Trouvé
Messages - Notation
Message Asynchrone
Message synchrone
obj3 : C1creation()
retour
�188
Gerson Sunyé - Université de Nantes
Messages - Syntaxe
message ::= [attribut =] signal-ou-operation [(arguments)][: valeur-retour] | ‘*’arguments ::= argument [, arguments]
argument ::= [paramètre=]valeur-argument | attribut = paramètre-sortie [valeur-argument] |
message(14, -, 3.14, “hello”)v=message(16, variable):96message(id=16)
Exemples:
�189
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Ligne de vie: • Représente l’existence d’un objet à un
moment particulier • Entre la création et la destruction
• Activation: • Période d’exécution d’une activité (lui-
même, délégation)
Ligne de vie, Activation
obj : C1
�190
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Observation de durée, contraintes
• Observation de temps (instants), contraintes
Contraintes temporelles
:User :ACSystem
Code d = duration
CardOut {0..13}
{d..3*d}
{t..t+3}
t = now
�191
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Région définissant une sémantique précise à l’intérieur d’une interaction
• Raccourcis pour l’écriture de traces
• Composé de [1..*] “Opérandes”
Fragments
sd Region Critique
obj : C1 obj2 : C2
msg()
msg()
critical
�192
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Alternatives (alt): choix de comportement, entre deux opérandes
Fragments
sd Exemple
obj : C1 obj2 : C2
msg()
msg()
alt [x == 42]
[else]
�193
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Option (opt): l’opérande est optionnelle. Elle peut ne pas exister • Break (break): l’opérande est exécutée, à la place du reste de
l’interaction (raccourci pour alternative)
Fragments
�194
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Parallèle (par): le comportement spécifié par les deux opérandes peut s’exécuter en parallèle (fusion entre les messages)
• Négatif: le fragment représente des traces invalides
Fragments
�195
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Région critique (critical): les traces spécifiées ne peuvent pas être intercalées
Fragments
�196
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Assertion (assert): spécification de la seule continuation valable
• Ignorer et Considérer (ignore | consider): spécification des messages significatifs
Fragments
sd Exemple ignore {t,r}
:X :Y
consider {q,v,w} v()
assert
q()
�197
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Boucle (loop): l’opérande sera répétée autant de fois que défini par une garde
• Autres: strict, ordonnancement strict, ordonnancement faible
Fragments
�198
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Diagramme de Communication
Interaction
�199
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Comme le diagramme de séquences, sert à représenter des exemples de coopération d’objets
• Cependant: la dimension temporelle est représentée par une séquence et les liens entre objets sont visibles
Diagramme de Communication
�200
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Equivalent à un diagramme de séquences
• Le chemin utilisé par les messages est visible
Notation
Gildas:Caissier
Aurélie:Client
1: demande argent()
2 : reçoit argent()
�201
Gerson Sunyé - Université de Nantes
Notation
:Carre :Segment
origine:Point
destination:Point
Sylvain
afficher() 1 *(i=1..4):affiche()4
1.1 position()
1.2 position()
Séquences consécutives et imbriquées
�202
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Diagrammes de comportement
!
• Interaction • Activités
�203
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Spécifie la séquence et les conditions pour coordonner différents comportements (plutôt que les classificateurs contenant ces comportements)
• Attachés à un Classificateur
Diagramme Activités
�204
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Composés d’un ensemble d’actions et de flots (de contrôle et de données)
• Spécifient une opération (conception) • Peuvent spécifier un workflow • Sémantique basée sur les réseaux de Petri
Diagramme Activités
�205
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Paramètres d’entrée et de sortie
• Pré et post-conditions • Exceptions
Notation
{activity}Activité
Attribut : type
Attribut : type
Operation(param)
Operation(param)
Action Action
Action
Nom de l'activité «precondition» contrainte«postcondition» contrainte
�206
Gerson Sunyé - Université de Nantes
Notation
�207
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
Actions
• Représentent un comportement d’exécution (une étape dans l’exécution d’un algorithme)
• Peuvent avoir une pré et une post conditions
• Types: fonctions primitives, appel de comportement, envoi d’événements, manipulation d’objets (lecture/écriture d’attributs)
Verser Café
boisson choisie = Café«localPrecondition»
le café est versé«localPostcondition»
�208
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• De contrôle: déclenche une action une fois que l’action précédente est finie
• D’objet: chemin par lequel peuvent passer des objets et des données
Flots
�209
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Instance d’un classificateur, potentiellement dans un état particulier
• Événements
Objet
Café
[chaud]
{ordering = LIFO}
Annulation
�210
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Région d’une activité qui peut avoir une sortie alternative au flot normal
Région interruptive
déterminer boisson
mettre café dans le filtre
ajouter de l'eau dans le réservoir obtenir gobelet
mettre filtre dans la machine
infuser
Annulation
préparation annulée
�211
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Région qui s’exécute plusieurs fois, selon les éléments de la collection passée en entrée
• Types d’exécution: parallèle, itérative ou stream
Région d’expansion
parallel
�212
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Fin d’activité, fin de flot • Fourchette
Autres noeuds
Préparer café
Livrer café
[encore du café]
[plus de café]
�213
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Décision: branchement sur plusieurs transitions
• Fusion: accepte un flot parmi plusieurs
Autres noeuds
[cout>10]
[cout<=10]
�214
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Jointure • Fourchette
Autres Noeuds
�215
Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes
• Groupement d’actions ayant des caractéristiques communes
• Utilisées pour affecter des actions à des ressources différentes (Classificateurs, Noeuds)
Partition
déterminer boisson
mettre café dans le filtre
ajouter de l'eau dans le réservoir
mettre filtre dans la machine
infuser
:Dis
tribu
teur
de
Bois
sons
:Caf
etiè
re
�216
Mécanismes d’extension
�217
Gerson Sunyé - Université de Nantes
Motivation
• Malgré sa richesse, UML n’est pas adapté à tous les domaines.
• Formes d’extension:
• Ajout de nouveaux éléments.
• Création de nouvelles propriétés.
• Spécification d’une nouvelle sémantique.
• Mécanismes disponibles:
• Stéréotypes, étiquettes et contraintes.�218
Gerson Sunyé - Université de Nantes
Stéréotypes
• Utilisés pour créer des éléments de modélisation spécifiques à un domaine.
• Par exemple, pour modéliser une base de données:
• «Entity», «Relationship»
• «Table», «Index»
�219
Gerson Sunyé - Université de Nantes
Stéréotypes - notation
• Textuelle: entre guillemets (« »)
• Icône
«Database»
Séminaires
list_all_lectures()
Séminaires
list_all_lectures()
Séminaires
�220
Gerson Sunyé - Université de Nantes
Étiquettes
• Définition de propriétés pour n’importe quel élément de modélisation.
• Attachées à des éléments existants ou à des stéréotypes. • Présentées sous la forme d’une paire étiquette=valeur
�221
Gerson Sunyé - Université de Nantes
Étiquettes
• Utiles pour ajouter des informations concernant: • La documentation • Le contrôle de version • La génération de code • etc.
�222
Gerson Sunyé - Université de Nantes
Étiquettes - notation
• Présentées entre crochés.{version = 1.1}
Cours
Nom : StringDurée : Integer
�223
Méta-modèle
�224
Gerson Sunyé - Université de Nantes
Méta-modélisation
• Spécification d’un langage de modélisation grâce à un autre langage de modélisation, appelé «métalangage» ou «métalangue».
�225
Gerson Sunyé - Université de Nantes
Métalangage
• Une métalangue est une langue qui prend pour objet une autre langue et qui la formalise.
• Un métalangage n’est rien d’autre qu’un langage. • Même s’il s’agit d’un méta-méta-méta-méta-méta-méta-méta-
méta-méta-méta-méta-méta-métalangage.
�226
Gerson Sunyé - Université de Nantes
Langage
• Un langage est composé d’une syntaxe et d’une sémantique. • La syntaxe spécifie les sujets (concepts, entités) et les verbes
(liens entre ces concepts) d’un langage. • La sémantique donne une interprétations aux sujets et aux
verbes
�227
Gerson Sunyé - Université de Nantes
Syntaxe abstraite
• Définition des liens possibles • Exemple: une association lie deux classes, une classe contient des
attributs, etc.
�228
Gerson Sunyé - Université de Nantes
Syntaxe concrète
• Syntaxe concrète: définition de la représentation des sujets et des verbes.
• Par exemple: graphique (diagrammes), textuelle (HUTN).
Cours
Nom : StringDurée : Integer
Class “Cours” { attribute: “nom” { type = “String” } attribute: “durée” { type = “String” } }
�229
Gerson Sunyé - Université de Nantes
Méta-modèle
• Modèle représentant la syntaxe abstraite d’un langage. • Celui de UML est représenté en MOF et organisé en différents
paquetages. • Il est complété par des règles de bonne formation (well
formedness rules) sous la forme de contraintes OCL.
�230
Profils
�231
Gerson Sunyé - Université de Nantes
Profil
• Mécanisme d’extension d’UML permettant la création de modèles dans des domaines spécifiques:
• Systèmes de temps-réel, EJB, Corba, Test, etc.
�232
Gerson Sunyé - Université de Nantes
Spécification
• Un profil est un paquetage qui contient un ensemble de mécanismes d’extension: stéréotypes, étiquettes, contraintes, etc.
• Ces mécanismes s’appliquent à des éléments UML existants:
• les profils ne modifient pas le méta-modèle de UML.
�233
Gerson Sunyé - Université de Nantes
Rôle
• Identifier un sous-ensemble d’UML
• Spécifier des stéréotypes et/ou des étiquettes.
• Spécifier d’autres règles de bonne formation.
• Spécifier une sémantique (toujours en langage naturel).
�234
Gerson Sunyé - Université de Nantes
Exemple
• Profil UML pour la modélisation de données.
• Éléments:
• Entités
• Associations
• Contraintes: les entités sont des classes qui n’ont pas de comportement
�235
Le profil de modélisation
context Stereotypeinv: self.name = “Entity” implies self.baseClass.ownedOperation->isEmpy()
Data modeling profile
Classfrom Core
Associationfrom Core
«Stereotype»Entity
«Stereotype»Relationship
�236
Exemple
«Entity»Lecture
«Entity»Professor«Relationship»
�237