Você está na página 1de 10

Benoit Combemale (2010 - 2011) - Universit Rennes 1, IRISA(Triskell Team)

Http://www.irisa.fr/triskell/perso_pro/combemale/
Analyse Objet avec UML
ESIR1 - PROG2
Supports disponibles sur :
http://www.irisa.fr/triskell/perso_pro/combemale/
Inspir du cours de Jean-Marc Jzquel
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 2
Objectif dune analyse avec UML
Construction dun modle danalyse
Modle unique mais quadri-dimentionnel
!Aspects utilisation du systme
!Aspects statiques du systme
!Aspects dynamiques du systme (comportemental)
!Aspects dploiement et implantation
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 3
Construction dun modle danalyse
Hypothse dun monde idal
!processeur suffisamment rapide
!mmoire suffisamment grande et rapide
!communications rapides et fiables
!pas de dfaillances
Slection des aspects cruciaux dun problme
Pas de solution unique :
!modlisation = interprtation
! Quoiquon en dise, dans la vie scientifique, les problmes ne se posent pas
deux-mmes. Rien ne va de soi. Rien nest donn. Tout est construit. G.
Bachelard
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 4
Modlisation UML
!Modlisation selon 4 points de vue principaux :
Vision utilisateur du systme
Cas dutilisation
Aspects statiques du systme
Description des donnes et de leurs relations
Structuration en paquetages
Aspects dynamiques du systme (comportemental)
Diagramme de squences (scnarios)
Diagramme de collaborations (entre objets)
Diagramme dtats-transitions (Harel)
Diagramme dactivits
Vision implantation
Diagramme de composants et de dploiement
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 5
Etude de cas
Un serveur de runions virtuelles
!Adaptation du concept d'IRC un contexte de runions
de travail au sein d'une entreprise gographiquement
disperse
Cette tude de cas va nous servir de fil conducteur
pour dcrire un processus d'analyse et de conception
avec UML
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 6
Cahier des charges (1/2)
Il s'agit de raliser la partie serveur d'une application client-
serveur permettant de faire des runions virtuelles multimdia
sur Internet. L'objectif de cette application est de permettre
d'imiter le plus possible le droulement de runions de travail
classiques. Cependant, dans la premire version de ce projet, les
interventions des participants se feront en mode mono-mdia
seulement (i.e. changes en forme textuelle).
Le serveur devra permettre de planifier et de grer le
droulement de plusieurs runions simultanes. Des
programmes clients existeront dans l'avenir pour plusieurs plate-
formes (Mac, Windows, Unix) afin de permettre des
personnes dsirant organiser des runions virtuelles ou y
participer de dialoguer avec le serveur en utilisant un protocole
ad hoc dvelopp au dessus de IP.
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 7
Cahier des charges (2/2)
Aprs s'tre connect au serveur ( l'aide d'un nom de login et d'un mot de passe
mmoris par le systme), une personne a la possibilit de planifier des runions
virtuelles (choix d'un nom, dfinition du sujet, date de dbut et dure prvue, ordre
du jour), de consulter les dtails d'organisation d'une runion, de les modifier
(seulement l'organisateur), d'ouvrir et de clturer une runion (seulement
l'animateur), d'entrer (virtuellement) dans une runion prcdemment ouverte, et
d'en sortir. En cours de runion, un participant peut demander prendre la parole.
Quand elle lui est accorde, il peut entrer le texte d'une intervention qui sera
transmise en ``temps-rel'' par le serveur tous les participants de la runion.
Plusieurs sortes de runions doivent pouvoir tre organisables :
! Runions standards, avec un organisateur qui se charge de la planification de la runion et dsigne
un animateur charg de choisir les intervenants successifs parmi ceux qui demandent la parole.
! Runions privs, qui sont des runions standards dont l'accs est rserv un groupe de personnes
dfini par l'organisateur
! Runions dmocratiques, qui sont planifies comme des runions standards, mais o les
intervenants successifs sont choisis automatiquement par le serveur sur la base d'une politique
premier demandeur-premier servi.
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 8
Dmarche de modlisation avec UML
Construction du diagramme de cas dutilisations
!Grande dcoupe fonctionnelle (10% de leffort)
Construction du diagramme de classes
! partir des noms des donnes du problme (30%)
Construction de diagrammes de squences et de
collaborations
!instances des cas dutilisation (25%)
Gnralisation laide de diagrammes dtats-transitions
! partir des diag. Squences (15%)
Affiner et prciser la solution (20%)
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 9
Cas dutilisation
Grande dcoupe fonctionnelle
! pilote les incrments dans la spirale
!chaque incrment correspond la ralisation dun cas
dutilisation
1 diagramme global + texte 10 lignes / cas
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 10
Diagramme de cas d'utilisations
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 11
Exemple de cas d'utilisation :
Planification
La planification d'une runion virtuelle est
effectue par une personne jouant le rle
d'organisateur pour cette runion. Ceci consiste
crer une nouvelle runion dans le systme
(ou la mettre jour si elle existe dj) en
faisant le choix d'un nom, la dfinition du sujet,
de la date de dbut et la dure prvue, ainsi que
l'ordre du jour.
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 12
Processus de construction
du diagramme de classes
Identifier les classes dobjets
!Garder les bonnes classes
!constitution du dictionnaire de donnes
Identifier les associations.
!Garder les bonnes associations
Identifier les attributs.
!Garder les bons attributs
Raffiner au moyen de lhritage
!Gnralisations et raffinages
Itrer la modlisation
Grouper les classes en modules
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 13
Identification des classes
A laide des noms des donnes du problme
!processus de remue-mninges (brainstorming)
Eliminer les classes :
! redondantes (noms synonymes)
! non pertinentes (vs. le modle)
! trop vagues (non rifiable facilement)
! attributs, oprations, rles de relations
! constructions lies limplantation
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 14
Souligner les noms
dans le cahier des charges
Il s'agit de raliser la partie serveur d'une application client-
serveur permettant de faire des runions virtuelles multimdia
sur Internet. L'objectif de cette application est de permettre
d'imiter le plus possible le droulement de runions de travail
classiques. Cependant, dans la premire version de ce projet,
les interventions des participants se feront en mode mono-
mdia seulement (i.e. changes en forme textuelle).
Le serveur devra permettre de planifier et de grer le
droulement de plusieurs runions simultanes. Des
programmes clients existeront dans l'avenir pour plusieurs
plate-formes (Mac, Windows, Unix) afin de permettre des
personnes dsirant organiser des runions virtuelles ou y
participer de dialoguer avec le serveur en utilisant un
protocole ad hoc dvelopp au dessus de IP.
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 15
Classes potentielles
! Serveur
! Application
! Runion
! Internet
! Objectif
! Droulement
! Version
! Projet
! Intervention
! Participant
! Mode
! Programme
! Plate-formes
! Personne
! Protocole
!
Implantation
Redondant serveur
OK
Implantation
Non pertinent
Action
Implantation
Non pertinent
OK (?)
Rle relation Personne-Runion
Implantation
Implantation
Implantation
OK
Implantation
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 16
Identification des relations
entre classes
Recherche des phrases verbales
Eliminer les relations :
!entre classes limines
!non pertinentes ou lies limplantation
!qui sont en fait des actions
!pouvant tre drives dautres relations
!Raffiner la smantique des relations
!ajouter les rles
!qualifier les relations (slecteur)
!spcifier la multiplicit
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 17
Identification des attributs
Proprits dobjets individuels
! rechercher laide des adjectifs (couleur, poids...) ou
propositions substantives du problme
Eliminer les attributs non ncessaires ou incorrects
!sils sont en fait des objets
!slecteurs de relations
!identificateurs (clef de BD)
!attributs de relations
!valeurs internes ou dtails dimplantation
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 18
Raffiner au moyen de lhritage
Gnralisation laide de super-classes
!Recherche de classes avec des attributs, relations ou
oprations similaires
Spcialisation laide de sous-classes
!Diffrentes variantes dune mme classe
Runion prive, dmocratique
!sous-classe ou attribut pour distinguer ?
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 19
Diagramme de classes d'analyse
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 20
Itrer la modlisation
Classes manquantes ou en trop
!asymtries : ajout de classes par analogies
!scinder les classes disparates en classes plus lmentaires
!A quoi sert une classe si pas dattributs ou doprations?
Relations manquantes, en trop ou mal places
!si aucune opration ne traverse une relation...
Attributs
!accder un objet par un attribut -> relation qualifie
Il faut parfois attendre davoir fait les autres vues pour
pouvoir itrer
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 21
Diagrammes dynamiques
Pour chaque cas d utilisation
!un scnario nominal (diagramme de squence)
tout se passe bien
!quelques scnarios exceptionnels
montrent des variations sur le scnario optimal
Alternativement (Catalysis)
!description par pre/post de l tat du systme avant/aprs
chaque occurrence d vnement
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 22
Exemples de scnarios :
Cas d'utilisation Connexion
Connexion Nominale Connexion Errone
Connexion Nouvelle
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 23
Exemples de scnarios :
Cas d'utilisation Planification
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 24
Exemples de scnarios :
Cas d'utilisation Animation 1/3
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 25
Exemples de scnarios :
Cas d'utilisation Animation 2/3
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 26
Exemples de scnarios :
Cas d'utilisation Animation 3/3
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 27
Exemples de scnarios :
Cas d'utilisation EntreSortie 1/4
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 28
Exemples de scnarios :
Cas d'utilisation EntreSortie 2/4
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 29
Exemples de scnarios :
Cas d'utilisation EntreSortie 3/4
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 30
Exemples de scnarios :
Cas d'utilisation EntreSortie 4/4
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 31
Construction des diagrammes dtats
Gnralisation pour une classe donne de lensemble
des scnarios qui mettent en jeu ses instances
!en suivant les transition de lautomate, on doit pouvoir
retrouver tous les scnarios
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 32
Diagramme d'tats : Runion
Planifie Ouverte
Ferme
planifier(p)[p=organisateur] entrer(p)[autoris(p)]
sortir(p)[participe(p)]
cloturer(p)[p=animateur]
ouvrir(p)[p=animateur]
planifier(p)
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 33
Diagramme d'tats :
Runion dmocratique
Planifie Ouverte
Ferme
planifier(p)[p=organisateur] entrer(p)[autoris(p)]
sortir(p)[participe(p)]
after(dure)
after(dbut-now())
planifier(p)
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 34
Diagramme d'tats : Personne
Connect
Dconnect
entre(r)[r.autoris(self)]
connecte(passwd)
connecte(passwd)
EnRunion
dconnecte
dconnecte
Passif
Parlant Attente
dtruire
demandeParole
relche
accordeParole
termine
contribue
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 35
Conseils pratiques
!Rflchir au problme avant de commencer
Soigner le nommage, insister sur le nommage des relations
et des rles
!Faire simple!
Things must be as simple as possible, but no simpler. A. Einstein
viter toute complication nuisible
utiliser les qualifieurs
viter les relations ternaires, quaternaires (trop complexe)
se dgager de limplmentation : raisonner objets, classes, messages,
relations, attributs, oprations
ne pas sinquiter si les possibilits de la notation ne sont
pas toutes exploites
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 36
Conseils pratiques (suite)
!Approche incrmentale
Itrer
Confronter ses modles aux autres
Savoir s'arrter avant datteindre la perfection...
prise en compte qualit (niveau de prcision), cots, dlais...
asservissement au processus de dveloppement
!Faire simple (encore)
Un bon modle nest pas un modle o lon ne
peut plus rien ajouter, mais un modle o on ne
peut plus rien enlever. (daprs A. de St-Exupry)
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 37
Critres de qualit dun bon modle
danalyse avec UML (1/2)
Cas d utilisation
!environ 6 cas, nommage correct des acteurs (noms) et des
cas (actions)
!pour chaque cas, prsence d un court texte d explication
!compltude vs. Cahier des charges
Diagramme de classes
!nommage correct des classes (noms)
!dfinitions prsentes dans un dictionnaire
!nommage de toutes les relations, prsence des cardinalits
!attributs seulement de types simples
!non duplication attributs/relations (utilisation hritage)
Benoit Combemale (IRISA, Triskell), 2010. http://www.irisa.fr/triskell/perso_pro/combemale/ 38
Critres de qualit dun bon modle
danalyse avec UML (2/2)
Diagrammes de squence
! attachs un cas d utilisation
! pour chaque cas d utilisation,
prsence d un scnario nominal
quelques scnarios exceptionnels
! chaque opration (message reu par un objet) dfinie dans la
classe correspondante du diagramme statique
Diagrammes d tats
! chaque automate est attach une classe
! chaque attribut/opration utilise sur l automate doit tre
dfini dans la classe englobante
! en suivant les transition de l automate, on doit pouvoir
retrouver tous les scnarios

Você também pode gostar