forked from plantuml-stdlib/C4-PlantUML
-
Notifications
You must be signed in to change notification settings - Fork 1
/
C4_Context.puml
150 lines (118 loc) · 4.25 KB
/
C4_Context.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
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
!include https://raw.githubusercontent.com/stawirej/C4-PlantUML/master/C4.puml
' uncomment the following line and comment the first to use locally
' !include C4.puml
' Scope: A single software system.
' Primary elements: The software system in scope.
' Supporting elements: People and software systems directly connected to the software system in scope.
' Intended audience: Everybody, both technical and non-technical people, inside and outside of the software development team.
' Colors
' ##################################
!procedure PERSON_BG_COLOR()
#08427B
!endprocedure
!procedure EXTERNAL_PERSON_BG_COLOR()
#686868
!endprocedure
!procedure SYSTEM_BG_COLOR()
#1168BD
!endprocedure
!procedure EXTERNAL_SYSTEM_BG_COLOR()
#999999
!endprocedure
' Styling
' ##################################
skinparam rectangle<<person>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor PERSON_BG_COLOR()
BorderColor #073B6F
}
skinparam rectangle<<external_person>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor EXTERNAL_PERSON_BG_COLOR()
BorderColor #8A8A8A
}
skinparam rectangle<<system>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor SYSTEM_BG_COLOR()
BorderColor #3C7FC0
}
skinparam rectangle<<external_system>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor EXTERNAL_SYSTEM_BG_COLOR()
BorderColor #8A8A8A
}
skinparam database<<system>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor SYSTEM_BG_COLOR()
BorderColor #3C7FC0
}
skinparam database<<external_system>> {
StereotypeFontColor ELEMENT_FONT_COLOR()
FontColor ELEMENT_FONT_COLOR()
BackgroundColor EXTERNAL_SYSTEM_BG_COLOR()
BorderColor #8A8A8A
}
!$PERSON_ICON_SCALE=6
' Layout
' ##################################
!procedure LAYOUT_WITH_LEGEND()
hide stereotype
legend right
|= |= Type |
|<PERSON_BG_COLOR()> | person |
|<EXTERNAL_PERSON_BG_COLOR()> | external person |
|<SYSTEM_BG_COLOR()> | system |
|<EXTERNAL_SYSTEM_BG_COLOR()> | external system |
endlegend
!endprocedure
' Elements
' ##################################
!unquoted procedure Person(e_alias, e_label)
rectangle "<&person,scale=$PERSON_ICON_SCALE>\n==e_label" <<person>> as e_alias
!endprocedure
!unquoted procedure Person(e_alias, e_label, e_descr)
rectangle "<&person,scale=$PERSON_ICON_SCALE>\n==e_label\n\n e_descr" <<person>> as e_alias
!endprocedure
!unquoted procedure Person_Ext(e_alias, e_label)
rectangle "<&person,scale=$PERSON_ICON_SCALE>\n==e_label" <<external_person>> as e_alias
!endprocedure
!unquoted procedure Person_Ext(e_alias, e_label, e_descr)
rectangle "<&person,scale=$PERSON_ICON_SCALE>\n==e_label\n\n e_descr" <<external_person>> as e_alias
!endprocedure
!unquoted procedure System(e_alias, e_label)
rectangle "==e_label" <<system>> as e_alias
!endprocedure
!unquoted procedure System(e_alias, e_label, e_descr)
rectangle "==e_label\n\n e_descr" <<system>> as e_alias
!endprocedure
!unquoted procedure System_Ext(e_alias, e_label)
rectangle "==e_label" <<external_system>> as e_alias
!endprocedure
!unquoted procedure System_Ext(e_alias, e_label, e_descr)
rectangle "==e_label\n\n e_descr" <<external_system>> as e_alias
!endprocedure
!unquoted procedure SystemDb(e_alias, e_label)
database "==e_label" <<system>> as e_alias
!endprocedure
!unquoted procedure SystemDb(e_alias, e_label, e_descr)
database "==e_label\n\n e_descr" <<system>> as e_alias
!endprocedure
!unquoted procedure SystemDb_Ext(e_alias, e_label)
database "==e_label" <<external_system>> as e_alias
!endprocedure
!unquoted procedure SystemDb_Ext(e_alias, e_label, e_descr)
database "==e_label\n\n e_descr" <<external_system>> as e_alias
!endprocedure
' Boundaries
' ##################################
!unquoted procedure Enterprise_Boundary(e_alias, e_label)
Boundary(e_alias, e_label, "Enterprise")
!endprocedure
!unquoted procedure System_Boundary(e_alias, e_label)
Boundary(e_alias, e_label, "System")
!endprocedure