-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Expand file tree
/
Copy pathsystem-overview-diagram.puml
More file actions
232 lines (193 loc) · 4.89 KB
/
system-overview-diagram.puml
File metadata and controls
232 lines (193 loc) · 4.89 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
@startuml System Overview - Design Patterns and Relationships
title Object-Oriented Design Case Studies - System Overview
skinparam packageStyle rectangle
skinparam linetype polyline
' ============================================
' HIGH-LEVEL SYSTEM OVERVIEW
' ============================================
package "Account Management Systems" #LightBlue {
[Library Management\nSystem] as LMS
[Online Shopping\nSystem] as OSS
[Hotel Management\nSystem] as HMS
}
package "Booking & Reservation Systems" #LightGreen {
[Airline Management\nSystem] as AMS
[Movie Ticket Booking\nSystem] as MTBS
[Parking Lot\nSystem] as PLS
}
package "Financial Systems" #LightYellow {
[ATM System] as ATM
[Stock Brokerage\nSystem] as SBS
}
package "Game Systems" #LightCoral {
[Chess Game] as Chess
[Blackjack Game] as Blackjack
}
package "Social & Information Systems" #Lavender {
[Stack Overflow] as SO
[LinkedIn] as LI
[Facebook] as FB
[Cricinfo] as CI
}
package "Vehicle Management Systems" #LightPink {
[Car Rental\nSystem] as CRS
[Parking Lot\nSystem] as PLS2
}
package "Service Systems" #Wheat {
[Restaurant Management\nSystem] as RMS
[Hotel Management\nSystem] as HMS2
}
' ============================================
' COMMON DESIGN PATTERNS
' ============================================
cloud "Common Design Patterns" as Patterns {
component [Singleton Pattern] as Singleton
component [Factory Pattern] as Factory
component [Strategy Pattern] as Strategy
component [Observer Pattern] as Observer
component [Command Pattern] as Command
component [State Pattern] as State
component [Composite Pattern] as Composite
component [Decorator Pattern] as Decorator
}
' ============================================
' COMMON COMPONENTS
' ============================================
database "Common Components" as Common {
component [Account/User\nManagement] as Account
component [Payment\nProcessing] as Payment
component [Notification\nSystem] as Notification
component [Search\nFunctionality] as Search
component [Booking/Reservation\nEngine] as Booking
}
' ============================================
' RELATIONSHIPS
' ============================================
' Singleton Pattern Usage
PLS ..> Singleton : uses
ATM ..> Singleton : uses
' Factory Pattern Usage
LMS ..> Factory : uses
OSS ..> Factory : uses
HMS ..> Factory : uses
AMS ..> Factory : uses
MTBS ..> Factory : uses
Chess ..> Factory : uses
' Strategy Pattern Usage
Chess ..> Strategy : uses
PLS ..> Strategy : uses
' Observer Pattern Usage
OSS ..> Observer : uses
HMS ..> Observer : uses
AMS ..> Observer : uses
MTBS ..> Observer : uses
SO ..> Observer : uses
LI ..> Observer : uses
FB ..> Observer : uses
' Command Pattern Usage
ATM ..> Command : uses
Chess ..> Command : uses
' State Pattern Usage
OSS ..> State : uses
AMS ..> State : uses
MTBS ..> State : uses
ATM ..> State : uses
' Composite Pattern Usage
OSS ..> Composite : uses
AMS ..> Composite : uses
' Common Components Usage
LMS --> Account
OSS --> Account
HMS --> Account
SO --> Account
LI --> Account
FB --> Account
OSS --> Payment
ATM --> Payment
HMS --> Payment
AMS --> Payment
MTBS --> Payment
CRS --> Payment
AMS --> Notification
MTBS --> Notification
HMS --> Notification
OSS --> Notification
LMS --> Search
OSS --> Search
SO --> Search
AMS --> Booking
MTBS --> Booking
HMS --> Booking
CRS --> Booking
' ============================================
' NOTES
' ============================================
note right of Patterns
All systems implement
multiple design patterns
for flexibility and
maintainability
end note
note bottom of Common
Reusable components
across different systems
promote code reuse and
consistency
end note
note left of LMS
<b>Key Features:</b>
• Book checkout/return
• Member management
• Fine calculation
• Reservation system
end note
note left of PLS
<b>Key Features:</b>
• Multi-floor parking
• Spot allocation
• Ticket generation
• Payment processing
end note
note right of OSS
<b>Key Features:</b>
• Shopping cart
• Order management
• Product catalog
• Shipment tracking
end note
note right of Chess
<b>Key Features:</b>
• Move validation
• Check detection
• Turn management
• Piece strategies
end note
note bottom of ATM
<b>Key Features:</b>
• Multiple transactions
• Account management
• Card authentication
• Cash handling
end note
note bottom of HMS
<b>Key Features:</b>
• Room booking
• Multi-location support
• Guest management
• Service tracking
end note
note bottom of AMS
<b>Key Features:</b>
• Flight scheduling
• Seat reservation
• Itinerary management
• Passenger tracking
end note
note bottom of MTBS
<b>Key Features:</b>
• Show scheduling
• Seat selection
• Real-time availability
• Booking confirmation
end note
@enduml