Christine Bonnet UMLChristine Bonnet UML 11
Unified Modeling Language (UML)
Langage de modélisation unifié (notation unifiée) fondé sur les concepts orientés objet ;
Créé dans le cadre de l'OMG (Object Management Group)
Objectif :définir une notation standard utilisable dans le
développement des systèmes informatiques
basés sur l'objet.
Christine Bonnet UMLChristine Bonnet UML 22
OMG (OMG (ObjectObject Management Group)Management Group)Organisme de normalisation international crOrganisme de normalisation international créééé en 1989 en 1989 àà ll’’initiative initiative de socide sociééttéés ams amééricaines ricaines
Mission : standardisation des technologies objets pour une Mission : standardisation des technologies objets pour une meilleure interopmeilleure interopéérabilitrabilitéé des solutions logiciellesdes solutions logiciellesMembres : Membres :
–– ÉÉditeurs de logiciels (SOFTEAM, Oracle, Microsoft,diteurs de logiciels (SOFTEAM, Oracle, Microsoft,……))–– Constructeurs (Sun, IBM, Constructeurs (Sun, IBM, ……))–– Utilisateurs (France TUtilisateurs (France Téélléécom, AT&T, com, AT&T, ……))
Standards les plus connus Standards les plus connus –– UML : notation pour lUML : notation pour l’’analyse et la conceptionanalyse et la conception–– CORBA (CORBA (CommonCommon ObjectObject RequestRequest Broker Architecture) : Broker Architecture) :
modmodèèle pour la construction dle pour la construction d’’applications applications àà objets objets distribudistribuéés (rs (réépartis sur un rpartis sur un rééseau).seau).
Christine Bonnet UMLChristine Bonnet UML 33
Unified Modeling Language (UML)
N'est pas une méthode : UML ne propose pas de processus standard d'analyse ou de conception.
Raisons : 1. UML se veut un standard
ORPas de consensus international suffisant pour aboutir àdes processus de développement logiciel standard acceptables et utilisables.
2. Les processus dépendent des organisations et des métiers. Pas de processus unique adapté à toutes les situations.
Conçu pour permettre la modélisation de "tous" les phénomènes de l'activité de l'entreprise.
Exemple : le ministère de la Justice américain modélise les processuspénitencier de New York avec UML.
Christine Bonnet UMLChristine Bonnet UML 44
Chronologie des méthodes / Précurseurs d'UML1975 1980 1985 1990 1995 2000
WARNIERDIEKSKRACORIG
Réseau de PETRIThéorie des systèmes
MERISE(1978)
BACHMANN
Shlaer & MellorOOA (1979)
REMORA(1982)
MERISE/2(1992)
OOM(1993)
RumbaughOMT (1987)
JacobsonOOSE (1990)
HOOD(1987)
Coad & YourdonOOA/OOD (1991)
Booch - OOD(1981)
UML(1997)
HOOD (Hierarchical Object Oriented Design)OMT (Object Modeling Technique)OOA (Object Oriented Analysis)OOA/OOD (Object Oriented Analysis/ Object Oriented Design)OOD (Object Oriented Design)OOM (Orientations Objet dans MERISE)OOSE (Object Oriented Software Engineering)UML (Unified Modeling Language)
Christine Bonnet UMLChristine Bonnet UML 55
Apports d'UMLApports d'UMLElaboration ou refonte d'un système d'information de l'entreprise sur la base du concept objet
pérennité du concept objet?risques encourus?
gains escomptés?lubie ou effet de mode?
Avantages apportés par UML ( par l'objet) :
- Réactivité ;- Plus grande évolutivité des applications ;- Réutilisation des composants ;- Gains de productivité en développement et en maintenance ;
- Meilleure communication avec les utilisateurs ;- Des IHM plus sophistiquées.
La tâche d'une équipe de développement logiciel est de donner l'illusion de la simplicité.
Christine Bonnet UMLChristine Bonnet UML 66
UML est un langage pseudo-formel
UML est fondé sur un métamodèle, qui définit :
les éléments de modélisation (les concepts manipulés par le langage)
la sémantique de ces éléments (leur définition et le sens de leur utilisation)
Un métamodèle est une description très formelle de tous les concepts d'un langage. Il limite les ambiguïtés.
Christine Bonnet UMLChristine Bonnet UML 77
ExempleExemple
Christine Bonnet UMLChristine Bonnet UML 88
UML est un support de communication
Sa notation graphique permet d'exprimer visuellement une solution objet.
L'aspect formel de sa notation limite les ambiguïtés et les incompréhensions.
Son aspect visuel facilite la comparaison et l'évaluation de solutions.
Son indépendance (par rapport aux langages d'implémentation, domaine d'application, processus...) en font un langage universel.
Christine Bonnet UMLChristine Bonnet UML 99
Les points forts d'UML
UML est un langage formel et normaliségain de précision gage de stabilitéencourage l'utilisation d'outils
UML est un support de communication performantIl cadre l'analyseIl facilite la compréhension de représentations abstraites complexesSon caractère polyvalent et sa souplesse en font un langage universel
Christine Bonnet UMLChristine Bonnet UML 1010
Les points faibles d'UMLLa mise en pratique d'UML nécessite un apprentissage et passe par une période d'adaptation.
La nécessité de s'accorder sur des modes d'expression communs est vitale en informatique. UML n 'est pas àl'origine des concepts objets, mais en constitue une étape majeure, car il unifie les différentes approches et en donne une définition plus formelle.
Le processus (non couvert par UML) est une autre cléde la réussite d'un projet
L'intégration d'UML dans un processus n'est pas triviale et améliorer un processus est un tâche complexe et longue.
Mais l'acceptabilité industrielle de la modélisation objets passe d'abord par la disponibilité d'un langage d'analyse objet performant et standard.
Christine Bonnet UMLChristine Bonnet UML 1111
Diagrammes UMLDiagrammes UML
Vues statiques du systVues statiques du systèèmeme–– Diagramme de paquetagesDiagramme de paquetages
regroupe des regroupe des ééllééments de modments de modéélisation, selon des lisation, selon des critcritèères purement logiques.res purement logiques.
–– Diagramme de classesDiagramme de classescollection d'collection d'ééllééments de modments de modéélisation statiques, qui lisation statiques, qui montre la structure d'un modmontre la structure d'un modèèle.le.
–– Diagramme dDiagramme d’’objetsobjetsmontre des objets (instances de classes dans un montre des objets (instances de classes dans un éétat tat
particulier) et des liens (relations sparticulier) et des liens (relations séémantiques) entre ces objets.mantiques) entre ces objets.
Christine Bonnet UMLChristine Bonnet UML 1212
Vues statiques (suite)Vues statiques (suite)
–– Diagramme de cas dDiagramme de cas d’’utilisationutilisationLes use cases permettent de structurer les besoins des Les use cases permettent de structurer les besoins des utilisateurs et les objectifs correspondants d'un systutilisateurs et les objectifs correspondants d'un systèème. me.
–– Diagramme de composantsDiagramme de composantspermettent de dpermettent de déécrire l'architecture physique et statique crire l'architecture physique et statique d'une application en terme de modulesd'une application en terme de modules : fichiers sources, : fichiers sources, librairies, exlibrairies, exéécutables, etc.cutables, etc.
–– Diagramme de dDiagramme de dééploiementploiementmontre la disposition physique des matériels qui composent le système et la répartition des composants sur ces matériels.
Christine Bonnet UMLChristine Bonnet UML 1313
Diagramme UML (suite)Diagramme UML (suite)
Vues dynamiques du systVues dynamiques du systèèmeme–– Diagramme de collaborationDiagramme de collaboration
Les collaborations sont des interactions entre objets, Les collaborations sont des interactions entre objets, dont le but est de rdont le but est de rééaliser un objectif du systaliser un objectif du systèème et me et rréépondre pondre àà un besoin d'un utilisateur.un besoin d'un utilisateur.
–– Diagramme de sDiagramme de sééquencequencepermet de reprpermet de repréésenter des collaborations entre objets senter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages.chronologie des envois de messages.
Christine Bonnet UMLChristine Bonnet UML 1414
Vues dynamiques (suite)Vues dynamiques (suite)
–– Diagramme dDiagramme d’’éétatstats--transitionstransitionspermet de dpermet de déécrire les changements d'crire les changements d'éétats d'un objet tats d'un objet ou d'un composant, en rou d'un composant, en rééponse aux interactions avec ponse aux interactions avec d'autres objets/composants ou avec des acteurs. d'autres objets/composants ou avec des acteurs.
–– Diagramme dDiagramme d’’activitactivitééssUML permet de reprUML permet de repréésenter graphiquement le senter graphiquement le comportement d'une mcomportement d'une mééthode ou le dthode ou le dééroulement d'un roulement d'un cas dcas d’’utilisation, utilisation, àà l'aide de diagrammes d'activitl'aide de diagrammes d'activitéés (une s (une variante des diagrammes dvariante des diagrammes d’’éétatstats--transitionstransitions).).
Christine Bonnet UMLChristine Bonnet UML 1515
EnchaEnchaîînement logique des diagrammesnement logique des diagrammes
Processus d'Analyse et de Conception :Analyse "Quoi ?"expression des besoins, modélisation du domaine.
Conception "Comment ?" Construction de la solution informatique.Affinement des diagrammes.Solution logique puis physique (diagramme de composants et de déploiement)
Mega [4]État Interface
Classe Séquence Collaboration
Cas d'utilisation
Paquetage
Christine Bonnet UMLChristine Bonnet UML 1616
Diagramme de paquetageDiagramme de paquetage
Paquetage :
Un paquetage partitionne le domaine d'étude et les travaux associés.Résultat de l'analyse des processus métier et des structures organisationnelles.(un processus métier est l'ensemble des activités internes d'un métier dont l'objectif est de fournir un résultat observable et mesurable pour un utilisateur individuel du métier).
Groupement d'éléments de modélisation, en particulier les classes et les cas d'utilisation : hiérarchie. Un paquetage peut aussi contenir d'autres paquetages : graphe
Le découpage en paquetages doit être fait de manière à minimiser les interactions entre les différents paquetages.
Moyen de structurationGrain de réutilisationMoyen d'organisation de l'équipe
Christine Bonnet UMLChristine Bonnet UML 1717
Paquetage (suite)Paquetage (suite)Les paquetages divisent et organisent le projet de la même manière que les répertoiresorganisent les systèmes de fichiers.
Notation :
Nom de paquetage
Exemple :
Entreprise
SI commercial Gestion de production
Prospect Client Commande
Société Personne Produit
Commandenumérique
Systèmed'alarme
Christine Bonnet UMLChristine Bonnet UML 1818
Diagramme de classes et d'objetsDiagramme de classes et d'objets
"Regarde le quadrupède allongé sur la véranda"
Les classes et les objets doivent être au bon niveau d'abstraction : ni trop élevé, ni trop bas.
Christine Bonnet UMLChristine Bonnet UML 1919
Objet
Un objet a un état, il exhibe un comportement bien défini et il a une identité unique
• Composante statique : savoir déclaratif Attributs
• Composante dynamique : savoir procéduralMéthodes
Christine Bonnet UMLChristine Bonnet UML 2020
ClassesClassesNotion de type abstrait
Collection d'objets de description et de comportement identiques
Christine Bonnet UMLChristine Bonnet UML 2121
MMéécanisme d'instanciation / classificationcanisme d'instanciation / classification
La classification est le moyen par lequel nous ordonnons nos connaissances
Christine Bonnet UMLChristine Bonnet UML 2222
MMéécanisme d'instanciation / classification (suite)canisme d'instanciation / classification (suite)
Exemple 1 : Exemple 2 :
Classe compteAttributs :
• débit : nombre• crédit : nombre
Méthodes :• déposer• retirer• avoirSolde
C150006000
C232003000
Instance-deInstance-de
AbuQuoi (Boisson)Qui (Personne)QtéDate
BoissonNomQté
PersonneNomAdresse
Christine Bonnet UMLChristine Bonnet UML 2323
DifficultDifficultéé de la classificationde la classification
Différents observateurs peuvent classer le même objet de différentes façons
Christine Bonnet UMLChristine Bonnet UML 2424
Persistance
La persistance sauvegarde l'état et la classe d'un objet à travers le temps et l'espace.
Christine Bonnet UMLChristine Bonnet UML 2525
Approche de l'architecture en couches : Approche de l'architecture en couches : classification des objets.classification des objets.
Trois catégories d'objets :• les objets du domaine = objets métier ; objets conceptuels réutilisables dansdifférentes applications d'un même métier : client, compte bancaire, etc. ;
• les objets de l'application = objets de présentation (grille de saisie), les objets de contrôle, et les dispositifs physiques (objets avec lesquels un utilisateur interagit); objets spécifiques au domaine de l'application ;
• les objets d'implémentation (techniques) = objets de servitude nécessaires pour réaliser une solution informatique (type élémentaire ou construit, liste, arbre, fenêtre, bouton, etc..).
TechnologieUtilisateurs
Système
Objets de type interface
Objets detypetechnique
Cœur dusystème :les objetsmétier
Christine Bonnet UMLChristine Bonnet UML 2626
DiagrammeDiagramme de classesde classesReprésentation de la structure statique d'un système, en terme de classes et derelations entre ces classes.
Représentation d'une classe :
Nom de classe
Attributs
Opérations
Attribut : propriété nommée d'une classe Opération : service qui peut être demandé à un objet pour mettre en œuvre un comportement défini.
Nom_d'attribut : Type_Attribut = Valeur initiale
Attributs dérivés (redondants) : Nom_d_opération()
Rectangle
LongueurLargeur/Surface
Rectangle
LongueurLargeur
Surface()
Christine Bonnet UMLChristine Bonnet UML 2727
VisibilitVisibilitéé des attributs et des opdes attributs et des opéérationsrations
• Public (+) : visibilité par défaut, l'élément est visible par tous ;
• Protégé (#) : l'élément est visible par les héritiers de son paquetage ou ses amis ;
• Privé (-) : l'élément est visible par sa classe ou ses amis.
Portée des attributs et des opérations
• Objet : l'attribut (respectivement l'opération) peut prendre des valeurs spécifiques pour chacun des objets de la classe (respectivement s'appliqueaux objets de la classe) ;
• Classe : l'attribut (respectivement l'opération) peut prendre une valeur quicaractérise l'ensemble de la classe (respectivement s'applique à la classeelle-même).
Christine Bonnet UMLChristine Bonnet UML 2828
Relations entre classes : associationRelations entre classes : association
Exemple :liaison
Plan de volHeure de départHeure d'arrivéeCompagnieCommandant de bord
Rechercher_Plan( )
1..* 2Aéroport
NomPositionPistes
Avion
TypeCaractéristiques1
0..*attribution
Arité d'une association : le plus souvent, l'association est binaire, mais des arités supérieures peuvent cependant exister.
Année
Equipe JoueurGardien-de-but
équipe
saison
Christine Bonnet UMLChristine Bonnet UML 2929
Association (suite)Association (suite)
Classe-association (classe associative) : association qui est une classe, possède des fonctionnalités propres, liées à l'existence de l'association.
employéemployeurPersonne
travaille-pourSociété * 1..*
Emploisalaire
Christine Bonnet UMLChristine Bonnet UML 3030
Contraintes Contraintes (m(méécanisme commun dcanisme commun dééfini par UML)fini par UML)
Information sémantique associée à un élément du modèle et qui spécifie les conditions que le modèle doit satisfaire pour être correct.
Exprime une règle de gestion qui se traduit par un contrôle.
Langage d'expression de contraintes OCL (Object Constraint Language).
Contraintes sur les associations{ordonnée}Une contrainte {ordonnée} peut être placée sur le rôle pour spécifier qu'unerelation d'ordre décrit les objets placés dans la collection.La déclaration ne spécifie pas comment les éléments sont ordonnés.
L'ordre doit être maintenu durant l'ajout ou la suppression des objets par exemple.
Personne Compte{ordonnée}
1 *Exemple: Etc…
Christine Bonnet UMLChristine Bonnet UML 3131
Relations entre classes : agrRelations entre classes : agréégationgation
L'agrégation définit une relation "partie-de" entre instances de classes.Association non symétrique dans laquelle une des extrémités joue un rôleprédominant par rapport à l'autre extrémité.
Représentation : A B
Critères impliquant une agrégation :
• une classe fait partie d'une autre classe ;
• les valeurs d'attributs d'une classe se propagent dans les valeurs d'attributsd'une autre classe ;
• une action sur une classe implique une action sur une autre classe ;
• les objets d'une classe sont subordonnés aux objets d'une autre classe.
Christine Bonnet UMLChristine Bonnet UML 3232
AgrAgréégation (suite)gation (suite)
Deux formes d'agrégation : agrégation partagée (par référence ) , composition stricte (par valeur ).
Exemples : Agrégation de type catalogueAgrégation physique(composition)
Alphabet
Lettre1..*1..*
Immeuble
Appartement
11..*
Equipe
Joueur1..*1..*
Christine Bonnet UMLChristine Bonnet UML 3333
Liens sLiens séémantiques entre classes mantiques entre classes -- HiHiéérarchiesrarchies
Généralisation / Spécialisation
Mécanisme d'héritage
Une sous-classe hérite de la structure et du comportement de sa super-classe
Christine Bonnet UMLChristine Bonnet UML 3434
• Héritage simpleExemple :
Classe compteAttributs :
• débit : nombre• crédit : nombre
Méthodes :• déposer• retirer• avoirSolde
Classe compte épargneAttributs :
• taux : réel
Méthodes :
• calculerIntérêt
• Héritage multipleExemple :
Plante à fleurs Plante à fruits
Plante à fleurs et à fruits
Christine Bonnet UMLChristine Bonnet UML 3535
Contrôle de la complexitContrôle de la complexitéé : l'encapsulation: l'encapsulationClasse :
•partie interface (vue externe),
• partie implémentation (structure des objets).
Classe personne
nomprénomdate de naissanceconjoint (personne)enfants (personne)
Méthodes :
Attributs :
nom nom-conjointnoms-enfantsâge
Implémentation
Interface
Modification de programmes en toute sécurité
Christine Bonnet UMLChristine Bonnet UML 3636
Relations entre classes : gRelations entre classes : géénnééralisationralisation
Relation de classification (taxinomie) - d'héritage - entre une classe plus générale et une classe plus spécifique.
VolNuméroNiveau de volPiste attribuéeHeure de départHeure estimée d'arrivée
PositionTrajectoire
màj_niveau de vol ( )demander_contrôle ( )passer_en_mode_contrôle ( )créer( )
Vol civil Vol militaire
GénéralisationSpécialisation
Christine Bonnet UMLChristine Bonnet UML 3737
GGéénnééralisation (suite)ralisation (suite)
Une classe peut être spécialisée selon plusieurs critères simultanément.Discriminant :
Indication du critère par un discriminant
Exemple : Véhicule
A voile A moteur Terrestre Marin
MilieuMotorisation
Contraintes sur les généralisations :
• {exclusif}
Champignon
Agaricus Boletus{exclusif}
Une sous-classe d'une super-classe peut être descendante d'une seule sous-classe de la super-classe.
Exemple :
Etc…
Christine Bonnet UMLChristine Bonnet UML 3838
Classes abstraites / concrClasses abstraites / concrèètestes
Une classe abstraite n'est pas directement instanciable.sert de spécification plus générale - de type - pour manipuler les objetsinstances d'une (ou plusieurs) de ses sous-classes.
Convention : le nom d'une classe abstraite est en italique.
Exemple :
Mammifère
Etre humainChat
Objet GérardObjet Félix
Abstraites
Concrètes...
...
Instances
Christine Bonnet UMLChristine Bonnet UML 3939
Diagramme d'objetsDiagramme d'objetsPermet de montrer une instance de structure du système à un instant t (snapshot).
pour montrer un contexte, par exemple, avant et après une interaction ;
pour faciliter la compréhension des structures de données complexes, comme les structures récursives.
Représentation des objets :
Nom de l'objet Nom de l'objet : Classe : Classe
Valeur des attributs : : Voiture
Couleur = rouge
Christine Bonnet UMLChristine Bonnet UML 4040
Diagramme d'objets (suite)Diagramme d'objets (suite)
Représentation des liens :
Plan_de_vol
Aéroport
Avion0..* 1
1..*2
Diagramme de Classecorrespondant
: Plan_de_vol : Avion
: Aéroport : Aéroport
Etienne : Personne
patron
Denis : Personne
patronpatron
collaborateur
Personne0..1
*Jean-Luc : Personne
Etienne est le patron de Jean-Luc
Denis est son proprepatron
< gère
Christine Bonnet UMLChristine Bonnet UML 4141
Diagramme d'objets (suite)Diagramme d'objets (suite)
Représentation des objets composites :
Diagramme de Classecorrespondant
AscenseurFenêtre
Zone de dessin
1 2
1
1
:Fenêtre
:Zone de dessin :Ascenseur
:Ascenseur
2
1
Christine Bonnet UMLChristine Bonnet UML 4242
Diagramme de cas d'utilisationDiagramme de cas d'utilisation
Description du comportement d'un système d'un point de vue de l'utilisateur.
Un cas d'utilisation est une suite d'actions qui amène à un résultat observablepour un acteur particulier.
Objectif : identifier les "services": fonctionnalités du système et les acteurs(internes et externes) qui y participent Détermination des besoins.
Un cas d'utilisation n'est pas une fonction du système mais englobe plusieurs fonctions.
Mémorise les consignes (Niveau, Piste, Vitesse)
Active/Désactive un plan de vol
Contrôleur
Affiche des informations
Radar Indique la position d'un vol
Transfert un vol/plan de vol
Exemple :
Christine Bonnet UMLChristine Bonnet UML 4343
Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)Notation :
Acteur B
Acteur A
Nom de paquetage
Cas d'utilisation X
Cas d'utilisation Y
Acteur : représente un rôle joué par une personne ou une chose qui interagit avec le système dans différents cas d'utilisation .
candidats acteurs : utilisateurs, clients, partenaires, fournisseurs, vendeurs, autres systèmes.
La même personne physique peut jouer le rôle de plusieurs acteurs (client, vendeur).
Plusieurs personnes peuvent jouer le même rôle et donc agir comme le même acteur (tous les clients).
Christine Bonnet UMLChristine Bonnet UML 4444
Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)
Généralisation des acteurs :
Employé Employeur
Particulier
Recherche des cas d'utilisation : à partir des acteurs identifiés
Quelles sont les tâches fondamentales que l'acteur veut faire faire au système ?
Est-ce que l'acteur crée, modifie, supprime ou consulte des informations dans le système ?
Est-ce que l'acteur a besoin d'informer le système de changements externes ?
Est-ce que l'acteur a besoin d'être informé des occurrences survenues dans lesystème ?
Est-ce que l'acteur commande le démarrage et l'arrêt du système ?
Christine Bonnet UMLChristine Bonnet UML 4545
Relation entre les acteurs et les cas Relation entre les acteurs et les cas d'utilisationd'utilisation
Relation de communication
Participation d'un acteur à un cas d'utilisation.
Notation :
Cas d'utilisation XActeur A
Christine Bonnet UMLChristine Bonnet UML 4646
Relation entre les acteurs et les cas d'utilisation Relation entre les acteurs et les cas d'utilisation (suite)(suite)
Les signauxSignal : événement qui peut être invoqué explicitement. Il peut posséder des paramètres.
La participation d'un acteur à un cas d'utilisation peut se décomposer en signaux émis et signaux reçus.Convention : les notions "émis" et "reçu" sont définies par rapport au cas d'utilisation.
Signal émis
Cas d'utilisation XActeur A Signal reçu
Exemple :
Traitement commandeAgent commercial
Commande
Christine Bonnet UMLChristine Bonnet UML 4747
Relations entre cas d'utilisation Relations entre cas d'utilisation
Relation d'extension : <<cas-étendu>>Une relation d'extension du cas d'utilisation A vers le cas d'utilisation B indique qu'une instance du cas d'utilisation A étend le comportement spécifié par A.
<<cas-étendu>>
Cas d'utilisation A Cas d'utilisation B
Relation d'utilisation : <<Cas-utilisateur>>
Une relation d'utilisation du cas d'utilisation A vers le cas d'utilisation B indique qu'une instance du cas d'utilisation A inclut le comportement spécifié par B.
<<cas-utilise>>
Cas d'utilisation A Cas d'utilisation B
Christine Bonnet UMLChristine Bonnet UML 4848
Relations entre cas d'utilisation (suite) Relations entre cas d'utilisation (suite) Exemples :
Virement par minitel
Virement
<<cas-étendu>>
Identification
<<cas-utilise>>Client distant Client local
Gérer commande Gérer litige
Facturer Livrer marchandises
<<cas-étendu>>
<<cas-utilise>> <<cas-utilise>>
Christine Bonnet UMLChristine Bonnet UML 4949
Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)
Scénarios :Des scénarios (séquences d'interactions) illustrent les cas d'utilisation par l'exemple.
Chaque fois qu'une instance d'un acteur déclenche un cas d'utilisation, un scénario est créé.
les cas d'utilisation doivent être vus comme des classes dont lesinstances sont les scénarios.
Les scénarios sont représentés :• en langage naturel;• par des diagrammes d'interaction (diagrammes de collaboration et diagrammes de
séquence).
Source précieuse pour identifier les objets.
Christine Bonnet UMLChristine Bonnet UML 5050
Diagrammes d'interactionDiagrammes d'interaction
Les objets travaillent en synergie afin de réaliser les fonctions de l'application
Servent à montrer les interactions entre objets.
Diagramme de collaboration ;
Diagramme de séquence.
Christine Bonnet UMLChristine Bonnet UML 5151
Dynamique des objets : les messagesDynamique des objets : les messages
Programmation classique: Programmation par objets :un programme est constitué d'un ensembled'objets (partie données/procédures) quiinteragissent par envoi de messages.
découpage net entre procédureset données.
Données
Procédure 1
Procédure 2
Procédure 3
Christine Bonnet UMLChristine Bonnet UML 5252
Dynamique des objets : les messages (suite)Dynamique des objets : les messages (suite)
Message = <receveur, sélecteur de méthode, arguments>
Activation de procédures de services ;Calcul de valeurs ;Accès et modifications d'attributs ;
...
Exemple :
Compte…
Méthodes :• déposer
Compte Epargne…
Méthodes :...
Hérite-de
C3Instance-dedéposer(300)
Christine Bonnet UMLChristine Bonnet UML 5353
Diagramme de collaborationDiagramme de collaboration
Permet de décrire comment un ensemble d'objets collaborent pour répondre à une sollicitation.
Montre :
interactions entre les objets ;
relations entre les objets (classes).
Ne montre pas :la dimension temporelle.
Représentation :- objets et liens entre objets ;- envois de messages.
Christine Bonnet UMLChristine Bonnet UML 5454
Diagramme de collaboration (suite)Diagramme de collaboration (suite)
Notation (Mega) :
: Acteur1<<Acteur>>
Objet1 : Classe1<<Entité>>
Objet2 : Classe2<<Entité>>
1:Opération1()L61
L52 2:Opération2()
Christine Bonnet UMLChristine Bonnet UML 5555
Un exemple de diagramme de collaboration Un exemple de diagramme de collaboration d'une d'une éédition de relevdition de relevéé bancairebancaire
(Notation Rational Rose)
:Banque :Compte
:Opération
titulaire : Personne
:Relevé
1: éditer_relevé(Date)
2: opérations_du_mois (Date)
3: val_adresse()
4: cré
er (O
pérat
ion, T
exte)
5: ligne()
Christine Bonnet UMLChristine Bonnet UML 5656
Le concept de messageLe concept de message
Unité de communication entre objets. Intégrateur dynamiqueReconstitution d'une fonction de l'application par la mise en collaboration
d'un groupe d'objets.
Réception d'un message Evénement générateur d'une activité chez l'objet récepteur.
Regroupe :
- les flots de contrôle (description de la répartition de l'activité entre les objets).Notation :
- les flot de données (description des données qui transitent d'un objet vers un autre objet).Notation :
Christine Bonnet UMLChristine Bonnet UML 5757
Les principales catLes principales catéégories de messagesgories de messages
Objets créés, puis détruits au sein de la même interaction :
:Classe1
{nouveau}
:Classe1
{détruit}
les constructeurs : créent des objets ;
:Classe1
{transitoire}les destructeurs : détruisent des objets ;
les sélecteurs : renvoient tout ou partie de l'état d'un objet ;
les modificateurs : changent tout ou partie de l'état d'un objet ;
les itérateurs : visitent l'état d'un objet ou le contenu d'une structure de donnéesqui contient plusieurs objets.
Note (Mega) : l'envoi d'un message peut correspondre à l'envoi d'un signal.
Christine Bonnet UMLChristine Bonnet UML 5858
Exemples de la syntaxe d'envoi des messagesExemples de la syntaxe d'envoi des messagessynchronisation séquence ':' résultat ':=' nom arguments
4 : Afficher (x, y) message simple
3.3.1 : Afficher (x, y) message imbriqué
4.2 : âge := Soustraire (Aujourd'hui, DateDeNaissance) message imbriqué avec valeur retournée
6.2 [Age ≥ 18 ans ] : Voter () message conditionnel
4.a, 6.b / c.1 : Allumer (Lampe) synchronisation avec d'autres flots d'exécution
1 * : Laver () itération
3.a, 3.b / 4 * | | [i := 1..n] : Eteindre () itération parallèle
Christine Bonnet UMLChristine Bonnet UML 5959
Diagramme de sDiagramme de sééquencequence
Permet de décrire des interactions entre objets selon un point de vue temporel.
Montre :
Interactions entre les objets ;
Les messages ordonnancés dans le temps.
Ne montre pas :Les associations entre objets.
Représentation en deux dimensions :- axe vertical : temps ;- axe horizontal : objets qui interagissent dans la séquence.A chaque objet de la collaboration :
ligne verticale ligne de vie de l'objet.
Christine Bonnet UMLChristine Bonnet UML 6060
Diagramme de sDiagramme de sééquence (suite)quence (suite)
Notation :
Nom : Classe Nom : ClasseObjet
MessageLigne de vie
Utilisation :
Documentation des cas d'utilisation ;
Description détaillée des interactions entre objets.
Christine Bonnet UMLChristine Bonnet UML 6161
ReprRepréésentations graphiquessentations graphiques
Envois de message synchrones et asynchrones :
A BMessage synchrone
Message asynchrone
l'émetteur est bloqué et attend quel'appelé ait fini de traiter le message.
L'émetteur n'est pas bloqué et peut continuer son exécution.
Délai de propagation :
Un Objet Un autre objet
Un message
Christine Bonnet UMLChristine Bonnet UML 6262
ReprRepréésentations graphiques (suite)sentations graphiques (suite)Envoi de message réflexif :
Création et destruction des objets :
Un Objet Objet composite
Composant A
Composant B
Point d'entrée
interactions internes (entre objets contenus par un objet composite)
Message réflexif
Un Objet
Un Autre ObjetCréer
Détruire
Christine Bonnet UMLChristine Bonnet UML 6363
ReprRepréésentations graphiques (suite)sentations graphiques (suite)Période d'activité d'un objet et récursion :
Un ObjetUn Objet
Activation
Récursion
Temps pendant lequel un objet effectue une action
Activation et retour :
A B A B
Envoi synchrone→ retour implicite
Envoi asynchrone→ retour explicite
Christine Bonnet UMLChristine Bonnet UML 6464
ReprRepréésentations graphiques (suite)sentations graphiques (suite)
Structures de contrôle : texte libre ou pseudo-code
A B C
x
y
tt'
z
{y-x<3s}Message
Message
Message
Message{z-y<1s}
{t'-t<2s}
Exemple de contraintes temporelles construites à partir de noms de transitions (x, y, z, t : instants d’émission, t’ : instant de réception d’un message).
Christine Bonnet UMLChristine Bonnet UML 6565
ReprRepréésentations graphiques (suite)sentations graphiques (suite)
A B A Bwhile Xloop *[X] MessageMessage OU
end loop
Représentation d'une boucle while (pseudo-code/condition)
A B C
Message
Message
A B C
[X] Message
[non X] Message
A B
Message
[Y]
[X]If X
elseend if
OU
Alternatives du côté dudestinataire.
Représentation des branchements conditionnels
Christine Bonnet UMLChristine Bonnet UML 6666
Exemple 1 :Exemple 1 : diagramme de séquence décrivant le cas d'utilisation Ouvrir un nouveau marché
:Acheteur :Ingénieur commercial
:Directeur régional
Un marché
Un client
Demande nouveaumarché
Vérifier existence et solvabilité
Etudier demande
Demander avis (marché)
Créer
Etudier la demande
Notifier acceptationTransmettre poursignature
Notifier acceptation
Activer
Christine Bonnet UMLChristine Bonnet UML 6767
Exemple 2 :Exemple 2 : diagramme de séquence avec contrôles, branchementsconditionnels, récursion, création et destruction.
Obj1:C1 Obj3:C3
Obj2:C2
Obj4:C4
[x>0] créer
[x<=0] bloquer
plus()
à-faire[z]à-faire[w]
Christine Bonnet UMLChristine Bonnet UML 6868
Diagramme dDiagramme d’é’étatstats--transitionstransitionsModélisation de la dynamique de systèmes réactifsMachines à états / automates d’états finis (D. Harel)
Description du comportement des objets d’une classe en réponse aux interactions avec les objets de son environnement ou avec des acteurs, en terme d’états et de transitions.
Graphe orienté : nœud ↔ état, arc ↔ transition, étiquette d’un arc ↔ événement déclenchant.
Toutes les classes d’objets ne nécessitent pas un diagramme d'états.
Exemple : diagramme d'états d'un avion
Créer (immatriculation) Au sol
En vol Crash
Décoller Atterrir
Christine Bonnet UMLChristine Bonnet UML 6969
Diagramme dDiagramme d’é’étatstats--transitions Etattransitions EtatEtat → durée, stabilitéSituation stable dans laquelle un objet peut être observé pendant un certain temps.
Image :• de la conjonction instantanée des valeurs contenues par les attributs de l’objet.
Exemple :État d’une banque : solvable, insolvable Attributs : actifs, dettes
• de la présence ou de l’absence de liens, de l’objet considéré vers d’autres objets.Exemple :
État d’une personne : en activité, au chômage, à la retraite Lien : entre Personne et SociétéAttribut : âge de la personne
Christine Bonnet UMLChristine Bonnet UML 7070
Diagramme dDiagramme d’é’étatstats--transitions Etat (suite)transitions Etat (suite)
Notation :Etat initial
Etat intermédiaireEtat final
Variables d'état :
Les états peuvent également contenir des variables exprimées sous la formed'attributs.
Exemple :
Login
NomMot de passe
→ Utilisation de ces variables dans les actions ou les activités.
Christine Bonnet UMLChristine Bonnet UML 7171
Diagramme dDiagramme d’é’étatstats--transitions Evtransitions Evéénementnement
Evénement : quelque chose qui se produit à un moment donné dans le temps.
Exemples : l'utilisateur appuie sur le bouton gauche, le vol 123 part de Chicago,31 décembre 2004 à Lyon, majorité d'un individu, ...
Déclencheur pour passer d'un état à un autre.
Les objets sont contrôlés par les événements en provenance du système.
Syntaxe : Nom_de_L'Evénement (nom_de_paramètre : Type, …)
Exemple : après (15 secondes), numéroter_chiffres (10), ...
Christine Bonnet UMLChristine Bonnet UML 7272
Diagramme dDiagramme d’é’étatstats--transitions Transitiontransitions TransitionTransition entre les états : réponse d'un objet à un événement.
Permet de passer d'un état à un autre (ou à lui-même).
Les transitions peuvent aussi être automatiques, lorsqu'on ne spécifie pas l'événement qui la déclenche.
nom de l'événementNotation : Un état Un autre état
Exemple :En activité
A la retraite
Au chômage
Plus de 60 ans
Plus de 60 ans
EmbauchePerte d’emploi
Extrait d’un diagramme d'états-transitions d’une classe Personne
Christine Bonnet UMLChristine Bonnet UML 7373
Diagramme dDiagramme d’é’étatstats--transitions Condition de gardetransitions Condition de garde
Condition de garde :Garde : condition booléenne qui valide ou non le déclenchement d'une
transition lors de l'occurrence d'un événement.
maintien de l'aspect déterministe d'un automate d'états finis.
Notation :événement [condition]
BA
Exemple :Sas vide et fermé
Alarme basculement
Accès(personne) [intru] Accès(personne) [autorisé]
Un événement, plusieurs transactions ⇒ gardes mutuellement exclusives.
Christine Bonnet UMLChristine Bonnet UML 7474
Diagramme dDiagramme d’é’étatstats--transitions Actiontransitions Action
Action :
Traitement exécuté par l'objet pendant une transition (une des opérations Déclarées dans la classe de l'objet destinataire de l'événement).
Action instantanée et atomique ; il n'est pas possible d'observer un objet en train d'effectuer une transition.
événement / ActionNotation : A B
OuvertExemple : Signer / Qté consommée = 0En cours d’ouverture
Christine Bonnet UMLChristine Bonnet UML 7575
Diagramme dDiagramme d’é’étatstats--transitions Actiontransitions Action
Actions associées aux états :Entry : action exécutée en entrée de l'état.Exit : action exécutée en sortie de l'état.on UnEvénement : action exécutée lors de l’occurrence d’un événement
Les actions attachées aux clauses "entry" et "exit" ne sont pas exécutées si l'événement spécifié dans la clause "on" survient.
Aentry : action d'entréeon UnEvénement : actionexit : action de sortie
Notation :
Exemple :Saisie mot de passe
on aide : afficher l’aide
Basculement
entry : bloquer porte entréeet ouvrir porte sortie
exit : bloquer porte sortie
Christine Bonnet UMLChristine Bonnet UML 7676
Diagramme dDiagramme d’é’étatstats--transitions Activittransitions Activitéé
Activité : décrit ce que fait un objet lorsqu'il est dans un état.
Opération de durée de vie importante, interruptible.
Types d'activité :
- cyclique : l'activité ne s'arrête que lorsqu'une transition de sortie est déclenchée ;
- séquentielle : l'activité démarre à l'entrée dans l'état, après l'exécution des actions d'entrée.Fin d'une activité séquentielle → l'état peut être quitté si une destransitions est franchissable (transition automatique).
Ado : une opération
Alarmedo : signal d’alarme
Exemple :Notation :
Christine Bonnet UMLChristine Bonnet UML 7777
Simplification de la reprSimplification de la repréésentation des sentation des diagrammes ddiagrammes d’é’étatstats--transitionstransitions
Généralisation d'états :
Décomposition disjonctive d'un état (le super-état) en sous-états disjoints.
Représentation "à plat" → représentation hiérarchique.
Héritage : les sous-états héritent des caractéristiques de leur super-état (variables d'état, transitions externes).
Exemple :
A B
C
E1
E2 E2A B
E1
C
E2
Christine Bonnet UMLChristine Bonnet UML 7878
Simplification de la reprSimplification de la repréésentation des sentation des diagrammes ddiagrammes d’é’étatstats--transitions (suite)transitions (suite)
Les transitions d'entrée ne sont pas héritées par tous les états.
Exemple :
B
AB1
B2
L'état B est divisé en deux sous-états B1 et B2. La transition d'entrée dans l'état Best reportée dans un des sous-états, parl'ajout d'un état initial dans le super-état.
A B
Souche : vision de plus haut niveau. Les sous-états ne sont pas détaillés.
AB
C
Christine Bonnet UMLChristine Bonnet UML 7979
Diagramme dDiagramme d’é’étatstats--transitions Historiquetransitions Historique
Historique : mémorisation par un état, de l'histoire de ses sous-états.
Utilité : une future entrée dans l'état pourra se faire dans le dernier sous-état lors de la dernière sortie.
Notation : H
← quelle que soit la profondeur d’emboîtement des états.H*
Exemples :
D2
C
AD1
In Rinçage Lavage Séchage
AttentePorte fermée
Out
Porte ouverte
H
H
L'état C mémorise le dernier sous-état actif
Le contrôle est transmis directement au sous-état mémorisélorsqu'une transaction qui arrive sur l'état spécial H estdéclenchée.
Christine Bonnet UMLChristine Bonnet UML 8080
Diagramme dDiagramme d’é’étatstats--transitions transitions Communication entre objetsCommunication entre objets
Communication entre objets : envoi d'un événement entre les diagrammes d'états finis des classes d'objets concernées.
Syntaxe : ^Cible.Evénement (Arguments)où Cible : classe de l'objet destinataire.
Syntaxe complète d'une transition : Evénement (Arguments) [Condition] / Action^Cible.Evénement (Arguments)
Exemple :
Attente Arrêt
Basculé
Basculé
Téléviseur Télécommande
Bouton enfoncé^Téléviseur.Basculé
Attente
Le téléviseur peut être allumé ou éteint par manipulation d'un interrupteur basculant. La télécommande possède un bouton-poussoir (touche on/off) qui, lorsqu'il est enfoncé, allumeou éteint le téléviseur. Le téléviseur peut être commandé directement ou par la télécommande.
Christine Bonnet UMLChristine Bonnet UML 8181
Diagramme dDiagramme d’é’étatstats--transitions transitions Transition temporisTransition temporisééee
Transaction temporisée :
Représentation : temporisation (durée de temporisation).
Exemple :A
Attente argentEntry : Afficher messageExit : Fermer la trappe
Tempo (3 minutes)
Annulation transaction
B
/ouvrir trappe
Dépôt effectué
Séquence d'attente dans un guichet automatique de banque. La trappe qui accueille les dépôts est ouverte ; le système informe l'utilisateur qu'il dispose de 3 minutes pour effectuer son dépôt.
Christine Bonnet UMLChristine Bonnet UML 8282
Diagramme d'activitDiagramme d'activitééss
Représentation simplifiée pour la visualisation directe des activités.
Variation d'une machine à états :états : activités représentant la réalisation d'opérations ;transitions : déclenchées par la complétion des opérations.
Fin d'une activité → événement interne déclenchant la transition.
→ machine à états d'une procédure
Un diagramme d'activités est attaché à une classe, à l'implémentation d'une opération ou à un cas d'utilisation.
Notation :
activité Autre activité
Note : n'existe pas dans MEGA (ISOA).
Christine Bonnet UMLChristine Bonnet UML 8383
Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Notations :
[Garde]
[Garde]Conditions booléennes, mutuellement exclusives.
Synchronisation de flots de contrôle parallèlesà partir d'une barre de synchronisation.
Fusion de flots de contrôle parallèles regroupés sur une barre de synchronisation.
Allumer la cafetière
Café infusé
^Cafetière.AllumerReprésentation mixte, incluant des activitéset des états (envoi d'événement).
La lumière s'éteint
Christine Bonnet UMLChristine Bonnet UML 8484
Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Exemple : Personne :: préparer boisson
Trouver boisson[pas de café] [pas de Coca-Cola]
[Coca-Cola trouvé][café trouvé]
Mettre le cafédans le filtre
Ajouter de l'eau dans le réservoir
Prendre des tasses
Mettre le filtredans la cafetière
Allumer la cafetière
Faire infuser le café
Prendre descanettes de Coca
Verser le café
Boire
^Cafetière.Allumer
La lumière s'éteint
Christine Bonnet UMLChristine Bonnet UML 8585
Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Compléments :
Partition d'un diagramme d'activités en couloirs d'activités.Visualisation directe des objets responsables des différentes activités.
Commander
Client Vendeur Expédition
Facturer
Payer
Commande[passée]
Commande[payée] Livrer
Bon delivraison
Christine Bonnet UMLChristine Bonnet UML 8686
Diagrammes d'implDiagrammes d'impléémentation : mentation :
Diagrammes de composants : permettent de montrer les types decomposants et leurs interdépendances.
Diagrammes de déploiement : montrent les instances des composants.
Christine Bonnet UMLChristine Bonnet UML 8787
Diagramme de composantsDiagramme de composantsMise en œuvre physique des modèles logiques avec l'environnement de développement. Elle tient compte des problématiques de programmation, compilation, dépendance, réutilisation.
décrivent les éléments physiques et leurs relations dans l'environnement de réalisation ; montrent les choix de réalisation.
Modules : toutes les sortes d'éléments physiques qui entrent dans la fabrication des applications informatiques (simples fichiers, bases de données,paquetages du langage Ada, bibliothèques chargées dynamiquement, etc.).
Représentation : compacteCorpsSpécification Générique
Christine Bonnet UMLChristine Bonnet UML 8888
Diagramme de composants (suite)Diagramme de composants (suite)Dépendances entre composants :
• d'instanciation, d'ami, etc. ; • à la compilation et à l'exécution ;• d'appel entre composants (le diagramme montre les interfaces).
Exemples :X Liste
<<instanciation>>Dépendance d'instanciation
Spéc. de A Corps de A
Spéc. de B
Dépendance à la compilation
Christine Bonnet UMLChristine Bonnet UML 8989
ExempleExemple
Christine Bonnet UMLChristine Bonnet UML 9090
Diagramme de dDiagramme de dééploiementploiement
Montre • la disposition physique des différents matériels (les nœuds) qui entrentdans la composition d'un système
et • la répartition des programmes exécutables sur ces matériels.
Nœud : ressource matérielle.
Représentation : Nœud
La nature de l'équipement peut être précisée au moyen d'un stéréotype :
Modem<<Dispositif>>
PC<<Processeur>>
Disque<<Mémoire>>
Christine Bonnet UMLChristine Bonnet UML 9191
Diagramme de dDiagramme de dééploiement (suite)ploiement (suite)Connexion entre nœuds : ligne qui symbolise un support de communication
a priori bidirectionnel.
PC 68Kconnexion
Exemple 1 :
ordinateur de Joe : PC
serveur_admin : Serveur
:Ordonnanceur<<base de données>>
BD des réunions
réservations
: Planificateur
Christine Bonnet UMLChristine Bonnet UML 9292
Diagramme de dDiagramme de dééploiement (suite)ploiement (suite)Exemple 2 :
Serveurd'impression
Site centralFrance
ServeurWeb
Poste del'acheteur
SGBD
PT DirecteurServeur DR1
PT Comptable
Valider marchéConsulter historique clientConsulter stockConsulter commandesConsulter tarifs
Créer facture
SGBD
PT Assistante
Consulter historique clientConsulter stockConsulter commandesConsulter tarifsCréer factures
PT ICL2 DR1PT ICL1 DR1
Consulter marché
<<Internet>>
Gérer marchésGérer commandesGérer clientsConsulter tarifsConsulter factures
Christine Bonnet UMLChristine Bonnet UML 9393
Autres exemples de diagrammesAutres exemples de diagrammesDiagramme de classes
Livretitre : Stringauteur : Stringéditeur : String
Livre(double, String, String, String)description() : StringrechercheParTitre(Livre[], String) : Livre
ProduitnuméroProduit : intprix : double$ tva : double = 19.6$ dernierNuméroProduit : int = 1
Produit(double)getPrixTTC() : doubledescription() : StringgetNumero() : int
CDtitre : Stringinterprète : Stringchansons : String[]
CD(double, String, String, String[])description() : Stringclone() : ObjectrechercheParNum(int, Vector) : CDgetTitre() : StringgetInterprete() : StringgetChansons() : String[]
Christine Bonnet UMLChristine Bonnet UML 9494
Diagramme d’activité
Christine Bonnet UMLChristine Bonnet UML 9595
Diagramme de cas d’utilisation
Christine Bonnet UMLChristine Bonnet UML 9696
Diagramme d’états-transitions
Christine Bonnet UMLChristine Bonnet UML 9797
Diagramme de collaboration
message synchrone : l'objet émetteur envoie le message, attend que le récepteur le reçoive mais n'attend pas de réponse.message asynchrone : L'objet émetteur envoie le message sans savoir quand, ni même si, le message sera traité par le récepteur.message simple (cas le plus courant) : l'objet émetteur du message attend la réponse de la part du récepteur.
Christine Bonnet UMLChristine Bonnet UML 9898
Diagramme de séquence
Christine Bonnet UMLChristine Bonnet UML 9999
Diagramme de déploiement
Christine Bonnet UMLChristine Bonnet UML 100100
FIN FIN ……
Top Related