myspace.voo.bemyspace.voo.be/vconsult/UML/UMLExe2.pdf · En tant qu'intermédiaire entre des...
Transcript of myspace.voo.bemyspace.voo.be/vconsult/UML/UMLExe2.pdf · En tant qu'intermédiaire entre des...
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-à-dd’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��� ��$$���� �� ���� ���� �� �#������ �������� ����� � ���� �����0��4� )�������0� �� � ���� � ��� ���� � �������� ������ �������� ���� �#�� ��������*� �������*� ���� ����� � � ��� ���� ���� � �������������� ������4�)������ ���� ��� ����� ���� ���� ������� ���� �#�� �������� � � ������� ���4� )�� ���� ���� � �� � ������ ������ ���� ���� ���� ��� � � ��� � ��� � ��� ���������0��4�
12
�������#�
� ��� ������ ��� �������� ��� �������� �$�" �#����� �����
� )���.���� � �����6��������������������������4�)��$����$� ����������� ��7��/� �����������������������/���4� ����������&������������ ��" �7�.���� � ��7�� ��������������������� ���������&�$$����7$$�����7���$���*��7��������*��7����������8 �7���/������ ������4
��������$�
� ��� ������ ��� �������� ��� �������� �$�" �#����� �����
� �$����� ��� �&��� ������ � ���� ������$�����.� ������*� ���� !��$� ���7���� ����� ���� ��� �������������� �$������������������4�
13
����������
� ��� ������ ��� �������� ��� �������� �$�" �#����� ����� � 3�� ������������������������������� �$�������� ��� ������� � � � �������� ��� �������� � � ��� ��������� �7���������������� ����� �$�����������������9�������������� ��� � ������� ��� ��� ������������� ��� ���� ��� ��������� �����9�&���� ��������� ������ $$� �� "&��� ��� ���� ��� ��� ��� ����������� �$�� ��������������4�
������ �����%��&���
)������� ������ � ��/�������� ����" �����&����4�5�$ ������ �����0������������ ����������� � ��/������������ �������&��������" �������������7�������������7���� 9��������������7��������� �������� �������������4�2����������� ���������� ��*������$ �����7�� �����0��4
5�����6������ ��� ��������������������� ����������� �� ����$������$ ���*������������6���������� �����
� )����&��������������%���� � ����$�����7��������������� ���" �� ��������� �������������4���������$������7�������� ������������ ��*�������� ���� �������������&�����" �7 �������� ��7�.��� ������������������ ��4�2��$�������������������� ��*��7 ��������� �� ������&��� � ����'&�$��7 ������������������ ��/������$$� ���������� ������ ���� ���7�.��� ���4�������������������������� ���� ��� �� ������ ���*�������7������� ���������������:������������$$� ������������ ���������� ������'&�$��7 �����������������$�&��������� ����;��� ��;�� �0������������ ����������������������:������������� *�������������-�� ���������� ����� ���� � � ���������&���������������� ���9�� ��� ��������������������:����������� �������������� 6���������� ���������� ��4
������������ ���������������������������7&�� �����������&������ ������������ ������������ ����9�&����$������7����
��� ����&�������������� ���*�������������&������������ ������� ��������������������� ���� ���*������������������ ����� ������� ���������������7����7�� ��7������� �����%���� �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
4
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=",'% >'
-.&:,'
@A' (D(,;&' +.,"E"' #3 $3"-B',"'% 23*"> :'3, )1>"?%'% >' &.+,#+,
)'&#+)1
7F
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
16
77
56'%-"-' M8 0"&:>' N#,-B
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 )"#$%#&&'
)' (123'+-' .=,'+3
V3,,.+ 7
V3,,.+ G
7G
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
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, sij’appuie 2X sur le boutton 1, la montre passe en mode “modification”. Chaquepression sur le boutton 2, incrémente l’heure d’une unité. Si j’appuie encore un fois surle boutton 1, je peux régler les minutes de la même façon queles heures. Si j’appuie unequatrième fois sur le boutton 1, la montre affiche à nouveau l’heure courante.
Button1
Button2
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
Button2
Button3
19
Archeo
Editer Coquis
importer croquispour publication
BDWebsite
Copier Croquis existant
Prendre Notes
Faire Croquis
Archeologiste
Archeologiste ApprentiArcheologiste Expert
<<Include>>
<<Extend>>
21
monauto
Consulter Fiche
Cloturer Fiche Reparation
Gerer FicheReparation
Saisir Pieces
Importer Fiche
Gerer Facture
BD Stock
BD Reparation
Mecanicien
Comptable
Logiciel Comptable
Chef Atelier
Logiciel Reparation
Magasinier
<<Extend>>
<<Include>>
<<Extend>>
<<Include>>
<<Include>>
22
ATM
Introduire carte
Login
Faire Domiciliation
Recharger Proton
Changer Password
Faire Virement InternationalFaire Virement National
Recharge ATM
obtient statistiques
Imprimer ticket
Recevoir Extrait de compteFaire Virement
Tirer de l'argent
Prepose Banque
Client
<<Include>>
<<Extend>>
<<Extend>>
<<Extend>>
<<Extend>>
23
Full - Tirer de l'argent
Use Case IDSuper Use CasePrimary Actor ClientSecondary Actor(s)Brief Description Comment un client utilise l'ATM pour retirer de l'argentPreconditions Client doit avoir une carte
Flow of Events
Actor Input System Response1 Le client entre la carte2 Le système lit la carte3 Le système authentifie le client4 Le client sélectionne le retrait5 Le client selectionne le montant6 Le système confirme7 Le système ejecte la carte8 Le système donne l'argent
Post-conditions Le client a l'argent
Alternative flows and exceptions
Retrait d'un montant hors limite : sytème affiche message erreurCarte bloquée dans le système : session terminée et message au clientCarte invalide : carte est directement ejectéeCarte oubliée dans le systèmeCarte illisibleMot de passe erronéCash non disponibleClient quitte session
Non-behavior requirements
Sécuriser l'ATMAdapter la visibilité arrière
AssumptionsIssueSourceAuthor forma1300Date 12-oct.-2010 14:03:58
24
vente
expédier la commande
sortir les articles
facturer la commande
traiter commande
paie la facture
commande un produit
Entrepot
Vente
Caisse
Client
25
cafetiere
Allumer Cafetière
Mettre Capsule Ejecter Capsule Remplir Reservoir
Placer Tasse
Produire caféRetirer tasseEteindre cafetiere
Préchauffage
Appuyer boutonSelectionner
quantité
[tant que pas prete]
[tant que quantité pas atteinte]
non
oui
[Reservoir vide?]
oui
non
[Capsule présente?]
26
vente
Client Vente Entrepot Caisse
commande produit Traite commande
Verifie stock
Notification Client
Recommender Stock
Sortir articleFacturerPayer
Expedier article Encaisser
oui
client insolvablenon
[Paiement ok?]
oui
non
[stock ok?]
27
monautoReparation
Chef Atelier Mecanicien Magasinier Comptable
creer fiche Saisir pieces
Saisir travail
Importer Fiche
Facturer
Consulter Fiche
[tant que reparation pas terminée]
28
MonAutoCreerFiche
Chef Atelier Logiciel Reparation
Saisit criteres recherche Donne Liste Voitures
Saisit Info Vehicule
Selectionne Voiture
Fournit Info Vehicule
Saisit demande reparation
Saisit dates reception/restitution
Fournit Liste Assurance
Cloture Fiche
selectionne Assureur
non
oui
Intervention Assurance
non
oui
[Sous garantie?]
oui
non
Voiture Existe?
29
CafetiereSimple
Allumer cafetiere
verifier niveau eau
Remplir reservoir placer la dosette préchauffage
Placer tasse
Sélection qté
Produire café
retire tasse
eteindre cafetiere
[tant que qté pas atteinte]
[préchauffage ok]
[tant que cafetiere pas a t°][reservoir plein]
[reservoir vide]
30
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()
Enregistreur
-etiquette-marque-modele-longueur : integer-type
Cassette
-label-dateEnreg : date-longueur : integer-NumTel
Enregistrement
-auteur-sujetMessage-NumTelAuteur
Message
*
1
31
monauto
-dateEntree : date-dateSortie : date
+consulter()+facturer()+definirDevis()+determinerTravaux()
Reparation
-modele-annee : date-cylindree : integer-carburant : boleean
Vehicule
-nom-addresse
+enregistrer()
Client
-prix : integer-date : date
+payer()
Vente
-numTVA : integer-raisonSociale
PersMorale
-prenom
PersPhysique
-dateEmission : date
+emettre()
Facture
-NumPolice : integer-Compagnie-duree : integer
+contracterPolice()+definirOptions()+payer()
Assurance
-numGarantie : integer-duree : integer-dateDebut : date
+souscrire()+etendre()
Garantie
+assignerReparation()
ChefAtelier
0..*0..*
1..*
1..*
assureVehicule
0..*
1
se rapporte
0..*
1
appartient
0..*
0..* prise en compte
0..*
1..*
est facturee
1
1..*
assigné
assureReparation
sous garantie
32
Immo
ImmoSys
-ID
<<ORM Persistable>>Bien
-ID
<<ORM Persistable>>Personne
-ID
<<ORM Persistable>>Annonce
-ID
<<ORM Persistable>>visite
-nom
<<ORM Persistable>>Particulier
-numTVA : integer
<<ORM Persistable>>Agence
-type
<<ORM Persistable>>Maison
-etage
<<ORM Persistable>>Appartement
Pour MySQL/Java
0..*
1
annonces
personne
1..*0..*
biens visites
1
1
annonce
bien
1..*
0..* personnes
visites
33
sd guichetier
moduleCentral : ModuleCentral
Guichetier
guichet : Guichet
10: notifieRetrait()
9: debit
8: verifieSolde()
7: retraitLiquide()
6: demandeOperationType()
5: compteValide
4: validerCompte()
3: saisirCompte()
2: session ouverte
1: ouvertureSession()
34
sd printer
loop
[While File not printed]
alt
[printer available and file NOT IN queue]
[printer not available and file NOT IN queue]
[printer avalable and file IN queue]
: queue: printer: server:pc
: user
6: call(file)
7: print (file)
5: store (file)
4: print (file)
3: print (file)
2: print (file)
1: print(file)
35
sd montre
loop
[While minutes not set]
loop
[0,2]
: Timer: LCDDisplaybut2 : buttonbut1: button
:user
8: push()
7: release()
6: visualise()
5: displayNewTime()
4: incrementMinutes()
3: push()
2: blinkMinutes()
1: push()
36
sd Ascenceur
alt
[PosLift > < PosUser]
[PosLift = PosUser]
alt
[PosLift > PosUser]
[PosLift < PosUser]
alt
[PosLift < SelectedLevel]
[PosLift > SelectedLevel]
: porte: ascenceur: tableau: voyant
: user
21: close()
20: switchOff()
19: open()
18:
17: GoDown(SelectedLevel)
16:
15: GoUp(SelectedLevel)
14: close()
13: switchOn()
12: selectLevel()
10: switchOff()
8: switchOff()
11: open()
9: open()
7:
6: GoUp(PsoUser)
5:
4: GoDown(PosUser)
3: close()
2: switchOn()
1: callLift()
37
sd guichetier - Communications
10: notifieRetrait()
9: debit
8: verifieSolde()
7: retraitLiquide()
6: demandeOperationType()
5: compteValide
4: validerCompte()
3: saisirCompte()
2: session ouverte
1: ouvertureSession()
moduleCentral : ModuleCentral
Guichetier
guichet : Guichet
39
sd montre - Communications
8:
7: release()
6: visualise()
5: displayNewTime()
4: incrementMinutes()
3: push()
2: blinkMinutes()
1: push()
: Timer: LCDDisplay
but2 : button
but1: button
:user
40
sd printer - Communications
6: call(file)7: print (file)
5: store (file)
4: print (file)
3: print (file)
2: print (file)
1: print(file)
: queue : printer
: server:pc
: user
41
sd Ascenceur - Communications
21: close()
20: switchOff()
19: open()
18:
17: GoDown(SelectedLevel)
16:
15: GoUp(SelectedLevel)
14: close()
13: switchOn()
12: selectLevel()
10: switchOff()
8: switchOff()
11: open()9: open()
7:
6: GoUp(PsoUser)
5:
4: GoDown(PosUser)
3: close()
2: switchOn()
1: callLift()
: porte
: ascenceur
: tableau : voyant
: user
42
ascenceur
GoDown
GoUp
PosLift < Selection
Porte ouverte?
Ouvert
Fermé
EnMouvement
Arreté
PosLift = PosUser
[Etage atteint]
[Etage atteint]
[PosLift >< Selection]
[PosLift >< Selection]
non
oui
non
oui
close(doors)open(doors)
non
ouicallLift()
43
Montre
do / AfficherHeureMinutes
do / incrémenteHeure() do / incrémenteMinutes
do / AfficherHeureMin ModifiéAffichage New Time
Réglage MinuteRéglage Heure
Affichage Normal
Modification
[batteryOff]
push(bouton1)
push(bouton2)
push(bouton1)
push(bouton2)
push(bouton1) [2x]
[bouton non appuyé]
[batteryOn]
44
3tiers
<<component>>Client
<<component>>WebServer-Apache
<<component>>ApplicationServer -Websphere
<<component>>DBPret
<<component>>RDBMS-SQLServer
<<component>>ApplicationPret
<<component>>OS-Linux Debian
<<component>>OS Windows Server 2008
<<use>>
45
MonAuto
<<component>>FrontEnd
<<component>>ApplicationReparation
<<component>>ApplicationComptable
<<component>>BDStock
<<component>>BDVoiture
<<component>>Valise-Diagnostic
<<use>>
<<use>>
<<use>>
<<use>>
46
DeploymentBDPret
workstationServer
BD-Server
LAN - Router
<<component>>Client <<component>>
ApplicationPret
<<component>>ApplicationServer -Websphere
<<component>>OS-Linux Debian
<<component>>WebServer-Apache
<<component>>OS Windows Server 2008
<<component>>DBPret
<<component>>RDBMS-SQLServer
<<use>>
47
DeploymentMonAuto
Workstation -Garage
Laptop - Valise
Serveur
Workstation - Administration
<<component>>ApplicationComptable
<<component>>ApplicationReparation
<<component>>BDStock
<<component>>BDVoiture
<<component>>FrontEnd
<<component>>FrontEnd
<<component>>Valise-Diagnostic
<<use>>
<<use>>
<<use>>
<<use>>
48
sd Ascenceur
:User
:Voyant
1: callLift()
2: sw itchOn()
sdswitchOn
:porte:voyant:tableau
2: open()
1: sw itchOff()
sdPosLift =PosUser
:Porte:Tableau
1: close()
sdPosLift >< PosUser
:Ascenceur:Tableau
2:
1: GoDow n(PosUser)
sdPosLift > PosUser
:Ascenceur:Tableau
2:
1: GoUp(PosUser)
sdPosLift < PosUser
:Porte:Voyant:Tableau
2: open()
1: sw itchOff()
sdswitchOff
:Porte:Voyant:Tableau
:User
3: close()
2: sw itchOn()
1: selectLevel()
sdselectLevel
:Ascenceur:Tableau
2:
1: GoUp(SelectedLevel)
sdPosLift < SelectedLevel
:Ascenceur:Tableau
2:
1: GoDow n(SelectedLevel)
sdPosLift > SelectedLevel
:Voyant:Porte:Tableau
3: close()
2: sw itchOff()
1: open()
sdClose
PosLift > SelectedLevel
PosLift < SelectedLevel
[PosLift?]
posLift < PosUserposLift > PosUser
[PosLiftUpDown?]
PosLift >< PosUser
PosLift=PosUser
[PosLift?]
49
ImmoER
+ID int(11) Nullable = falseEtage varchar(255) Nullable = trueType varchar(255) Nullable = trueDiscriminator varchar(255) Nullable = false
Bien
+ID int(11) Nullable = falseNumTVA int(11) Nullable = trueNom varchar(255) Nullable = trueDiscriminator varchar(255) Nullable = false
Personne
+ID int(11) Nullable = false#BienID int(11) Nullable = false#PersonneID int(11) Nullable = false
Annonce
+ID int(11) Nullable = false
visite
+#visiteID int(11) Nullable = false+#PersonneID int(11) Nullable = false
visite_Personne
+#visiteID int(11) Nullable = false+#BienID int(11) Nullable = false
visite_Bienbiens
annonce
bien
annonces
personne
visites
visites
personnes
50