myspace.voo.bemyspace.voo.be/vconsult/UML/UMLExe2.pdf · En tant qu'intermédiaire entre des...

50
1

Transcript of myspace.voo.bemyspace.voo.be/vconsult/UML/UMLExe2.pdf · En tant qu'intermédiaire entre des...

!"#$%&'()*)'+

,*-.(-//'$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-à-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

Exercice 4 : cabine téléphonique

• Modélisez le fonctionnement d’une cabine

téléphonique

20

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 Close

:Voyant:Porte:Tableau

3: close()

2: switchOff()

1: open()

38

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