Vous êtes sur la page 1sur 50

!

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

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

    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



 %&
)    /  " &
45 $
 0   
/ 
 &
" 
 7  

7

 9

 7  
 
   42
     * 

$
7 04
56 
      $  $
*  6 
   
 )&
 %   $
7    "       4
$
7       *
    &
" 7    
7.     42$   *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
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>"?%'% >' &.+,#+, 4
)'&#+)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 Button1
lorsque j’appuie sur le Button3
boutton 2 plus de deux
secondes, les heures ou
les minutes avancent très
rapidement jusqu’à ce Button2

que je relâche la pression


• On ajoute un bouton 3 qui
permet de rétro-éclairer
l’écran LCD

19
Exercice 4 : cabine téléphonique
• Modélisez le fonctionnement d’une cabine
téléphonique

20
Archeo

Editer Coquis
Faire Croquis
<<Include>>

Archeologiste
<<Extend>>

Copier Croquis existant

Prendre Notes

Archeologiste Expert Archeologiste Apprenti

importer croquis
pour publication

Website
BD

21
monauto

Logiciel Reparation

Saisir Pieces

BD Stock Comptable
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

<<Include>>
Faire Domiciliation
<<Extend>>

<<Extend>> Introduire carte

Recevoir Extrait de compte


Faire Virement <<Extend>>

Faire Virement National


Faire Virement International

23
Full - Tirer de l'argent
Use Case ID
Super Use Case
Primary Actor Client
Secondary
Actor(s)
Brief Description Comment un client utilise l'ATM pour retirer de l'argent
Preconditions 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
Flow of Events 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
Post-conditions 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
Alternative flows Carte oubliée dans le système
and exceptions Carte illisible
Mot de passe erroné
Cash non disponible
Client quitte session
Non-behavior Sécuriser l'ATM
requirements Adapter la visibilité arrière
Assumptions
Issue
Source
Author forma1300
Date 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

[Capsule présente?] [Reservoir vide?]

oui

non oui

Mettre Capsule Ejecter Capsule Remplir Reservoir

non

Selectionner
Placer Tasse Appuyer bouton
quantité

[tant que quantité pas atteinte]

Eteindre cafetiere Retirer tasse Produire café

26
vente

Client Vente Entrepot Caisse

Verifie stock

commande produit Traite commande


Recommender Stock [stock ok?]

non
Notification Client

oui

Payer Facturer Sortir article


oui

[Paiement ok?] Expedier article Encaisser

non
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 Cassette
-marque -etiquette
-modele -marque
-prix : integer -modele
-annee : date -longueur : integer
-long : integer -type
-largeur : integer
-couleur
-position 1
-volume : integer
-poids : integer
+enregistrer()
+ecouter()
+rebobiner() *
+avancer() Enregistrement Message
+ejecter() -label -auteur
+reglerVolume() -dateEnreg : date -sujetMessage
+stopper() -longueur : integer -NumTelAuteur
+marquerPause() -NumTel
+afficherPosition()

31
monauto

est facturee Facture


assureReparation
0..* -dateEmission : date
0..* +emettre()
0..* 1..*
Assurance
Reparation
-NumPolice : integer
-Compagnie -dateEntree : date
-duree : integer 0..* -dateSortie : date
se rapporte 0..* prise en compte
+contracterPolice() +consulter()
+definirOptions() +facturer()
+payer() 1 +definirDevis()
+determinerTravaux() 0..*
Vehicule
1..* Garantie
-modele 1 1..*
assureVehicule -annee : date -numGarantie : integer
sous garantie 0..* -duree : integer
1..* -cylindree : integer
-carburant : boleean -dateDebut : date
+souscrire()
+etendre()
Vente appartient Client
-prix : integer -nom
-date : date -addresse
+payer() +enregistrer()
ChefAtelier
assigné
+assignerReparation()
1

PersMorale
PersPhysique
-numTVA : integer
-raisonSociale -prenom

32
Immo

ImmoSys

1..*
<<ORM Persistable>> 0..* <<ORM Persistable>>
Bien visite 0..* personnes <<ORM Persistable>>
biens visites Personne
-ID -ID visites 1..*
-ID

1
personne
bien
1

<<ORM Persistable>>
annonce Particulier
<<ORM Persistable>> 0..*
Annonce -nom
1 annonces
-ID
<<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:
10: switchOff()
17: GoDown(SelectedLevel)

6: GoUp(PsoUser)
20: switchOff()
13: switchOn() 2: switchOn()
15: GoUp(SelectedLevel)
4: GoDown(PosUser)
8: switchOff()

3: close()
: porte : tableau : voyant

9: open()
11: open()
12: selectLevel()
19: open()
14: close()
1: callLift()
21: close()

: user

42
ascenceur

Arreté

non
Fermé
PosLift = PosUser
callLift() oui
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 Réglage Minute


do / incrémenteHeure() do / incrémenteMinutes

push(bouton1)

push(bouton1)

Affichage New Time


do / AfficherHeureMin Modifié

44
3tiers

<<component>>
ApplicationPret

<<use>>

<<component>> <<component>> <<component>>


Client ApplicationServer -Websphere DBPret

<<component>> <<component>>
WebServer-Apache RDBMS-SQLServer

<<component>> <<component>>
OS-Linux Debian 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

<<component>>
BD-Server
WebServer-Apache

<<component>>
DBPret
<<component>>
OS-Linux Debian

<<component>>
RDBMS-SQLServer

LAN - Router
<<component>>
OS Windows Server 2008

47
DeploymentMonAuto

Workstation - Administration

<<component>>
Laptop - Valise FrontEnd

<<component>>
Valise-Diagnostic

Serveur

<<component>>
ApplicationComptable

<<use>>
<<component>>
<<use>> ApplicationReparation

Workstation -Garage

<<use>>
<<component>>
FrontEnd <<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 sd PosLift < PosUser


:Tableau :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 :Ascenceur

sd selectLevel PosLift < SelectedLevel


:Tableau :Voyant :Porte 1: GoUp(SelectedLevel)

sd Close
:User 1: selectLevel() 2:
2: sw itchOn() :Tableau :Porte :Voyant

3: close()
1: open()

2: sw itchOff()
[PosLift?]
sd PosLift > SelectedLevel
:Tableau :Ascenceur 3: close()

PosLift > SelectedLevel


1: GoDow n(SelectedLevel)

2:

49
ImmoER

Personne
+ID int(11) Nullable = false visites
NumTVA int(11) Nullable = true visite_Personne
Nom varchar(255) Nullable = true personne +#visiteID int(11) Nullable = false
Discriminator varchar(255) Nullable = false +#PersonneID int(11) Nullable = false
personnes
annonces
Annonce
visite +ID int(11) Nullable = false
+ID int(11) Nullable = false #BienID int(11) Nullable = false
#PersonneID int(11) Nullable = false
annonce
bien biens
visite_Bien
Bien
+#visiteID int(11) Nullable = false
+ID int(11) Nullable = false visites +#BienID int(11) Nullable = false
Etage varchar(255) Nullable = true
Type varchar(255) Nullable = true
Discriminator varchar(255) Nullable = false

50