Documente Academic
Documente Profesional
Documente Cultură
"#$%&'()*)'+
,*-.(-//'$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('=
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=$$$
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 $$
#
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
&
* &
*
77
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.
!"#$%#&&'( )*"+,'%#-,".+(
15
56'%-"-' 7 8 9',%#", '+ '(:;-'
56'%-"-' G8 H&:%"&#+,'
V3,,.+ G
56'%-"-' W 8 I(-'+('3%
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.
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>>
Prendre Notes
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>>
BD Reparation
22
ATM
Recharge ATM
Prepose Banque
Client
Tirer de l'argent
Login
Changer Password
<<Extend>>
Imprimer ticket
<<Include>>
Faire Domiciliation
<<Extend>>
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
Client Vente
traiter commande
paie la facture
Entrepot
Caisse
expédier la commande
25
cafetiere
oui
non oui
non
Selectionner
Placer Tasse Appuyer bouton
quantité
26
vente
Verifie stock
non
Notification Client
oui
non
client insolvable
27
monautoReparation
Consulter Fiche
Importer Fiche
Saisir travail
Facturer
28
MonAutoCreerFiche
Voiture Existe?
oui
Selectionne Voiture
[Sous garantie?]
non
oui
oui
non
Fournit Liste Assurance
Saisit demande reparation Intervention Assurance
Cloture Fiche
selectionne Assureur
29
CafetiereSimple
Produire café
retire tasse
Allumer cafetiere
Sélection qté
eteindre cafetiere
[préchauffage ok]
[reservoir plein]
[tant que cafetiere pas a t°]
[reservoir vide]
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
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
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
: user
1: print(file)
2: print (file)
3: print (file)
loop
alt
5: store (file)
7: print (file)
35
sd montre
: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
: user
1: callLift()
2: switchOn()
alt
alt
8: switchOff()
9: open()
[PosLift = PosUser]
10: switchOff()
11: open()
12: selectLevel()
13: switchOn()
14: close()
alt
16:
17: GoDown(SelectedLevel)
18:
19: open()
20: switchOff()
21: close()
37
sd Close
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)
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
non GoDown
[Etage atteint]
[Etage atteint]
43
Montre
Affichage Normal
do / AfficherHeureMinutes
[batteryOn] [batteryOff]
push(bouton1) [2x]
Modification
push(bouton2)
push(bouton2)
push(bouton1)
push(bouton1)
44
3tiers
<<component>>
ApplicationPret
<<use>>
<<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
[PosLift?]
:User 1: callLift()
1: close()
PosLift >< PosUser
2: sw itchOn()
PosLift=PosUser
[PosLiftUpDown?]
1: sw itchOff()
2: open()
2: 2:
sdswitchOff
:Tableau :Voyant :Porte
1: sw itchOff()
2: open()
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()
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