UML: Exercices Diagramme des cas d,utilisation

Transcription

UML: Exercices Diagramme des cas d,utilisation
!"#$%&'()*)'+
,*-.(-//'$0'+$)-+$
0123*4*+-3*56
1
7-8'3*9('$#$)-+$0123*4*+-3*56
: 7(;'($26$0*-.(-//'$0'+$)-+$0123*4*+-3*56$
('<(;+'63-63$41*63'63*56$0'$4123*4*+-3'2($
0126'$7-8'3*9('=
>()?;545.*' #$)-+ 0123*4*+-3*56 @
: "-$+5)*;3; (5A-4'$01-()?;545.*'$-235/5B*4'$C52+$
'/B-2)?'$<52($(;-4*+'($26$+A+39/'$0'$+2<<5(3$-2&$
-()?;545.2'+$45(+$0'+$852*44'+=
: 6$-()?;545.2'$45(+$0126'$852*44'$(;-4*+'$4'$)(5D2*+$0126'$
<*9)'$+2($+56$3-B4'3 E7$'3$41'6C5*'$-2$+'(C'2($0'$
41-++5)*-3*56=$E52($)'$8-*('$*4$52C('$26$652C'-2$0'++*6$'3$
)5//'6)'$F 0'++*6'(=$G4$-$;.-4'/'63$4-$<5++*B*4*3; 0'$
)5<*'($0'+$;4;/'63+$F <-(3*($0126$-6)*'6$0'++*6=$><(9+$
-C5*($0;8*6*$26$)'(3-*6$65/B('$0'$<(5<(*;3;+$<52($+56$
0'++*6$H(;+5423*56I$65/B('$0'$)524'2(+IJKI$
41-()?;545.2'$'6C5*'$+56$0'++*6$-2$+'(C'2($0'$B-+'+$0'$
0566;'+$'6$*60*D2-63$5L 4'$8*)?*'($05*3$M3('$+35)N; '3$<-($
D2*$*4$<'23$M3('$C2=$$
2
>()?;545.*'$#$)-+$0123*4*+-3*56$O
: P6$C52+$0'/-60'$01-0-<3'($4'$+A+39/'=$"'+$
-()?;545.2'+$0'$3'((-*6$+563$0'$0'2&$3A<'+I$4'+$
-()?;545.2'+$-<<('63*+$'3$4'+$-()?;545.2'+$
)568*(/;+=$E52($-++2('($4-$D2-4*3; 0'$4-$B-+'$0'$
0566;'+I$+'24+$4'+$)568*(/;+$<'2C'63$(;-4*+'($'3$
'6C5A'($0'+$)(5D2*+$-2$+'(C'2(=$Q;-6/5*6+I$4'+$
-()?;545.2'+$-<<('63*+$<'2C'63$'6C5A'($0'+$
653'+$0'$3A<'$3'&3'$H<(*+'+$+2($4'2($R-B4'3 E7K=$
7'33'$8-)243; '+3$;.-4'/'63$-))'++*B4'$-2&$
)568*(/;+=$7'+$653'+$+'(563$0*+<56*B4'+$<52($
352+$C*-$4'$+*3'$S'B$0'$41-++5)*-3*56=$$$
"'$)-+ !56>235 #$<(;+'63-3*56
!56>235 '+3$26'$'63('<(*+'$D2*$8-*3$4'$)5//'()'I$
4T'63('3*'6$'3$4'+$(;<-(-3*56+$0'$C5*32('+=$
!56>235 0;+*('$'&<45*3'($26$45.*)*'4$0'$.'+3*56$0'+$
(;<-(-3*56+U$'44'$0*+<5+'$0;VF 0T26$45.*)*'4$
)5/<3-B4'=$"'+$8-)32('+$0'$(;<-(-3*56+$+'(563$
*/<(*/;'+$'3$.;(;'+$<-($4'$45.*)*'4$)5/<3-B4'=$
"'$45.*)*'4$0'$.'+3*56$0'+$(;<-(-3*56+$0'C(-$
)5//26*D2'($-C')$4'$45.*)*'4$)5/<3-B4'$<52($42*$
3(-6+/'33('$4'+$(;<-(-3*56+$F 8-)32('(=$
3
"'$)-+ !56>235 #$;656);
:
:
"'$45.*)*'4$0'$.'+3*56$0'+$(;<-(-3*56+$'+3$0'+3*6; '6$<(*5(*3; -2$)?'8$
0T-3'4*'(I$*4$0'C(-$42*$<'(/'33('$0'$+-*+*($4'+$8*)?'+$0'$(;<-(-3*56+$'3$4'$
3(-C-*4$'88')32; <-($4'+$0*C'(+$'/<45A;+$0'$4T-3'4*'(=
E52($'88')32'($4'2($3(-C-*4I$4'+$/;)-6*)*'6+$'3$-23('+$'/<45A;+$0'$
4T-3'4*'($C563$)?'()?'($0'+$<*9)'+$0'$(')?-6.'$-2$/-.-+*6=$"5(+D2'$4'$
45.*)*'4$+'(-$*6+3-44;I$4'+$/-.-+*6*'(+$6'$852(6*(563$0'+$<*9)'+$D2'$<52($
4'+$C;?*)24'+$<52($4'+D2'4+$26'$8*)?'$0'$(;<-(-3*56$'+3$52C'(3'U$*4+$
+-*+*(563$0*(')3'/'63$4'+$<*9)'+$852(6*'+$0'<2*+$26$3'(/*6-4$*6+3-44; -2$
/-.-+*6=
"5(+D2T26'$(;<-(-3*56$'+3$3'(/*6;'I$4'$)?'8$0T-3'4*'($C-$'++-A'($4-$
C5*32('=$W*$3523$'+3$'6$5(0('I$*4$/'3$4-$C5*32('$+2($4'$<-()$)4*'6394'$'3$
B52)4'(-$4-$8*)?'$0'$(;<-(-3*56$*685(/-3*+;'=$"'+$8*)?'+$0'$(;<-(-3*56+$
B52)4;'+$<-($4'$)?'8$0T-3'4*'($0'C(563$<52C5*($M3('$*/<5(3;'+$<-($4'$
)5/<3-B4'$0-6+$4'$45.*)*'4$)5/<3-B4'=
"'$)-+$!56>235
7(;'($26$0*-.(-//'$0'+$)-+$
0123*4*+-3*56$<52($4'$)-+$!56>235
4
"'$)-+ !56>235 #$+2*3'
: Découvrez les besoins implicites, c-à-d
d’autres cas d’utilisation
: Q52+$6T-C56+$<-+$'&<4*)*3; 4-$/-6*9('$0563$4'+$
'/<45A;+$'3$4'2($D2-4*8*)-3*56$+563$.;(;+I$3523$
)5//'$<52($4'$+35)N$0'$<*9)'+$0'$(')?-6.'I$4'+$
)4*'63+I$4'+$'/<45A;+I$4'+$C'63'+$0'$C5*32('+===
Q52+$<52C56+$*/-.*6'($D2'$4'$45.*)*'4$0'$
.'+3*56$0'+$(;<-(-3*56+$588('$4'+$856)3*566-4*3;+$
*/<4*)*3'+$0'$.'+3*56$0'+$)4*'63+I$'/<45A;+I$
C'63'+$0'$C5*32('+I$<*9)'+$0'$(')?-6.'===
"'$)-+$!56>235
7(;'($26$0*-.(-//'$01-)3*C*3; <52($4'$2+'$
)-+'$X 7(;'($26'$8*)?'$0'$(;<-(-3*56 Y
5
7(;'( 26' 8*)?'$0'$(;<-(-3*56 #$
;656);
: E52($)(;'($26'$8*)?'$0'$(;<-(-3*56I$4'$)?'8$01-3'4*'($+-*+*3$4'+$
)(*39('+$0'$(')?'()?'$0'$C5*32('+$0-6+$4'$+A+39/'=$"'$45.*)*'4$0'$
.'+3*56$0'+$(;<-(-3*56$42*$0566'$4-$4*+3'$0'+$C5*32('+$
)5(('+<560-63$-2&$)(*39('+$'63(;+=$W*$4-$C5*32('$'&*+3'I$4'$)?'8$
01-3'4*'($C-$+;4')3*566'($4-$C5*32('=$"'$45.*)*'4$C-I$'6+2*3'I$852(6*($
4'+$*685(/-3*56+$+2($4'$C;?*)24'=$W*$4-$C5*32('$'+3$+52+$.-(-63*'I$4'$
)?'8$0'C(-$+-*+*($4-$0-3'$0'$0'/-60'$0'$(;<-(-3*56=$W*$4-$C5*32('$
61'&*+3'$<-+I$4'$)?'8$C-$+-*+*($4'+$*685(/-3*56+$)56)'(6-63$$)'$
652C'-2$C;?*)24'=$,-6+$352+$4'+$)-+I$4'$)?'8$01-3'4*'($0'C(-$+-*+*($
4-$0-3'$0'$(;)'<3*56$'3$0'$('+3*323*56=$W*$4'$05//-.'$0'$4-$C5*32('$
'+3$<-A; <-($41-++2(-6)'I$4'$45.*)*'4$C-$852(6*($26'$4*+3'$
01-++2(-6)'+$-2$)?'8$01-3'4*'(=$7'$0'(6*'($+;4')3*566'(-$
41-++2(-6)'$-0;D2-3'=$%68*6I$4'$45.*)*'4$'6('.*+3('$4-$8*)?'$0'$
(;<-(-3*56=
,*-.(-//'$01-)3*C*3;
6
7-8'3*9('$#$0*-.(-//'$01-)3*C*3;+
: 756+3(2*('$26$0*-.(-//'$01-)3*C*3;+$
('<(;+'63-63$4123*4*+-3*56$0126'$)-8'3*9('$
;4')3(*D2'#
Z <('/*'($;3-3#$)?'()?'($02$)-8;
Z 0'(6*'($;3-3#$W'(C*($02$)-8;
>()?;545.*'$#$0*-.(-//'$
01-)3*C*3;+
: 7(;'($26$0*-.(-//'$01-)3*C*3;+$
('<(;+'63-63$4'$<(5)'++2+$02$0'++*6$0126$
)(5D2*+$0126$-()?;545.2'$45(+$0126'$852*44'
7
"'$)-+$!56>235
7(;'($26$0*-.(-//'$01-)3*C*3;+$<52($3523$4'$
3(-*3'/'63$0126'$(;<-(-3*56=
8
/
#0
Olympus Microcassette Handheld S830 Recorder
!"#$%OLY-S830
&'()#$%$149.00
9
'
#"
'
#
10
1$$
#
/
(
&
$
ƒ
ƒ
ƒ
ƒ
2
'
2
%
11
!
$
" #
ƒ 3 4 ) #$*
# 4 ) * 4
"
$
" #
ƒ 5
$$
#
04 )
0 #* * 4)
# 4 ) 04
12
#
$" #
ƒ ).6
4)$$7/
/4 &" 7.
7
&$$
7$$7$*7*7
8 7/4
$
$" #
ƒ
$ & $. * !$
7 $4
13
$" #
ƒ 3$
7
$ 9 9
& $$
"
&
$4
%&
)/" &
45$
0
/
&
" 7
7
9
7
42
*
$
704
56
$$
*6
)&
% $
7" 4
$
7*
&
" 7
7.42$*7
& '&$7/$$
7.4
*7
:
$$
'&$7$
&;;
0:
*-
&
9
:
64
7&
&9
&$7
&*&
*777
%4
14
'()*+*
)
En tant qu'intermédiaire entre des propriétaires de biens immobiliers et d'éventuels locataires ou acheteur, une agence immobilière propose les différents biens suivants:
¾à louer ou à acheter : des biens immobiliers d'habitation (studios, appartements, maison) et des biens immobiliers commerciaux (entrepôts, emplacements pour bureaux ou
commerce);
De manière à pouvoir servir efficacement, à la fois, les propriétaires (offrants) et les clients (demandeurs), un certain nombre de "classes standards" de biens immobiliers sont définies;
par exemple: la classe des terrains à bâtir de 10 ares et de moins de 300.000 Frs., la classe des maisons d'habitation à louer comprenant au minimum deux chambres et dont le loyer
mensuel serait inférieur à 15.000 Francs, la classe des maisons d'habitation à acheter comprenant au minimum trois chambre et dont le prix demandé serait inférieur à 2.500.000 Francs.
Une classe standard est identifiée par un code de classe et caractérisée par le type de biens immobiliers qui la composent (maison, appartements, studio, entrepôt, emplacement, terrain),
leur mode d'offre (à louer, à acheter), un prix maximum et une superficie minimum.
Dans le cas d'appartement à louer, le prix maximum correspond à un prix mensuel maximum de location; pour les biens à acheter, il correspond à un prix maximum d'achat.
Dans le cas d'appartement ou maison, la superficie minimale correspond à un nombre de chambres; dans le cas d'immeubles commerciaux ou de studios, à une superficie exprimée en
m2; dans le cas d'un terrain à bâtir, à une superficie exprimée en ares.
Pour exercer son activité, l'agence immobilière gère les informations suivantes :
¾pour chaque propriétaire: son nom, son adresse (rue et numéro, code postal, localité), deux numéros de téléphone (privé et travail) et les heures de présence à ces numéros,
ainsi que la liste des biens qu'elle est chargée de négocier pour eux.
¾pour tout bien immobilier: son statut (disponible, loué ou acheté), la classe standard à laquelle il appartient, la date à laquelle le bien lui a été soumis, sa localisation (rue et
numéro, code postal et localité), la date de mise en disposition, le revenu cadastral, la liste des clients qui ont demandé à visiter ainsi que, les dates et heures de chaque visite, et
les coordonnées de la personne de l'agence responsable de celle-ci. Enfin, s'il y a lieu, les coordonnées du client acquéreur (nom, adresse, téléphone), les prix et date effectifs
d'achat où de location et le numéro de référence du contrat.
¾pour tout bien immobilier à louer: le montant de la caution locative, le loyer mensuel, le montant mensuel des charges, le type de bail, la "garniture" (meublé, non meublé).
¾pour tout bien immobilier à acheter : le prix d'achat demandé.
¾pour tout bien immobilier à acheter, sauf terrain : l'état (à restaurer, correct, impeccable).
¾pour un client: son nom, son adresse, son numéro de téléphone, les types de biens qu'il recherche, c'est à dire la liste des classes standards qui correspondent aux types de
biens qui l'intéressent.
Pour l'agence immobilière, un client correspond à toute personne s'adressant à ses services pour louer ou acheter un bien immobilier. Il devient acquéreur s'il loue ou achète un bien
immobilier par son intermédiaire.
Un propriétaire est une personne qui possède des biens immobiliers et s'adresse à l'agence pour les présenter à ses clients.
Un propriétaire peut posséder plusieurs biens immobiliers
Un bien immobilier ne peut être la propriété que d'un seul propriétaire.
Un bien immobilier est soit à louer, soit à acheter. Un numéro permet de l'identifier parmi tous les biens immobiliers.
Un bien immobilier appartient toujours à une et une seule classe standard.
Une classe standard peut ne contenir aucun bien immobilier.
Un client peut être intéressé par plusieurs classe de biens.
Un client est identifié par un numéro attribué par compostage. Il peut visiter plusieurs fois le même bien accompagné d'un responsable différent.
Un propriétaire est identifié par son numéro.
!"#$%#&&'( )*"+,'%#-,".+(
/!"#$%#&&' )' 0123'+-'
/!"#$%#&&' )' -.&&3+"-#,".+
15
56'%-"-' 7 8 9',%#", '+ '(:;-'
91)"$'< 3+ )"#$%#&&' )' (123'+-' =#(1 (3% >*1+.+-1 (3"?#+,8
@A' $3"-B',"'% .3?%' 3+' ('((".+
@A' $3"-B',"'% (#"(", >' +3&1%. )' -.&:,' )3 ->"'+,C
@A' (D(,;&' $3"-B', ?#>")' >' -.&:,' #3:%;( )3 (D(,;&' -'+,%#>C
@A' (D(,;&' $3"-B', )'&#+)' >' ,D:' )*.:1%#,".+ #3 $3"-B',"'%
@A' $3"-B',"'% (1>'-,".++' >' &.+,#+, )3 %',%#",
@A' (D(,;&' $3"-B', "+,'%%.$' >' (D(,;&' -'+,%#> :.3% (*#((3%'% 23'
>' -.&:,' '(, (3EE"(#&&'+, #::%.?"(".++1
@A' (D(,;&' $3"-B', )'&#+)' #3 (D(,;&' -'+,%#> )' )1=",'% >'
-.&:,'
4
@A' (D(,;&' +.,"E"' #3 $3"-B',"'% 23*"> :'3, )1>"?%'% >' &.+,#+,
)'&#+)1
56'%-"-' G8 H&:%"&#+,'
I :#%,"% )3 )"#$%#&&' )' ->#((' -"J)'((3(
7C 91)"$'< 3+ )"#$%#&&' )' (123'+-' :.3% &.)1>"('% >' (-1+#%".
.K 3+ 3,">"(#,'3% ?.3)%#", "&:%"&'% 3+ E"-B"'%C
GC 91)"$'< 3+ )"#$%#&&' )' -.&&3+"-#,".+ L :#%,"% )3 )"#$%#&&'
)' (123'+-' .=,'+3 L ># 23'(,".+ 7C
7F
16
56'%-"-' M8 0"&:>' N#,-B
V3,,.+ 7
V3,,.+ G
I :#%,"% )3 )"#$%#&&' )' ->#((' -"J)'((3(
7C 91)"$'< 3+ )"#$%#&&' )' (123'+-' :.3% &.)1>"('% 3+ (-1+#%".
.K 3+ 3,">"(#,'3% ?.3)%#", %1$>'% >*B'3%' O:#%,"-3>";%'&'+, >'(
&"+3,'(P (3% (# &.+,%'C
5+ #::3D#+, GQ (3% >' =.3,.+ 7 "> #--;)' #3 %1$>#$' )'( &"+3,'( OB'3%' ->"$+.,' :3"( &"+3,'
->"$+.,'PC 5+(3",' #?'- >' =.3,.+ G "> "+-%1&'+,' >'( &"+3,'( )*3+ ?#>'3%R >' AS! )"(:>#D '(,
%#E%#T-B" #:%;( -B#23' :%'((".+C 5+ #::3D#+, (3% >'( )'36 =.3,.+( L ># E."( >*B'3%' '(,
'+%'$"(,%1' ', >*#EE"-B#$' (*#%%U,' )' ->"$+.,'%C
GC 91)"$'< 3+ )"#$%#&&' )' -.&&3+"-#,".+ L :#%,"% )3 )"#$%#&&'
77
)' (123'+-' .=,'+3
56'%-"-' W 8 I(-'+('3%
I :#%,"% )3 )"#$%#&&' )' ->#((' -"J)'((3(
7C 91)"$'< 3+ )"#$%#&&' )' (123'+-' :.3% &.)1>"('% 3+ (-1+#%".
.K 3+ 3(#$'% ?.3)%#", &.+,'% '+ 3,">"(#+, 3+ #(-'+('3%
GC 91)"$'< 3+ )"#$%#&&' )' -.&&3+"-#,".+ L :#%,"% )3 )"#$%#&&'
)' (123'+-' .=,'+3
7G
17
Diagrammes d’états-transitions
Exercice 1 : formation d’un contrat
Dessinez un diagramme d’état/transition résumant les états possibles d’un
objet “contrat” tel que décrit dans l’énoncé suivant.
Un ensemble de personnes décident d’établir un contrat. Pour ce faire elles
rédigent un projet par itération successive. Le contrat est ensuite
informellement accepté par les parties, et devient ce que l’on appelle un
préaccord. A ce stade il peut toujours être l’objet de modification et revenir à
l’état de projet. Une fois le préaccord définitivement établi, le contrat est signé
par les parties. Dès ce moment les partenaires sont liés. Une fois signé le
contrat peut être rendu exécutoire par une décision d’une des parties. Un
contrat en exécution peut faire l’objet de discussions qui sont réglées par un
arbitre désigné à cet effet. Le contrat une fois exécuté prend fin.
18
Exercice 2 : montre digitale
• Ma montre affiche l’heure, si
j’appuie 2X sur le boutton 1, la
Button1
montre passe en mode
“modification”.
Chaque
pression sur le boutton 2,
incrémente l’heure d’une unité.
Si j’appuie encore un fois sur
le boutton 1, je peux régler les Button2
minutes de la même façon que
les heures. Si j’appuie une
quatrième fois sur le boutton 1,
la montre affiche à nouveau
l’heure courante.
Exercice 3 : montre digitale plus
avancée
• Lors du réglage de
l’heure ou des minutes
lorsque j’appuie sur le
boutton 2 plus de deux
secondes, les heures ou
les minutes avancent très
rapidement jusqu’à ce
que je relâche la pression
• On ajoute un bouton 3 qui
permet de rétro-éclairer
l’écran LCD
Button1
Button3
Button2
19
Exercice 4 : cabine téléphonique
• Modélisez le fonctionnement d’une cabine
téléphonique
20
Archeo
Editer Coquis
<<Include>>
Faire Croquis
Archeologiste
<<Extend>>
Copier Croquis existant
Prendre Notes
Archeologiste Expert
Archeologiste Apprenti
importer croquis
pour publication
Website
BD
21
monauto
Logiciel Reparation
Saisir Pieces
Comptable
BD Stock
Consulter Fiche
Logiciel Comptable
Magasinier
<<Include>>
<<Extend>>
Gerer Facture
Gerer Fiche
Reparation
Mecanicien
<<Include>>
<<Include>>
<<Extend>>
Cloturer Fiche Reparation
Importer Fiche
Chef Atelier
BD Reparation
22
ATM
Recharger Proton
obtient statistiques
Recharge ATM
Prepose Banque
Client
Tirer de l'argent
Login
Changer Password
<<Extend>>
Imprimer ticket
Faire Domiciliation
<<Include>>
<<Extend>>
Introduire carte
<<Extend>>
Faire Virement
Faire Virement National
<<Extend>>
Recevoir Extrait de compte
Faire Virement International
23
Full - Tirer de l'argent
Use Case ID
Super Use Case
Primary Actor
Secondary
Actor(s)
Brief Description
Preconditions
Flow of Events
Post-conditions
Alternative flows
and exceptions
Non-behavior
requirements
Assumptions
Issue
Source
Author
Date
Client
Comment un client utilise l'ATM pour retirer de l'argent
Client doit avoir une carte
Actor Input
System Response
1 Le client entre la carte
2
Le système lit la carte
3
Le système authentifie le client
4 Le client sélectionne le retrait
5 Le client selectionne le montant
6
Le système confirme
7
Le système ejecte la carte
8
Le système donne l'argent
Le client a l'argent
Retrait d'un montant hors limite : sytème affiche message erreur
Carte bloquée dans le système : session terminée et message au client
Carte invalide : carte est directement ejectée
Carte oubliée dans le système
Carte illisible
Mot de passe erroné
Cash non disponible
Client quitte session
Sécuriser l'ATM
Adapter la visibilité arrière
forma1300
12-oct.-2010 14:03:58
24
vente
commande un produit
facturer la commande
Client
Vente
traiter commande
paie la facture
sortir les articles
Entrepot
Caisse
expédier la commande
25
cafetiere
[tant que pas prete]
Allumer Cafetière
Préchauffage
[Reservoir vide?]
[Capsule présente?]
oui
oui
non
Mettre Capsule
Ejecter Capsule
Remplir Reservoir
non
Placer Tasse
Selectionner
quantité
Appuyer bouton
[tant que quantité pas atteinte]
Eteindre cafetiere
Retirer tasse
Produire café
26
vente
Client
Vente
Entrepot
Caisse
Verifie stock
commande produit
Traite commande
[stock ok?]
Recommender Stock
non
Notification Client
oui
Payer
Facturer
Sortir article
oui
[Paiement ok?]
non
Expedier article
Encaisser
client insolvable
27
monautoReparation
Chef Atelier
Mecanicien
Magasinier
Comptable
[tant que reparation pas terminée]
creer fiche
Saisir pieces
Consulter Fiche
Importer Fiche
Saisir travail
Facturer
28
MonAutoCreerFiche
Chef Atelier
Logiciel Reparation
Saisit criteres recherche
Donne Liste Voitures
Voiture Existe?
Saisit Info Vehicule
non
oui
Selectionne Voiture
Fournit Info Vehicule
[Sous garantie?]
non
oui
oui
non
Fournit Liste Assurance
Saisit demande reparation
Intervention Assurance
Cloture Fiche
Saisit dates reception/restitution
selectionne Assureur
29
CafetiereSimple
[tant que qté pas atteinte]
Produire café
retire tasse
Allumer cafetiere
Sélection qté
eteindre cafetiere
verifier niveau eau
Placer tasse
[préchauffage ok]
[reservoir plein]
[tant que cafetiere pas a t°]
[reservoir vide]
Remplir reservoir
placer la dosette
préchauffage
30
enregistreur
Enregistreur
-code
-marque
-modele
-prix : integer
-annee : date
-long : integer
-largeur : integer
-couleur
-position
-volume : integer
-poids : integer
+enregistrer()
+ecouter()
+rebobiner()
+avancer()
+ejecter()
+reglerVolume()
+stopper()
+marquerPause()
+afficherPosition()
Cassette
-etiquette
-marque
-modele
-longueur : integer
-type
1
*
Enregistrement
-label
-dateEnreg : date
-longueur : integer
-NumTel
Message
-auteur
-sujetMessage
-NumTelAuteur
31
monauto
Facture
est facturee
assureReparation
0..*
0..*
0..*
Assurance
+emettre()
1..*
Reparation
-NumPolice : integer
-Compagnie
-duree : integer
0..*
se rapporte
+contracterPolice()
+definirOptions()
+payer()
1
1..*
assureVehicule
1..*
-dateEntree : date
-dateSortie : date
0..*
+consulter()
+facturer()
+definirDevis()
+determinerTravaux()
Vehicule
Vente
-dateEmission : date
-modele
-annee : date
-cylindree : integer
-carburant : boleean
0..*
Garantie
1
1..*
sous garantie
-numGarantie : integer
0..* -duree : integer
-dateDebut : date
+souscrire()
+etendre()
Client
appartient
prise en compte
-prix : integer
-date : date
-nom
-addresse
+payer()
+enregistrer()
ChefAtelier
assigné
+assignerReparation()
1
PersMorale
-numTVA : integer
-raisonSociale
PersPhysique
-prenom
32
Immo
ImmoSys
<<ORM Persistable>>
Bien
-ID
1..*
0..*
biens
visites
<<ORM Persistable>>
visite
0..*
visites
-ID
personnes
1..*
<<ORM Persistable>>
Personne
-ID
1
personne
bien
1
annonce
1
<<ORM Persistable>>
Annonce
-ID
<<ORM Persistable>>
Particulier
0..*
-nom
annonces
<<ORM Persistable>>
Maison
<<ORM Persistable>>
Agence
-type
-numTVA : integer
<<ORM Persistable>>
Appartement
-etage
Pour MySQL/Java
33
sd guichetier
guichet : Guichet
moduleCentral : ModuleCentral
Guichetier
1: ouvertureSession()
2: session ouverte
3: saisirCompte()
4: validerCompte()
5: compteValide
6: demandeOperationType()
7: retraitLiquide()
8: verifieSolde()
9: debit
10: notifieRetrait()
34
sd printer
:pc
: server
: printer
: queue
: user
1: print(file)
2: print (file)
3: print (file)
loop
[While File not printed]
alt
[printer available and file NOT IN queue]
4: print (file)
[printer not available and file NOT IN queue]
5: store (file)
[printer avalable and file IN queue]
6: call(file)
7: print (file)
35
sd montre
but1: button
but2 : button
: LCDDisplay
: Timer
:user
loop
[0,2]
1: push()
2: blinkMinutes()
loop
[While minutes not set]
3: push()
4: incrementMinutes()
5: displayNewTime()
6: visualise()
7: release()
8: push()
36
sd Ascenceur
: voyant
: tableau
: ascenceur
: porte
: user
1: callLift()
2: switchOn()
alt
[PosLift > < PosUser]
3: close()
alt
[PosLift > PosUser]
4: GoDown(PosUser)
5:
[PosLift < PosUser]
6: GoUp(PsoUser)
7:
8: switchOff()
9: open()
[PosLift = PosUser]
10: switchOff()
11: open()
12: selectLevel()
13: switchOn()
14: close()
alt
[PosLift < SelectedLevel]
15: GoUp(SelectedLevel)
16:
[PosLift > SelectedLevel]
17: GoDown(SelectedLevel)
18:
19: open()
20: switchOff()
21: close()
37
sd Close
:Tableau
:Porte
:Voyant
1: open()
2: switchOff()
3: close()
38
sd guichetier - Communications
8: verifieSolde()
4: validerCompte()
9: debit
5: compteValide
guichet : Guichet
moduleCentral : ModuleCentral
2: session ouverte
6: demandeOperationType()
10: notifieRetrait()
3: saisirCompte()
1: ouvertureSession()
7: retraitLiquide()
Guichetier
39
sd montre - Communications
5: displayNewTime()
: LCDDisplay
: Timer
8:
6: visualise()
2: blinkMinutes()
but1: button
1: push()
4: incrementMinutes()
3: push()
7: release()
but2 : button
:user
40
sd printer - Communications
2: print (file)
:pc
: server
3: print (file)
1: print(file)
7: print (file)
6: call(file)
: queue
: printer
4: print (file)
5: store (file)
: user
41
sd Ascenceur - Communications
: ascenceur
5:
16:
7:
18:
17: GoDown(SelectedLevel)
6: GoUp(PsoUser)
10: switchOff()
20: switchOff()
13: switchOn()
15: GoUp(SelectedLevel)
4: GoDown(PosUser)
2: switchOn()
8: switchOff()
3: close()
: tableau
: porte
11: open()
14: close()
: voyant
9: open()
12: selectLevel()
19: open()
1: callLift()
21: close()
: user
42
ascenceur
Arreté
non
callLift()
PosLift = PosUser
oui
Fermé
Porte ouverte?
open(doors)
close(doors)
Ouvert
oui
EnMouvement
non
[PosLift >< Selection]
GoUp
oui
PosLift < Selection
[PosLift >< Selection]
non
GoDown
[Etage atteint]
[Etage atteint]
43
Montre
[bouton non appuyé]
Affichage Normal
do / AfficherHeureMinutes
[batteryOn]
[batteryOff]
push(bouton1) [2x]
Modification
push(bouton2)
push(bouton2)
Réglage Heure
do / incrémenteHeure()
Réglage Minute
do / incrémenteMinutes
push(bouton1)
push(bouton1)
Affichage New Time
do / AfficherHeureMin Modifié
44
3tiers
<<component>>
ApplicationPret
<<use>>
<<component>>
Client
<<component>>
ApplicationServer -Websphere
<<component>>
WebServer-Apache
<<component>>
OS-Linux Debian
<<component>>
DBPret
<<component>>
RDBMS-SQLServer
<<component>>
OS Windows Server 2008
45
MonAuto
<<component>>
Valise-Diagnostic
<<component>>
ApplicationComptable
<<use>>
<<use>>
<<component>>
ApplicationReparation
<<component>>
FrontEnd
<<use>>
<<use>>
<<component>>
BDStock
<<component>>
BDVoiture
46
DeploymentBDPret
workstation
Server
<<component>>
Client
<<component>>
ApplicationPret
<<use>>
<<component>>
ApplicationServer -Websphere
BD-Server
<<component>>
WebServer-Apache
<<component>>
DBPret
<<component>>
OS-Linux Debian
<<component>>
RDBMS-SQLServer
LAN - Router
<<component>>
OS Windows Server 2008
47
DeploymentMonAuto
Workstation - Administration
Laptop - Valise
<<component>>
FrontEnd
<<component>>
Valise-Diagnostic
Serveur
<<component>>
ApplicationComptable
<<use>>
<<use>>
<<component>>
ApplicationReparation
Workstation -Garage
<<component>>
FrontEnd
<<use>>
<<component>>
BDStock
<<use>>
<<component>>
BDVoiture
48
sd Ascenceur
sdPosLift >< PosUser
sd switchOn
:Tableau
:Porte
:Voyant
[PosLift?]
:User
1: callLift()
1: close()
PosLift >< PosUser
2: sw itchOn()
PosLift=PosUser
[PosLiftUpDown?]
posLift > PosUser
posLift < PosUser
sd PosLift =PosUser
:tableau
:voyant
:porte
1: sw itchOff()
2: open()
sdPosLift > PosUser
:Tableau
sd PosLift < PosUser
:Ascenceur
:Tableau
:Ascenceur
1: GoDow n(PosUser)
1: GoUp(PosUser)
2:
2:
sdswitchOff
:Tableau
:Voyant
:Porte
1: sw itchOff()
2: open()
sd PosLift < SelectedLevel
:Tableau
sd selectLevel
:Tableau
:User
:Ascenceur
PosLift < SelectedLevel
:Voyant
1: GoUp(SelectedLevel)
:Porte
sd Close
1: selectLevel()
2:
:Tableau
2: sw itchOn()
3: close()
:Porte
:Voyant
1: open()
[PosLift?]
2: sw itchOff()
sd PosLift > SelectedLevel
:Tableau
:Ascenceur
3: close()
PosLift > SelectedLevel
1: GoDow n(SelectedLevel)
2:
49
ImmoER
Personne
+ID
NumTVA
Nom
Discriminator
int(11)
int(11)
varchar(255)
varchar(255)
Nullable = false
Nullable = true
Nullable = true
Nullable = false
visites
visite_Personne
personne
+#visiteID
+#PersonneID
int(11)
int(11)
Nullable = false
Nullable = false
personnes
annonces
Annonce
visite
+ID
int(11)
Nullable = false
+ID
#BienID
#PersonneID
int(11)
int(11)
int(11)
+#visiteID
+#BienID
int(11)
int(11)
Nullable = false
Nullable = false
Nullable = false
annonce
bien
biens
Bien
+ID
Etage
Type
Discriminator
int(11)
varchar(255)
varchar(255)
varchar(255)
Nullable = false
Nullable = true
Nullable = true
Nullable = false
visites
visite_Bien
Nullable = false
Nullable = false
50

Documents pareils