!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/release/1-0/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 ' ################################## !define PERSON_BG_COLOR #08427B !define EXTERNAL_PERSON_BG_COLOR #686868 !define SYSTEM_BG_COLOR #1168BD !define EXTERNAL_SYSTEM_BG_COLOR #999999 ' Styling ' ################################## skinparam rectangle<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor PERSON_BG_COLOR BorderColor #073B6F } skinparam rectangle<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor EXTERNAL_PERSON_BG_COLOR BorderColor #8A8A8A } skinparam rectangle<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor SYSTEM_BG_COLOR BorderColor #3C7FC0 } skinparam rectangle<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor EXTERNAL_SYSTEM_BG_COLOR BorderColor #8A8A8A } skinparam database<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor SYSTEM_BG_COLOR BorderColor #3C7FC0 } skinparam database<> { StereotypeFontColor ELEMENT_FONT_COLOR FontColor ELEMENT_FONT_COLOR BackgroundColor EXTERNAL_SYSTEM_BG_COLOR BorderColor #8A8A8A } ' Layout ' ################################## !definelong LAYOUT_WITH_LEGEND hide stereotype legend right |= |= Type | | | person | | | external person | | | system | | | external system | endlegend !enddefinelong ' Elements ' ################################## !define Person(e_alias, e_label) rectangle "==e_label" <> as e_alias !define Person(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias !define Person_Ext(e_alias, e_label) rectangle "==e_label" <> as e_alias !define Person_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias !define System(e_alias, e_label) rectangle "==e_label" <> as e_alias !define System(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias !define System_Ext(e_alias, e_label) rectangle "==e_label" <> as e_alias !define System_Ext(e_alias, e_label, e_descr) rectangle "==e_label\n\n e_descr" <> as e_alias !define SystemDb(e_alias, e_label) database "==e_label" <> as e_alias !define SystemDb(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <> as e_alias !define SystemDb_Ext(e_alias, e_label) database "==e_label" <> as e_alias !define SystemDb_Ext(e_alias, e_label, e_descr) database "==e_label\n\n e_descr" <> as e_alias ' Boundaries ' ################################## !define Enterprise_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Enterprise") !define System_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "System")