PlantUML.puml 1.54 KB
Newer Older
Philippe Lefebvre's avatar
Philippe Lefebvre committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@startuml
class Client {
  Telephone: int {key}
  Nom: string
  Adresse: string
}

abstract Compte <<abstract>> {
  DateCreation: date {key}
  Solde: int
  Statut: [Ouvert, Fermé, Bloqué]
  Solde()
}

class Courant {
  DecouvertAutorise: real {DecouvertAutorise <= 0 et Solde >= DecouvertAutorise}
  DebutDecouvert: date
  MinMois: int
  MaxMois: int {MinMois <= MaxMois}
}

class Epargne {
  Plafond: int {Plafond >= 0}
  Interet: real {Interet >= 0}
}

class Revolving {
  MinimumNegocie: int {Minimum <= 0, Solde >= MinimumNegocie}
  TauxJournalier: real {TauxJournalier >= 0}
  calculInteret()
}

abstract Operation <<abstract>> {
  Montant: int
  Date: date
  Etat: [Non traitée, Traitée]
}

class Virement {
  etatOperationVirement()
}

class CarteBleue {
  etatOperationCarteBleue()
}

class Guichet {
  etatOperationGuichet()
}

class Cheque {
  etatOperationCheque()
}

Client "1" -- "0..n" Operation : effectue >
Client "1..n" -- "0..n" Compte : a >
Virement "0..n" --- "1" Courant : affecte >
Virement "0..n" --- "1" Epargne : affecte >
Virement "0..n" --- "1" Revolving : affecte >
Guichet "0..n" --- "1" Courant : affecte >
Guichet "0..n" --- "1" Epargne : affecte >
Guichet "0..n" --- "1" Revolving : affecte >
CarteBleue "0..n" --- "1" Courant : affecte >
CarteBleue "0..n" --- "1" Revolving : affecte >
Cheque "0..n" --- "1" Courant : affecte >
Cheque "0..n" --- "1" Revolving : affecte >

Operation <|-- Virement
Operation <|-- Guichet
Operation <|-- CarteBleue
Operation <|-- Cheque
Courant --|> Compte
Epargne --|> Compte
Revolving --|> Compte
Leo Peron's avatar
Leo Peron committed
75
@enduml