243 lines
9.5 KiB
Plaintext
243 lines
9.5 KiB
Plaintext
|
|
!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
|
|
' ##################################
|
|
|
|
!global $PERSON_BG_COLOR = "#08427B"
|
|
!global $PERSON_BORDER_COLOR = "#073B6F"
|
|
!global $EXTERNAL_PERSON_BG_COLOR = "#686868"
|
|
!global $EXTERNAL_PERSON_BORDER_COLOR = "#8A8A8A"
|
|
!global $SYSTEM_BG_COLOR = "#1168BD"
|
|
!global $SYSTEM_BORDER_COLOR = "#3C7FC0"
|
|
!global $EXTERNAL_SYSTEM_BG_COLOR = "#999999"
|
|
!global $EXTERNAL_SYSTEM_BORDER_COLOR = "#8A8A8A"
|
|
|
|
' Styling
|
|
' ##################################
|
|
|
|
UpdateElementStyle("person", $PERSON_BG_COLOR, $ELEMENT_FONT_COLOR, $PERSON_BORDER_COLOR)
|
|
UpdateElementStyle("external_person", $EXTERNAL_PERSON_BG_COLOR, $ELEMENT_FONT_COLOR, $EXTERNAL_PERSON_BORDER_COLOR)
|
|
UpdateElementStyle("system", $SYSTEM_BG_COLOR, $ELEMENT_FONT_COLOR, $SYSTEM_BORDER_COLOR)
|
|
UpdateElementStyle("external_system", $EXTERNAL_SYSTEM_BG_COLOR, $ELEMENT_FONT_COLOR, $EXTERNAL_SYSTEM_BORDER_COLOR)
|
|
|
|
|
|
' Sprites
|
|
' ##################################
|
|
|
|
sprite $person [48x48/16] {
|
|
000000000000000000000000000000000000000000000000
|
|
000000000000000000000000000000000000000000000000
|
|
0000000000000000000049BCCA7200000000000000000000
|
|
0000000000000000006EFFFFFFFFB3000000000000000000
|
|
00000000000000001CFFFFFFFFFFFF700000000000000000
|
|
0000000000000001EFFFFFFFFFFFFFF80000000000000000
|
|
000000000000000CFFFFFFFFFFFFFFFF6000000000000000
|
|
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
|
|
00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
|
|
00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
|
|
0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
|
|
0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
|
|
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
|
|
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
|
|
0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
|
|
0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
|
|
00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
|
|
00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
|
|
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
|
|
000000000000000BFFFFFFFFFFFFFFFF5000000000000000
|
|
0000000000000001DFFFFFFFFFFFFFF70000000000000000
|
|
00000000000000000BFFFFFFFFFFFF500000000000000000
|
|
0000000000000000005DFFFFFFFFA1000000000000000000
|
|
0000000000000000000037ABB96100000000000000000000
|
|
000000000000000000000000000000000000000000000000
|
|
000000000000000000000000000000000000000000000000
|
|
000000000000025788300000000005886410000000000000
|
|
000000000007DFFFFFFD9643347BFFFFFFFB400000000000
|
|
0000000004EFFFFFFFFFFFFFFFFFFFFFFFFFFB1000000000
|
|
000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD200000000
|
|
00000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000000
|
|
0000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000
|
|
000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000
|
|
000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000
|
|
000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200000
|
|
00000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000
|
|
00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000
|
|
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
|
|
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
|
|
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
|
|
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
|
|
00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000
|
|
00000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000
|
|
000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
|
|
0000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000
|
|
000000014555555555555555555555555555555300000000
|
|
000000000000000000000000000000000000000000000000
|
|
000000000000000000000000000000000000000000000000
|
|
}
|
|
|
|
sprite $person2 [48x48/16] {
|
|
0000000000000000000049BCCA7200000000000000000000
|
|
0000000000000000006EFFFFFFFFB3000000000000000000
|
|
00000000000000001CFFFFFFFFFFFF700000000000000000
|
|
0000000000000001EFFFFFFFFFFFFFF80000000000000000
|
|
000000000000000CFFFFFFFFFFFFFFFF6000000000000000
|
|
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
|
|
00000000000001FFFFFFFFFFFFFFFFFFF900000000000000
|
|
00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000
|
|
0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000
|
|
0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000
|
|
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
|
|
0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000
|
|
0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000
|
|
0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000
|
|
00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000
|
|
00000000000000EFFFFFFFFFFFFFFFFFF800000000000000
|
|
000000000000007FFFFFFFFFFFFFFFFFF100000000000000
|
|
000000000000000BFFFFFFFFFFFFFFFF5000000000000000
|
|
0000000000000001DFFFFFFFFFFFFFF70000000000000000
|
|
00000000000000000BFFFFFFFFFFFF500000000000000000
|
|
0000000000000000005DFFFFFFFFA1000000000000000000
|
|
0000000000000000000037ABB96100000000000000000000
|
|
000000000002578888300000000005888864100000000000
|
|
0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000
|
|
00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000
|
|
0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000
|
|
000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000
|
|
00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000
|
|
0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000
|
|
0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000
|
|
0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000
|
|
000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
|
000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
|
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
|
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
|
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000
|
|
001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000
|
|
000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000
|
|
000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000
|
|
0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000
|
|
0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000
|
|
0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000
|
|
00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000
|
|
000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000
|
|
0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000
|
|
00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000
|
|
0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000
|
|
000000000002578888888888888888888864100000000000
|
|
}
|
|
|
|
' Layout
|
|
' ##################################
|
|
|
|
SetDefaultLegendEntries("person\nsystem\nexternal_person\nexternal_system")
|
|
|
|
!procedure LAYOUT_WITH_LEGEND()
|
|
hide stereotype
|
|
legend right
|
|
|<color:$LEGEND_TITLE_COLOR>**Legend**</color> |
|
|
|<$PERSON_BG_COLOR> person |
|
|
|<$SYSTEM_BG_COLOR> system|
|
|
|<$EXTERNAL_PERSON_BG_COLOR> external person |
|
|
|<$EXTERNAL_SYSTEM_BG_COLOR> external system |
|
|
endlegend
|
|
!endprocedure
|
|
|
|
!global $defaultPersonSprite = "person"
|
|
|
|
!procedure HIDE_PERSON_SPRITE()
|
|
!$defaultPersonSprite = ""
|
|
!endprocedure
|
|
|
|
!unquoted procedure SHOW_PERSON_SPRITE($sprite="")
|
|
!if ($sprite == "")
|
|
!$defaultPersonSprite = "person"
|
|
!else
|
|
!$defaultPersonSprite = $sprite
|
|
!endif
|
|
!endprocedure
|
|
|
|
' Elements
|
|
' ##################################
|
|
|
|
!function $getPerson($label, $descr, $sprite)
|
|
!if ($sprite == "") && ($defaultPersonSprite!="")
|
|
!$sprite = $defaultPersonSprite
|
|
!endif
|
|
!if ($descr == "") && ($sprite == "")
|
|
!return '=='+$label
|
|
!endif
|
|
!if ($descr == "") && ($sprite != "")
|
|
!return '<$'+$sprite+'>\n=='+$label
|
|
!endif
|
|
!if ($descr != "") && ($sprite == "")
|
|
!return '=='+$label+'\n\n '+$descr
|
|
!endif
|
|
!if ($descr != "") && ($sprite != "")
|
|
!return '<$'+$sprite+'>\n=='+$label+'\n\n '+$descr
|
|
!endif
|
|
!endfunction
|
|
|
|
!function $getSystem($label, $descr, $sprite)
|
|
!if ($descr == "") && ($sprite == "")
|
|
!return '=='+$label
|
|
!endif
|
|
!if ($descr == "") && ($sprite != "")
|
|
!return '<$'+$sprite+'>\n=='+$label
|
|
!endif
|
|
!if ($descr != "") && ($sprite == "")
|
|
!return '=='+$label+'\n\n '+$descr
|
|
!endif
|
|
!if ($descr != "") && ($sprite != "")
|
|
!return '<$'+$sprite+'>\n=='+$label+'\n\n '+$descr
|
|
!endif
|
|
!endfunction
|
|
|
|
!unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
rectangle "$getPerson($label, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
rectangle "$getPerson($label, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
rectangle "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
rectangle "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("external_system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
database "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
queue "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
database "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("external_system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="")
|
|
queue "$getSystem($label, $descr, $sprite)$getProps()" $toStereos("external_system", $tags) as $alias $getLink($link)
|
|
!endprocedure
|
|
|
|
' Boundaries
|
|
' ##################################
|
|
|
|
!unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="")
|
|
Boundary($alias, $label, "Enterprise", $tags, $link)
|
|
!endprocedure
|
|
|
|
!unquoted procedure System_Boundary($alias, $label, $tags="", $link="")
|
|
Boundary($alias, $label, "System", $tags, $link)
|
|
!endprocedure
|