-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUseCase.puml
114 lines (100 loc) · 2.93 KB
/
UseCase.puml
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
@startuml
'https://plantuml.com/use-case-diagram
:User:
:Admin:
' give more space to the diagram
scale 1.5
' make the arrows more visible
skinparam linetype ortho
' make the actors more visible
skinparam actor {
BackgroundColor FloralWhite
BorderColor Black
ArrowColor Black
}
' make the use cases less messy and more readable
skinparam usecase {
BackgroundColor FloralWhite
BorderColor Black
ArrowColor Black
FontSize 14
FontStyle bold
}
left to right direction
skinparam packageStyle rectangle
rectangle userOnly as "User only permissions"{
'User management processes'
(Log into the application) as (Login)
(Register to the application) as (Register)
(Update user preferences) as (UpdatePref)
(Delete user Account) as (DeleteUser)
'Application features for user only'
(Swipe left or right) as (Swipe)
}
rectangle adminOnly as "Admin only permissions"{
' top to bottom direction
'Application features for admin only'
(View admin analytics) as (AdminAnalyticsMenu)
(View Party distribution) as (PartyDistribution)
(View age group distribution) as (AgeGroupDistribution)
(View Popularity) as (Popularity)
' (View the number of user) as (UserCount)
' (View users by registration year) as (RegistrationYearCount)
' (View users by registration year distributed by month) as (RegistrationYearCountDistribution)
(Add new Celeb) as (AddCeleb)
}
rectangle bothPermissions as "Permission for both user and admin"{
' top to bottom direction
'Application features for both admin and user'
(Delete all Votes) as (DeleteVotes)
(View analytics) as (Analytics)
(View celeb Profile) as (ViewCelebProfile)
(Celeb Search) as (Search)
' (View company analytics) as (CompanyAnalytics)
' (View category analytics) as (CategoryAnalytics)
(View user profile) as (ViewProfile)
}
'User only'
User --> (Login)
User --> (Register)
User --> (UpdatePref)
User --> (DeleteUser)
User --> (Swipe)
User --> (DeleteVotes)
User --> (Analytics)
User --> (ViewCelebProfile)
User --> (Search)
User --> (ViewProfile)
'Admin Only'
(Login) <-- Admin
(AdminAnalyticsMenu) <-- Admin
(PartyDistribution) <-- Admin
(AgeGroupDistribution)<-- Admin
(Popularity)<-- Admin
'(Popularity) .> (UserCount):extends
'(Popularity) .> (RegistrationYearCount):extends
'(Popularity) .> (RegistrationYearCountDistribution):extends
(AddCeleb)<-- Admin
'Admin and user'
(DeleteVotes)<-- Admin
(Analytics)<-- Admin
'(Analytics) .> (CompanyAnalytics): extends
'(Analytics) .> (CategoryAnalytics): extends
(ViewCelebProfile)<-- Admin
(Search)<-- Admin
(ViewProfile)<-- Admin
'User --> (Use)
'
'Admin ---> (Use)
'
'note right of Admin : This is an example.
'
'note right of (Use)
'A note can also
'be on several lines
'end note
'
'note "This note is connected\nto several objects." as N2
'(Start) .. N2
'N2 .. (Use)
@enduml