UML UML
Diagrammes de Collaboration Diagrammes de Collaboration
Collaboration, le lien entre modèle externe et interne Collaboration, le lien entre modèle externe et interne
Collaboration et cas d
Collaboration et cas d’’utilisationutilisation Collaboration
Collaboration et diagramme de classeet diagramme de classe
De l De l ’ ’ analyse à la conception objet en UML analyse à la conception objet en UML
L’L’analyse fonctionnelle conduit à un modèle fonctionnel :analyse fonctionnelle conduit à un modèle fonctionnel : comportement externe conforme aux besoins du client.
comportement externe conforme aux besoins du client.
La conception objet conduit à un modèle du comportement interneLa conception objet conduit à un modèle du comportement interne du logiciel et de sa structuration
du logiciel et de sa structuration Des cas d
Des cas d’’utilisation aux diagramme de classeutilisation aux diagramme de classe Contenu de ce cours
Contenu de ce cours
Diagrammes de collaborationDiagrammes de collaboration
D’D’un diagramme de collaboration à un diagramme de classesun diagramme de collaboration à un diagramme de classes
Notion de collaboration Notion de collaboration
Principe de modélisation objetPrincipe de modélisation objet
Les objets sont indépendantsLes objets sont indépendants
Chaque objet est responsable de certaines activitésChaque objet est responsable de certaines activités
Pour réaliser une activité, il faut le concours collaboratif d’Pour réaliser une activité, il faut le concours collaboratif d’objetsobjets
Les objets collaborent via des interactionsLes objets collaborent via des interactions Pas de système hiérarchique : système basé sur l
Pas de système hiérarchique : système basé sur l’’individu «individu « objetobjet » »
CollaborationCollaboration
Modélise une activité réalisée par un ensemble d’Modélise une activité réalisée par un ensemble d’objetsobjets
Peut représenter Peut représenter un scénario d’un scénario d’un cas dun cas d’’utilisation du point de vue duutilisation du point de vue du fonctionnement interne du système
fonctionnement interne du système
Diagrammes de collaboration Diagrammes de collaboration
Types Types de diagrammes de diagrammes
Diagrammes statiques : Diagrammes statiques : diagrammes d
diagrammes d’ ’ objets objets
Exprime les liens entre objetsExprime les liens entre objets impliqués dans une collaboration impliqués dans une collaboration
Diagrammes dynamiques : Diagrammes dynamiques :
diagrammes de collaboration diagrammes de collaboration
Interactions entre objetsInteractions entre objets
Interactions entre rôles dInteractions entre rôles d’’objetsobjets
Composants Composants
Objets Objets
Rôles R ôles
Classes Classes
Acteurs Acteurs
Liens Liens
Diagramme d
Diagramme d ’ ’ objets objets
Diagramme de collaboration entre objets
Diagramme de collaboration entre objets
Objets Objets
ObjetObjet
Nom de l’Nom de l’objetobjet
Classe de l’Classe de l’objet (si connue)objet (si connue) Syntaxe :
Syntaxe : cetObjet:cetObjet:SaClasseSaClasse
(facultatif) État de l(facultatif) État de l’’objetobjet
Création/destructionCréation/destruction
États intermédiairesÉtats intermédiaires Syntaxe : {new} {
Syntaxe : {new} {destroyed} {ouvert} {en cours}destroyed} {ouvert} {en cours}
Acteur : objet « Acteur : objet « externeexterne » » participant à la collaboration participant à la collaboration
Rôle : rôle dRôle : rôle d’’un objet dans une collaborationun objet dans une collaboration
Syntaxe : Syntaxe : cetObjet / cetObjet / sonRole sonRole : : SaClasse (tous facultatifs)SaClasse (tous facultatifs)
Cas particulier : rôle unique de lCas particulier : rôle unique de l’’objet dans la collaboration objet dans la collaboration →→ rôle non rôle non explicité
explicité
Exemple états objets
Exemple états objets
Liens Liens
Types de liens Types de liens
Diagrammes dDiagrammes d’’objetsobjets
Interaction = instance d
Interaction = instance d ’ ’ association entre objets (instance association entre objets (instance de classe)
de classe)
Diagrammes de collaborationDiagrammes de collaboration
Interaction =
Interaction = message entre objets. message entre objets.
Syntaxe graphique Syntaxe graphique
Instance dInstance d’’association : fil simple.association : fil simple.
Message : flèche ajoutée au fil.Message : flèche ajoutée au fil.
Message Message
Représente une demande faite par l’ Représente une demande faite par l ’ objet objet émetteur à émetteur à l’ l ’objet destinataire objet destinataire
Le destinataire doit pouvoir comprendre le message Le destinataire doit pouvoir comprendre le message Message = méthode de l
Message = méthode de l ’ ’ objet destinataire objet destinataire Nécessité d
Nécessité d ’ ’ une association entre les classes une association entre les classes correspondantes des objets.
correspondantes des objets.
Syntaxe graphique Syntaxe graphique
Message synchroneMessage synchrone
Message Message simple ousimple ou asynchroneasynchrone
Retour de messageRetour de message
Message : syntaxe détaillée Message : syntaxe détaillée
[prédécesseurs "/" ] [ [ "[" garde "]" ] [
[prédécesseurs "/" ] [ [ "[" garde "]" ] [numéro_de_séquencenuméro_de_séquence]] [ "*" [ "||" ][ "[" itération "]" ] ] ":" ] [résultat ":=" ]
[ "*" [ "||" ][ "[" itération "]" ] ] ":" ] [résultat ":=" ] message "(" [paramètres] ")
message "(" [paramètres] ") »»
Garde : condition d’Garde : condition d’envoi du messageenvoi du message
Numéro de séquence : ordre du message dans la collaborationNuméro de séquence : ordre du message dans la collaboration
Prédécesseurs : liste des numéros de séquence des message devantPrédécesseurs : liste des numéros de séquence des message devant être envoyés avant le message
être envoyés avant le message
Itération : type dItération : type d’’itération (informel et précisé par * ou //)itération (informel et précisé par * ou //)
Message : méthode invoquéeMessage : méthode invoquée
Paramètres : paramètre Paramètres : paramètre effectifs de la méthodeeffectifs de la méthode SANS OUBLIER :
SANS OUBLIER : économie de moyens et KISSéconomie de moyens et KISS
Messages et types d
Messages et types d ’ ’ objets objets
Messages synchrones asynchronesMessages synchrones asynchrones Objets actifs versus passifs
Objets actifs versus passifs
passifs : il faut leur envoyer un message pour qu’passifs : il faut leur envoyer un message pour qu’ils sils s’’activentactivent
actifs : constamment en activité, autonomes = peuvent faire des actifs : constamment en activité, autonomes = peuvent faire des calculcalcul et envoyer des messages sans
et envoyer des messages sans être requis par un autre.être requis par un autre.
Message synchronesMessage synchrones
LL’’envoyeur perd le contrôle et reste actif en attente de réponseenvoyeur perd le contrôle et reste actif en attente de réponse
Messages asynchronesMessages asynchrones
Envoi de message sans attente de réponse Envoi de message sans attente de réponse
objet actif : garde le contrôleobjet actif : garde le contrôle
objet passif : perd le contrôle et s’objet passif : perd le contrôle et s’inactiveinactive
Résumé syntaxe
Résumé syntaxe
Outils ObjecteeringOutils Objecteering
RRôle dôle d’’objet ou oobjet ou objetbjet Attribut d
Attribut d’’un objetun objet Lien entre objets Lien entre objets Message sur un lien Message sur un lien NB : idem avec «
NB : idem avec « I »I » pour les pour les diagrammes d
diagrammes d’’objetsobjets
Comment procéder ? Comment procéder ?
Diagramme de collaborationDiagramme de collaboration Attaché à une collaboration d Attaché à une collaboration d’’unun
cas d
cas d’’utilisationutilisation
Diagramme d’Diagramme d’objetobjet Attaché à un package Attaché à un package
Dans tous les cas : gestion des Dans tous les cas : gestion des
accès
accès inter-packagesinter-packages
Diagrammes de collaboration et d
Diagrammes de collaboration et d ’ ’ objets objets avec
avec objecteering objecteering
Exemple diagramme collaboration
Exemple diagramme collaboration Objecteering Objecteering
Exemple diagramme objets
Exemple diagramme objets Objecteering Objecteering
Exemple Collaboration Assurance Exemple Collaboration Assurance
Déclaration de sinistreDéclaration de sinistre
Des diagrammes de cas d
Des diagrammes de cas d ’ ’ utilisation aux utilisation aux diagrammes de classe
diagrammes de classe
LA question de base de la conception objet.LA question de base de la conception objet.
Comment faire pour « Comment faire pour « trouvertrouver » » les classes modélisant le fonctionnement interne les classes modélisant le fonctionnement interne du logiciel?
du logiciel?
Un processus semi-formelUn processus semi-formel
Partir du fonctionnement externe : les cas d’Partir du fonctionnement externe : les cas d’utilisation et leurs scénariosutilisation et leurs scénarios externes.
externes.
Pour chaque scénario d’Pour chaque scénario d’un cas dun cas d’’utilisation, détailler sur un exemple (en utilisantutilisation, détailler sur un exemple (en utilisant des r
des rôles dôles d’’instances dinstances d’’objets) le fonctionnement interne.objets) le fonctionnement interne.
En généralisant les rôles En généralisant les rôles instances dinstances d’’objets et leurs communications, en déduireobjets et leurs communications, en déduire les classes et leurs relations.
les classes et leurs relations.
Choix d’Choix d’une architecture : modèle organique.une architecture : modèle organique.
Classes « Classes « métiersmétiers » »
Classes d’Classes d’interfaceinterface
Classes Classes dd’«’« analyse analyse » » : utilitaires ou spécifiques au fonctionnement logiciel : utilitaires ou spécifiques au fonctionnement logiciel
Du scénario aux classes Du scénario aux classes
Transformation très simple : Transformation très simple :
Un objet de scénario => une classe Un objet de scénario => une classe
Un message entre Un message entre objets => une méthode de la classe objets => une méthode de la classe correspondant à l
correspondant à l ’ ’ objet objet
Reste à détailler Reste à détailler
Objets : attributs, méthodesObjets : attributs, méthodes
Liens entre objets : généralisation, relation, agrégation,Liens entre objets : généralisation, relation, agrégation, dépendance
dépendance
Une autre façon de modéliser une Une autre façon de modéliser une
collaboration : diagrammes de séquence collaboration : diagrammes de séquence
Similaire au diagramme de collaboration Similaire au diagramme de collaboration
Une vue orientée temps versus orienté objetUne vue orientée temps versus orienté objet
Plus facile à lire sur la vie des objetsPlus facile à lire sur la vie des objets
CréationCréation
DestructionDestruction
ActivitéActivité
Parallélisme et déroulement du tempsParallélisme et déroulement du temps
Moins fine sur la composition des objetsMoins fine sur la composition des objets
AttributsAttributs
NB : le même formalisme que celui utilisé pour décrire NB : le même formalisme que celui utilisé pour décrire
l’ l ’ interaction Acteur / Système du scénario interaction Acteur / Système du scénario
Exemple Assurance Exemple Assurance Collaboration par
Collaboration par diagramme de séquence diagramme de séquence
Déclaration de sinistreDéclaration de sinistre
Exemple Assurance Exemple Assurance Diagramme de classes Diagramme de classes
Déclaration de sinistreDéclaration de sinistre
Exemple Assurance Exemple Assurance
Diagramme de collaboration avec classes Diagramme de collaboration avec classes
Déclaration de sinistreDéclaration de sinistre