Escolar Documentos
Profissional Documentos
Cultura Documentos
Page : 63
Le Modle Objet
Cela consiste dfinir les objets qui vont modliser les besoins qui ont t exprim en termes de fonctionnalits. Le passage de cet aspect fonctionnel un aspect objet n'est certes pas vident.
La description des objets est structurelle. Par ailleurs, on dterminera les liens entre les diffrents objets. Les Objets et leurs liens reprsentent ainsi le
modle statique
Les objets dtermins serviront lors des phases analyse, conception et plus tard l'implmentation.
O. BOUSSAID
Page : 64
LE MODELE DYNAMIQUE
Il vient juste aprs l'analyse statique du modle. Cette dernire dcrit la structure des lments du modle ainsi que leurs relations.
Quant , elle a pour but de dcrire les tats des objets au cours du fonctionnement du systmes: modifications des attributs ; excutions des mthodes ; ractions des sollicitations externes au systme;
l'analyse dynamique
O. BOUSSAID
Page : 65
F Le diagramme d'objets
Il reprsente un ensemble d'objets et leurs relations.
F Le diagramme de squences
C 'est un diagramme d'interaction. Il reprsente un ensemble d'objets et leurs relations, avec les messages qu'ils changent. (aspect chronologique des messages).
O. BOUSSAID
Page : 66
F Le diagramme d'tats-transitions
Ceux sont des automates tats finis, composs d'tats, de transitions, d'vnements et d'activits
(Vue dynamique d'un systme)
F Le diagramme d'activits
C 'est un diagramme d'tats-transitions dcrivant une suite d'activits.
F Le diagramme de composants
Il reprsente l'organisation et les dpendances des composants. Un composant est soit une (ou plusieurs) classe (s), interface(s) ou collaboration(s).
F Le diagramme de dploiements
Il reprsente la configuration des nuds de processus en phase d'excution.
O. BOUSSAID
Page : 67
Diagramme d'une classe La dtermination des classes lors de la phase d'analyse n'est pas vidente. Elle suit une mthode plutt intuitive, base sur l'exprience de l'analyste qui a (ou n'a pas) l'habitude de reconnatre plus ou moins facilement les classes, les objets, les associations, les attributs et les mthodes des classes. L'analyste pourra se demander alors quels sont les objets de gestion dans le problme tudi et se rfrer galement aux rgles de gestion pour identifier les objets rels ainsi que leurs liens et qu'il va falloir modliser sous formes de classes et d'associations. Le parallle avec le modle E/A est intressant faire lors de la phase d'analyse.
O. BOUSSAID
Page : 68
Diagramme de squences
" Message simple " message minut " message synchrone " message asynchrone " message drobant
O. BOUSSAID
Page : 69
Diagramme de squences
" Message
simple
Message
dont
on
ne
spcie
aucune
caractris2que
d'envoi
ou
de
rcep2on
par2culire
Bloque
l'expditeur
pendant
un
temps
donn
(qui
peut
tre
spci
dans
une
contrainte),
en
a?endant
la
prise
en
compte
du
message
par
le
rcepteur.
L'expditeur
est
libr
si
la
prise
en
compte
n'a
pas
eu
lieu
pendant
le
dlai
spci
Bloque
l'expditeur
jusqu'
prise
en
compte
du
message
par
le
des2nataire.
Le
ot
de
contrle
passe
de
l'me?eur
au
rcepteur
(l'me?eur
devient
passif
et
le
rcepteur
ac2f)
la
prise
en
compte
du
message
N'interrompt pas l'excu2on de l'expditeur. Le message envoy peut tre pris en compte par le rcepteur tout moment ou ignor ( jamais trait) N'interrompt pas l'excu2on de l'expditeur et ne dclenche une opra2on chez le rcepteur que s'il s'est pralablement mis en a?ente de ce message.
O. BOUSSAID
Page : 70
Diagramme
de
squences
On
peut
reprsenter
explicitement
les
priodes
d'ac2vit
d'un
objet
par
une
bande
rectangulaire
superpose
la
ligne
de
vie
de
l'objet.
d'ac2va2on de l'objet concern. Pour reprsenter de manire graphique une excu2on condi2onnelle d'un message, on peut documenter un diagramme de squence avec du pseudo- code et reprsenter des bandes d'ac2va2on condi2onnelles.
O. BOUSSAID
Page : 71
v v v v v v
Ne confondez pas la priode d'ac2va2on d'un objet avec sa cra2on ou sa destruc2on. Un objet peut tre ac2f plusieurs fois au cours de son existence. Le pseudo-code peut aussi tre u2lis pour indiquer des itra2ons (avec incrmenta2on d'un paramtre d'un message par exemple). Le retour des messages asynchrones devrait toujours tre matrialis, lorsqu'il existe. Notez qu'il est fortement recommand de synchroniser vos messages. Bien choisir la reprsenta2on des branchements condi2onnels. Evitez une nota2on lourde. Prfrez aussi l'u2lisa2on de contraintes celle de pseudo- code, (voir l'exemple).
O. BOUSSAID
Page : 72
Diagramme de squences
Exemple :
O. BOUSSAID
Page : 73
UML permet de spcifier de manire trs prcise l'ordre et les conditions d'envoi des messages sur un diagramme dynamique.
q Les clauses qui conditionnent son envoi, q Son rang (son numro d'ordre par rapport aux autres messages), q Sa rcurrence, q Ses arguments
O. BOUSSAID
Page : 74
Permet de condi2onner l'envoi du message, l'aide d'une clause exprime en langage naturel.
Exemple : l'envoi du message 1.3.5 suit immdiatement celui du message 1.3.4 et ces deux messages font par2e du ot (de la famille de messages) 1.3. Pour reprsenter l'envoi simultan de deux messages, il sut de les indexer par une le?re. Exemple : l'envoi des messages 1.3.a et 1.3.b est simultan.
O. BOUSSAID
Page : 75
squen2el
(ou
en
parallle,
avec
"||")
de
messages.
Notez
qu'il
est
aussi
possible
de
spcier
qu'un
message
est
rcurrent
en
ome?ant
la
clause
d'itra2on
(en
O. BOUSSAID
Page : 76
Exemples
:
3
:
bonjour()
Ce
message
a
pour
numro
de
squence
"3".
[heure = midi] 1 : manger() Ce message n'est envoy que s'il est midi. 1.3.6 * : ouvrir() Ce message est envoy de manire squen2elle un certain nombre de fois. 3 / *||[i := 1..5] : fermer() Reprsente l'envoi en parallle de 5 messages. Ces messages ne seront envoys qu'aprs l'envoi du message 3. 1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom) Ce message (numro 2.5) ne sera envoy qu'aprs les messages 1.3 et 2.1, et que si "t < 10s". 1.3 / [disk full] 1.7.a * : deleteTempFiles() 1.3 / [disk full] 1.7.b : reduceSwapFile(20%) Ces messages ne seront envoys qu'aprs l'envoi du message 1.3 et si la condi2on "disk full" est ralise. Si cela est le cas, les messages 1.7.a et 1.7.b seront envoys simultanment. Plusieurs messages 1.7.a peuvent tre envoys.
O. BOUSSAID
Page : 77
:Dupont 1:AjouterSpcimen()
c:Collec2on
e:Espce
2:CrerForme()
9:CrerSpcimen()
s:Specimen
10:Lier()
O. BOUSSAID
Page : 78
Diagramme
d
'acBvit
iden2er
les
ac2vits
(en
s'appuyant
sur
les
use
cases)
iden2er
les
transi2ons
entre
ac2vits
Dcrire
le
comportement
d'une
classe
en
rponse
des
calculs
internes
Similaire
aux
diagrammes
d'tat,
mais
pour
les
vnements
internes
(et
non
extrieus)
Page : 79
Diagramme d'acBvit
view Highscore
Start turn=0
O. BOUSSAID
Page : 80
Diagramme
d'acBvit
Phase
analyse
des
besoins
ou
analyse
?
Plus
business
process
que
orient
objet
Ordonne
et
dtaille
les
Use-cases
Trs
u2le
pour
les
tests...
menu
Acher
Score
[Score]
[start]
[exit]
Joueur Jouer
Acher Score
dbut turn=0
[true]
score<10
Maj Score
O. BOUSSAID
Page : 81
Diagramme
de
collaboraBon
Iden2er
les
OBJETS
les
rela2ons
entre
OBJETS
(graphe
d'objets)
les
messages
et
l
'ordre
d'appel
des
messages
entre
les
objets
Momo : Joueur
d2 : D
Visualise les objets Visualise les relaBons entre objets Visualise l 'ordonnancement des appels de messages sur les objets
O. BOUSSAID
Page : 82
Diagramme
de
collaboraBon
Dcrivent
les
changes
de
messages
entre
classes
et
dnissent
les
associa2ons
sman2quement
quivalents
aux
diagrammes
de
sequences,
mais
Diagrammes de squences illustrent l'ordre des vnements Classes : objets par2cipant l'interac2on Liens : instances d'associa2ons Messages : envoys le long des liens Scnarios : cas par2culier
Diagrammes de collabora2on reprsentent les interconnec2ons entre objets et sont visuellement dirents
Objets
:GesBon Monnaie
2: InsererMonnaie(prix)
1.3:
AcherMonnaie(prix) 2.1:
DonnerBoisson()
:Distributeur
:Ecran
Usager
1.1:
true
:=
AvoirDisponibilit()
Liens
Page : 83
Messages
O.
BOUSSAID
:Coca
Diagramme
de
collaboraBon
Tous
les
chemins
possibles
dans
les
diagrammes
d'ac2vits
sont
sujet
tre
reprsents
par
des
diagrammes
de
collabora2on
!
A?en2on
la
sur-analyse
!
Ne
reprsenter
que
les
scnarios
les
plus
per2nents
!
menu
[score]
[start]
[exit]
Acher score
1: jeu( ) jeu : Ds
3: r2=roll( )
Momo : Joueur
d2 : D
O. BOUSSAID
Page : 84
La notion d 'tat
Un tat d'un objet est dfini la fois par la valeurs de ses attributs et de ses liens avec les autres objets. Il reprsente ainsi un intervalle de temps. L'objet est dans un tat initial et peut alors changer d'tat. Exemple
:
Etudiant
InscritEn
Pratiquer
* Diplme
0..*
Sport
Ici l'objet Etudiant peut passer d'un tat Etudiant un tat de diplm un tat de sportif, C'est l'attribut Statut qui va changer de valeur.
O. BOUSSAID
Page : 85
vnements et messages
Un
est produit par un fait et vhicule une information qui va solliciter un ou plusieurs objets. Soit ils rpondront en activant une mthode ; soit ils ne ragiront pas du tout. Cela dpend de l'tat dans lequel se trouve(nt) l'(les) objet(s). Un vnement peut tre interne ou externe au systme. Lorsqu'un objet provoque un vnement en direction d'un autre objet, ce dernier peut rpondre en dclenchant une de ses mthodes.
vnement
interaction entre ces deux objets. L'vnement est qualifi alors de message entre ces deux objets.
C'est une
O. BOUSSAID
Page : 86
Transition
Une transition est le passage d'un objet d'un tat un autre d un vnement.
Rinscription autre diplme
tudiant
Changer statut Suivre paralllement
Fin d'tudes
Diplm
Changer carrire
Sportif
O. BOUSSAID
Page : 87
Diagramme d 'tats
C'est un graphe compos de nuds reprsentant les tats d'un objet d'une classe et les arcs sont les transitions portant des vnements. Un diagramme d'tats est propre une classe d'objets. Un tat d'un objet peut correspondre des sous tats . Cela dpend du niveau de granularit qu'on dsire. Exemple : l'tat Sportif peut tre reprsent par trois sous tats : Athlte Haut Niveau ; Slection en E.N. et Comptition. Les sous tats sont reprsents comme des tats. Dans un diagramme d'tats on peut dvelopper l'tat d'un objet par un sous diagramme d'tats avec des points d'entre et des points de sortie. De telle sorte, on peut passer d'un tat un sous tat et inversement.
Comptiteur
Changer carrire
O. BOUSSAID
Page : 88
Contenu d'un diagramme de comportement Description des squences possibles d'tats et d'actions par lesquelles un lment peut passer tout au long de sa vie. De telles squences rsultent de sa raction des vnements tels que des signaux ou des invocations d'oprations.
O. BOUSSAID
Page : 89
O. BOUSSAID
Page : 90
Dfinitions
Un tat est une condition dans la vie d'un objet (ou d'une interaction)
pendant laquelle :
O. BOUSSAID
Page : 91
Etat : Evnement
En relation avec son objet, un tat peut tre considr de 3 manires diffrentes :
vvue externe : un tat est une rponse de l'objet qui est sollicit par un
vnement. Par exemple, quand survient l'vnement fin de sjour, l'objet vacances d't rpond en entrant dans l'tat retour en avion.
vvue interne : un tat est un intervalle entre 2 vnements. Par exemple, l'tat
rentrer en avion est une caractristique interne de l'objet vacances d't impose par son extrieur par les vnements fin de sjour et atterrissage.
vvue normative : un tat est une condition portant sur les valeurs lies un
groupe d'attributs de l'objet. Par exemple, tat rentrer en avion : attribut distance de valeur > 800 km ET attribut budget de valeur > 300 . Autre exemple : l'tat Liquide de l'lment Eau peut tre dfini par la double condition sur son attribut temprature : 0<T<100C.
O. BOUSSAID
Page : 92
Evnements
i.
Demande d'opration faite par un autre objet. Exemple : Fermer la fentre. Epuisement d'un dlai temporel. Exemple : la fin du sursis excution est
un vnement pour le condamn mort. Notation par mot cl : after (expression).
v.
O. BOUSSAID
Page : 93
Exemple 1
Un dispositif de contrle d'accs par carte magntique un photocopieur est quip d'un cran de visualisation qui peut afficher les messages suivants :
"INSEREZ VOTRE CARTE" lorsque le dispositif est inutilis. "PATIENTER" pendant que le dispositif lit le code d'une carte introduite. "CARTE INVALIDE" lorsque le code n'est pas reconnu (illisible) ; la carte est alors automatiquement jecte. "COMPOSEZ VOTRE CODE" lorsque celui-ci a pu tre lu. "CODE REFUSE" si le code compos n'est pas identique au code lu ; la carte est alors automatiquement jecte. "UTILISATION EN COURS" lorsque le code compos est correct.
L'utilisateur peut tout moment actionner un bouton qui provoque l'jection de la carte. Aprs toute jection de carte, le dispositif affiche "INSERER CARTE".
O. BOUSSAID
Page : 94
Insrer la carte( carte ) / Lecture du code When( Code non reconnu ) Carte / Ejecter la carte Patientez invalide
When( code lu <> code compos ) Composez votre code When( code lu = code compos )
Code refus
Utilisation en cours
O. BOUSSAID
Page : 95
Exemple 2
Partie 1 :
Une partie d'checs peut tre dcrite comme suit :
v Quand le joueur aux pices blanches joue, le tour de jouer v Quand le joueur possdant les pices blanches v S'il y a un pat, la partie est finie par un nul.
devient celui possdant les pices noires. L'inverse est aussi vrai. (respectivement, les pices noires) fait un chec et mat, il gagne la partie,
Imaginons qu'il existe un contrleur qui surveille de la partie d'chec. Dcrivez, d'une point de vue contrleur, le digramme Etat/Transition de la partie d'checs.
O. BOUSSAID
Page : 96
Exemple 2 : Partie 1
O. BOUSSAID
Page : 97
Exemple 2
Partie 2 :
v Supposons maintenant que l'on veuille dcrire la mme partie
d'checs du point de vue du comportement d'un objet Afficheur (interface graphique). jeu. Sur le jeu d'une pice, il doit :
O. BOUSSAID
Page : 98
Exemple 2 : Partie 2
O. BOUSSAID
Page : 99
Les attributs
Ceux sont des paramtres ports par des vnements. Ils sont reprsents dans une liste (utilisation des ( ) ) . Une transition peut porter une liste d'attributs.
Les gardiens
Ceux sont des fonctions boolennes qui conditionnent le dclenchement d'une transition. (utilisation des [ ] ).
Les activits
Ceux sont des oprations continues dans le temps et s'excutent Elle est prcde du mot cl do .
Les actions
Ceux sont des oprations qui s'excutent instantanment. Une action peut tre associe un tat ou une transition. Elle peut intervenir :
Soit en entre d'tat (entry/) ; soit en sortie d'tat (exit/) ; soit en rponse un vnement dclenche (vnement1/) ; soit enfin au cours d'une transition (par /).
O. BOUSSAID
Page : 100
Etat 2
O. BOUSSAID
Page : 101
Remarque
Plusieurs sous diagrammes d'tats peuvent intervenir en mme temps. Ils se droulent en concurrence ou en synchronisation.
Lorsqu'ils sont en concurrence, le premier sous diagramme d'tat bloque les autres et fait quitter l'tat englobant vers un autre tat. Lorsqu'ils sont en synchronisation, la transition de l'tat englobant vers un autre tat ne s'effectue que lorsque tous les sous diagrammes le permettent. Aucun sous diagramme ne peut tre interrompu.
O. BOUSSAID
Page : 102
Inscrit ANPE
AcceptationInsciption
Petites annonces
Allocation chmage
Proposition ANPE
OU
Proposition Entrevue
En PhaseEmbauche
Demander Cong ET
Assurer Fonctions
En cong
Page : 103
Lors de la phase d'analyse et de conception, des modles construits peuvent tre partiels ou incomplets, parfois mme incohrents. Les rgles d'UML peuvent aider un dveloppeur les complter ou les corriger.
O. BOUSSAID
Page : 104
q Les spcifications q Les dcorations q Les distinctions communes q Les mcanismes d'extensibilits
O. BOUSSAID
Page : 105
Les spcifications
Toute reprsentation graphique d'UML vhicule des spcifications syntaxiques et smantiques reprsentant une partie du systme.
Exemple : la classe ETUDIANT modlise un tudiant et en mme temps prcise les attributs et les oprations qui la composent (signatures des mthodes).
ETUDIANT Nom Capital UV Diplme VrifierNom( ) MajUV( ) ChangerDiplme( )
O. BOUSSAID
Page : 106
Les dcorations
Elles peuvent renforcer la visibilits des lments d'un modle. Exemple : la classe ETUDIANT indique son nom, ses
attributs et ses oprations. Elle montre aussi que les 2 premires oprations sont publiques alors que la dernire est prive.
ETUDIANT
+VrifierNom( ) +MajUV( ) #ChangerDiplme( )
O. BOUSSAID
Page : 107
Page : 108
O. BOUSSAID
Page : 109
Strotypes
C'est un concept qui permet des regroupements de classes, d'associations, de mthodes, d'attributs, de packages Il permet de crer des familles d'lments associs un mme strotype. D'autre part, il permet de modifier la smantique des lments associs et cre par la mme occasion des concepts propres une application. L'interface est un exemple de strotype. Les strotypes permettent d'apposer une smantique particulire aux lments UML. On peut alors spcialiser le langage UML afin qu'il s'adapte mieux au domaine dans lequel le langage est utilis. On peut citer par exemple l'utilisation de strotype "<<Table>>" sur des classes dans les diagrammes de classe dans le cadre d'une modlisation de base de donnes.
O. BOUSSAID
Page : 110
Contraintes
Elles permettent d'apporter plus de prcisions un lment du modle. Exemple :
Notes
{Ordonne} * Obtenir *
Etudiant
EtreInscritEn
Etudiant *
Diplme *
O. BOUSSAID
Page : 111
Systme
Diagrammes de composants Diagrammes de collaborations
Implantation
Diagrammes de dploiement
Dynamique
Page : 112