From cf7cf60f24f83a66a8df96b7a44cc4574502b194 Mon Sep 17 00:00:00 2001 From: Chris Charabaruk Date: Fri, 9 Nov 2018 20:32:31 -0500 Subject: [PATCH] Add enterprise boundary macro Adds a new `Enterprise_Boundary` macro based on the system landscape diagram type from the C4 model (the so-called "Level 0"). Also includes an example system landscape diagram. --- C4_Context.puml | 1 + ...4_Context Diagram Sample - enterprise.puml | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 samples/C4_Context Diagram Sample - enterprise.puml diff --git a/C4_Context.puml b/C4_Context.puml index 2947f78..1ee01b5 100644 --- a/C4_Context.puml +++ b/C4_Context.puml @@ -78,4 +78,5 @@ endlegend ' 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") \ No newline at end of file diff --git a/samples/C4_Context Diagram Sample - enterprise.puml b/samples/C4_Context Diagram Sample - enterprise.puml new file mode 100644 index 0000000..c58f636 --- /dev/null +++ b/samples/C4_Context Diagram Sample - enterprise.puml @@ -0,0 +1,42 @@ +@startuml "enterprise" +!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Context.puml +' uncomment the following line and comment the first to use locally +' !include C4_Context.puml + +LAYOUT_TOP_DOWN +'LAYOUT_AS_SKETCH +LAYOUT_WITH_LEGEND + +Person(customer, "Customer", "A customer of Widgets Limited.") + +Enterprise_Boundary(c0, "Widgets Limited") { + Person(csa, "Customer Service Agent", "Deals with customer enquiries.") + + System(ecommerce, "E-commerce System", "Allows customers to buy widgts online via the widgets.com website.") + + System(fulfilment, "Fulfilment System", "Responsible for processing and shipping of customer orders.") +} + +System(taxamo, "Taxamo", "Calculates local tax (for EU B2B customers) and acts as a front-end for Braintree Payments.") + +System(braintree, "Braintree Payments", "Processes credit card payments on behalf of Widgets Limited.") + +System(post, "Jersey Post", "Calculates worldwide shipping costs for packages.") + +Rel_R(customer, csa, "Asks questions to", "Telephone") + +Rel_R(customer, ecommerce, "Places orders for widgets using") + +Rel(csa, ecommerce, "Looks up order information using") + +Rel_R(ecommerce, fulfilment, "Sends order information to") + +Rel_D(fulfilment, post, "Gets shipping charges from") + +Rel_D(ecommerce, taxamo, "Delegates credit card processing to") + +Rel_L(taxamo, braintree, "Uses for credit card processing") + +Lay_D(customer, braintree) + +@enduml \ No newline at end of file