Merge pull request #3 from coldacid/feature/enterprise

Add enterprise boundaries
pull/4/head
Ricardo Niepel 7 years ago committed by GitHub
commit e8bbdef736
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -145,6 +145,19 @@
],
"description": "Add a System Boundary to C4 diagram"
},
"C4_Enterprise_Boundary": {
"scope": "diagram",
"prefix": [
"Enterprise Boundary",
"Boundary for Enterprise"
],
"body":[
"Enterprise_Boundary(${1:alias}, \"${2:label}\"){",
"\t$0",
"}"
],
"description": "Add an Enterprise Boundary to C4 diagram"
},
"C4_Relationship": {
"scope": "diagram",
"prefix": "Relationship",
@ -195,7 +208,7 @@
"scope": "diagram",
"prefix": [
"Boundary with type"
]
],
"body": [
"Boundary(${1:alias}, \"${2:label}\", \"${3:type}\"){",
"\t$0",

@ -27,7 +27,6 @@ skinparam Arrow {
skinparam rectangle<<boundary>> {
Shadowing false
StereotypeFontSize 0
FontSize 12
FontColor #444444
BorderColor #444444
BorderStyle dashed
@ -50,7 +49,7 @@ center footer <font color=red>Warning:</font> Created for discussion, needs to b
' ##################################
!define Boundary(e_alias, e_label) rectangle "==e_label" <<boundary>> as e_alias
!define Boundary(e_alias, e_label, e_type) rectangle "==e_label [e_type]" <<boundary>> as e_alias
!define Boundary(e_alias, e_label, e_type) rectangle "==e_label\n<size:TECHN_FONT_SIZE>[e_type]</size>" <<boundary>> as e_alias
' Relationship
' ##################################

@ -46,4 +46,4 @@ endlegend
' Boundaries
' ##################################
!define Container_Boundary(e_alias, e_label) rectangle "==e_label [Container]" <<boundary>> as e_alias
!define Container_Boundary(e_alias, e_label) Boundary(e_alias, e_label, "Container")

@ -78,4 +78,5 @@ endlegend
' Boundaries
' ##################################
!define System_Boundary(e_alias, e_label) rectangle "==e_label [System]" <<boundary>> as e_alias
!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")

@ -73,9 +73,9 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS")
## Supported Diagram Types
* System Context diagram
* System Context & System Landscape diagrams
* Import: `!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Context.puml`
* Macros: `Person`, `Person_Ext`, `System`, `System_Ext`, `Boundary`, `System_Boundary`
* Macros: `Person`, `Person_Ext`, `System`, `System_Ext`, `Boundary`, `System_Boundary`, `Enterprise_Boundary`
* Container diagram
* Import: `!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml`
* Additional Macros: `Container`, `Container_Boundary`
@ -83,7 +83,7 @@ Rel(web_app, twitter, "Gets tweets from", "HTTPS")
* Import: `!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Component.puml`
* Additional Macros: `Component`
Take a look at each of the [C4 Model Core Diagram Samples](samples/C4CoreDiagrams.md).
Take a look at each of the [C4 Model Diagram Samples](samples/C4CoreDiagrams.md).
## Snippets for Visual Studio Code

@ -1,21 +1,31 @@
# C4 Model Core Diagrams
# C4 Model Diagrams
The following samples are reproductions with C4-PlantUML from [C4 model core diagrams](http://c4model.com/#coreDiagrams) created by [Simon Brown](http://simonbrown.je/).
## System Context Diagram
## Core Diagrams
### System Context Diagram
Source: [C4_Context Diagram Sample - bigbankplc.puml](C4_Context%20Diagram%20Sample%20-%20bigbankplc.puml)
![System Context diagram for Internet Banking System](http://www.plantuml.com/plantuml/png/VLF1Zjem4BqZyGzJBgKI2vUUUjfT6hKh0KKBgEefcZX3i71iP4yA_7t78Q51qDxiyPitxxsHdmEZvweq_Tu7RPMfSggyWHtp8NoPJ3mUnuNcNPLLWRnobidoMBboyguL-jmjD1t8JAQVdvO6BM_ciqc9WSbBAPr6_8d7Xvh_8rHMEajX0DuHR9qnxgXj0KPR0hGvt3nh7-JaG2Q3SGgDEKUILYRS3UZtPY-_VcpMwS-tzVTqbdnB5bzZbJKRWjLPP9NGj42kiV1OYWeFRrBobXXUqUwZe0iszYx91sU7gWhiIl8Z65mgQAxWQVCsaCSNQ97WjhMDJ50ZE4g6S6WxOmrGALTP3kF1ftxlCd2ONIZJK5-5xn_Awb4nlN2T5s9KlpKTGLlnL29hPm4pLzLnQdyxTLJdNUAUu83d6Ff5I2ibJKuyB56RlrgIftY7S5Mm5dkw5YYUvbfv5zoM8Jcf7Tg2WBeD7PijjztA0aY8vktvWSqLEqy1PFjjeaeAq2JrmEmra577B7kq0LM4oOrODMRVoNHsUnV_9b28G86bhwZs7UnjDYkoUMWCnqsqJGlInIvp_cwp_sclNS_NouRZKUirkLRWin387_W3 "System Context diagram for Internet Banking System")
## Container Diagram
### Container Diagram
Source: [C4_Container Diagram Sample - bigbankplc.puml](C4_Container%20Diagram%20Sample%20-%20bigbankplc.puml)
![Container diagram for Internet Banking System](http://www.plantuml.com/plantuml/png/bLN1Rjj83Bq7o3zmlOTD0IN60dlggOvjD6bZHusSfdiIg15j3pgQ4MP6Tet5_diviYHBSO3kwgIXoCT7yd7qmNcqlYhKvSLlKWjLvLHP1LllI_T-FBQulzb8lwsoof4LHdlI_aQOOlma1ThSB2MLfCRJlwvZXTe_Bnx61JfFbatfbFrHQh8tPPtX3wWqnnQC0NvBi3PAcRtK6r3i1QXp67oMrl6R0SuDoWXKwX10MgBmHehBYuV9tu_FgtJr6AUpnvSb1pIMIP8cd-UhwLtdytA_kaiVvX_dorc8zD8h1cqH8PUuiLWmJGltNBdLvE4MzVV0E3bmbKK8Yyawewz4vRmfo4OmxTv64sZDODPrKHd7Hx3dda9P1wAgRO12c4fxDteNG8_mwIsRShI7A_4dexqcCNe7_rnU03yTwQizPIcM9Nk_K0QJibGyA2-D7h7f4-umWgIqeOB5rscmpKZ97JEfsR4Ql1JG3BgUI31tYREs-dWIU0vJkvB1Hmb_LtGTuuP2-ZPj8gmiVGGJlQaKsc2EhTd9d1pmODzEisQz1Ewef3y49OYgRgQ3dSGG8YrmmP1PisTzdbCgJ2OLDGrPr8UMrFJt2BvXWToB8HaMOo4zvU2gp36PPd3_XPmxOtSa03djfA1pVZbwpD1Hc4Fp6iWaNnvWSFR6ChMmWs1f8vsto9b1QjPcKOytWYqxvu0LAqjOodb-4fMBWh38ELwW3H_8Yvjp6XcAxwHpxfCCeetltnREpB2RFSKD-lQB_eIMC738_MzFuFCV_eeAb2frjO4HvzSBFZSB5bAikFkoHkTTMKXXZJDh3_CVOekQLNQC3CWzq8R52PP1zPhNcLwjSA-_GOVDj0KRkafwRGRCJELFeuwwlOs0Xw8TrZNtEdrvyKIgTpkS5lJPaGlPxrQhE0ckGyVZElt2QI3mshTDcIv9RhQPwLq9HyHsuLkmsZfKG9iKtK6B23ubZylnW40_xVyBJM_P_SJjj013c2V2tC7QcgA-XFQMDvAlA1EW6-JPxVHKR43jjUMLf186Ta3NmLgZzBYyaj-GnZ2mSk7IxHWaYrNS8dK53UBFHDXs9m2CcnPzutzcrw4F7Ci_ify0 "Container diagram for Internet Banking System")
## Component Diagram
### Component Diagram
Source: [C4_Component Diagram Sample - bigbankplc.puml](C4_Component%20Diagram%20Sample%20-%20bigbankplc.puml)
![Component diagram for Internet Banking System - API Application](http://www.plantuml.com/plantuml/png/fLLBJnin4BuZyH-cERGW0Rdqr1CXq0BY4H7eunJDUYSRjtwiR2zfLFM_TyQRnoP55L9pYNSy_kQRRpxldiQ48JNMxE-zqKwPfgGc69YbLCSF_Nx0-KcbqwmfcaX1UPV8fHFbRVz1AmoblzDKa-aFtn-F3BhqT7lJjnWJ1GvDXjxMtic9EbTu1utZivOZa6O4Ks-CdsjNWT6E05q9MziwH5vvuDfWl49Z5WAo8WelbDZVknbyktzwd7ovUhoSt5nykhWxbsZIoV21LJQK6gk0bYa4kEAkWgC4P-X-29lnWZkmS0o3qHKCwjfmhqbx9q13rW2PRJY8DHv1Rym767c45NLJUxpr7Pyngg3hb5j3LpK6W-oCWd_M9KNWbdAhUaMXM5AOibA2WqQdXMYWcfYyfH3XMQESqG7cL40H_9n7Sz8xx7ApGktM5zfaLbBpAreCscsNP-6jJbH2R8h8vNtw3pgshRVyA-bPAzhXLHPS_XmJ5XX9g3oGmHOOLc4OgnbPbDrnye5fYlSWKALZ2ZcR2VBWR5uVmGpZZ5l0Xccuj1m0g42bFAA9Hu1AKOnieeeVAAbCgntpvE9dEh155C6Ov9HTGJjEw52HWVbf5abnO2rGXn1WuPkqKIXNzurBl6B-BcAMiaEaez3aZ3DB38i3h3MNtN5Wxn1-xUy1_zPMFeYwSjc8bMChWq05lbYKdNRxUGWFnDTe7PReGEvTgskKQGe4jo3B5ySVMnaETqjl6kiDbaiODvQDjdWLZxKHDtQQyzk6VHaPnJDAgpMRIwYiXVoRIIJL1FQc2B5SRdRp_EeWdPmHRb-1RMS7iIDxAMlYgdQoHw1cs3xK6EFSXx8pl6qURAGfAYpf7tQ2ZpdZ1LO3Q0y3YzIEmgunjcUnz8qKvokqz417XAT8QvKaOJEfBiFTh0r0lgWFX2MyXJc7Y2KHXjVdPyFkYGvQUuSofBnk-4jm-VWu6alsR-6Q2yWxSsdOLURr-FvkaxhEwdZhvSmsrxu6qBu6xvHSoT-GFm00 "Component diagram for Internet Banking System - API Application")
![Component diagram for Internet Banking System - API Application](http://www.plantuml.com/plantuml/png/fLLBJnin4BuZyH-cERGW0Rdqr1CXq0BY4H7eunJDUYSRjtwiR2zfLFM_TyQRnoP55L9pYNSy_kQRRpxldiQ48JNMxE-zqKwPfgGc69YbLCSF_Nx0-KcbqwmfcaX1UPV8fHFbRVz1AmoblzDKa-aFtn-F3BhqT7lJjnWJ1GvDXjxMtic9EbTu1utZivOZa6O4Ks-CdsjNWT6E05q9MziwH5vvuDfWl49Z5WAo8WelbDZVknbyktzwd7ovUhoSt5nykhWxbsZIoV21LJQK6gk0bYa4kEAkWgC4P-X-29lnWZkmS0o3qHKCwjfmhqbx9q13rW2PRJY8DHv1Rym767c45NLJUxpr7Pyngg3hb5j3LpK6W-oCWd_M9KNWbdAhUaMXM5AOibA2WqQdXMYWcfYyfH3XMQESqG7cL40H_9n7Sz8xx7ApGktM5zfaLbBpAreCscsNP-6jJbH2R8h8vNtw3pgshRVyA-bPAzhXLHPS_XmJ5XX9g3oGmHOOLc4OgnbPbDrnye5fYlSWKALZ2ZcR2VBWR5uVmGpZZ5l0Xccuj1m0g42bFAA9Hu1AKOnieeeVAAbCgntpvE9dEh155C6Ov9HTGJjEw52HWVbf5abnO2rGXn1WuPkqKIXNzurBl6B-BcAMiaEaez3aZ3DB38i3h3MNtN5Wxn1-xUy1_zPMFeYwSjc8bMChWq05lbYKdNRxUGWFnDTe7PReGEvTgskKQGe4jo3B5ySVMnaETqjl6kiDbaiODvQDjdWLZxKHDtQQyzk6VHaPnJDAgpMRIwYiXVoRIIJL1FQc2B5SRdRp_EeWdPmHRb-1RMS7iIDxAMlYgdQoHw1cs3xK6EFSXx8pl6qURAGfAYpf7tQ2ZpdZ1LO3Q0y3YzIEmgunjcUnz8qKvokqz417XAT8QvKaOJEfBiFTh0r0lgWFX2MyXJc7Y2KHXjVdPyFkYGvQUuSofBnk-4jm-VWu6alsR-6Q2yWxSsdOLURr-FvkaxhEwdZhvSmsrxu6qBu6xvHSoT-GFm00 "Component diagram for Internet Banking System - API Application")
## Supplementary Diagrams
### System Landscape Diagram
Source: [C4_Context Diagram Sample - bigbankplc-landscape.puml](C4_Context%20Diagram%Sample%20-%20bigbankplc-landscape.puml)
![System Landscape diagram for Internet Banking System](http://www.plantuml.com/plantuml/png/jPPTRzis58Rl_IiEijjuTj8koGh7g9sFhS2o5hE3N2H1S28UIuGbKYFfEkxI_pwIfZGgiZ8KQEahyNoSvxnw8-IzDgZCgiXxUib5YGeBOBJ0LMxcz6GcEKz5GS90GiAGYhBM2iiRpam6XyDXT5_WqnLfZIdD-1U2Wr_YeAB4e4XpWdzwOC_Ca29fDYLTIc6s1OS-eZDaSir52WlCDVM-HbqcIibrw70cSwdWfoD__8thrBwD-t_THJGQFSgLOAWsut55rsJe8Xws1hp0UEkFlvrAnKXrtS_C9YTWg3DY3SeIaoMcRSPEdc-OtoL7IKfBqJ4eTBZqnyTttqujUAeST8WDJzuU7a_RBCFZDzEZoouMQqLI0lE77mDrTE9-RQYJYVjrGUcDDbHyRvQ3WwEJwNcRvStPyUNPy7y5-Z5Gl_hpYa0PPmIw7jRBAIN1GF4qCxtdKsWS-potIV3SUnu5Gun31BOls8V2Qwb3rOvnJf1hx1Esk_lxGDokhNCitXQoPxZ92MRRm1yec4xGqZ6EgLDv8HLCUMf54KieywHNomvxfwUVF0lcFkm-5MShRMH1waxS2PX04Xv1Bi1a18ysRH_Mt6HGXb9_1vWaLd2ZVzw3w6yFTTsXEJScWjiBOKYLYckwtuFuA-4R38CP6Wq-k191fW8F0conyrok_vkimKZup6aDN5Wr2ZHS2a0xnRYTk6fki0ye61Iu92XnKr2rL6rDrBx03WrsRTDDvbTT95uyfd0D2UhCTswx7pMWsT7tebyWhrpW9ymp0Yw2EwvuegIM2mCNJqbcgmWehkYUvf8wjxb2Avp2WdQ9FJDIaGRCyyeZYRse5DeXUIt6VYIvKIWq9YxDFf59NaCDD6tGohmm8_MP9sJXSB7mc7L8Xv1s8VyokAYjtPowoyOFeRuzt7rruEDYqPmxOGKNN1iL910CzAeifJBVIl1e-pz8tzz-iIeUw8zVk17UEPhJQqrwBqhxwyDllyzjCfeguoOOKNidmahR7b75gD-FRH6APYIO3gvoTjunegLLA9tefOQ_LwIT4gxsJWm68ys_qBk3m_7jd78gCodeVZHmb-F1OA_tOhN--SURF-s4rxcgLTogDLHjcqYVTl_NirkB1PwEzEYDGV_wKqTUuBpDE6Caxi_xq8HgXUilQgn2dN0T9RmdmTm_n_y2 "System Landscape diagram for Internet Banking System")

@ -0,0 +1,42 @@
@startuml
!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
title System Landscape diagram for Big Bank plc
Person(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.")
Enterprise_Boundary(c0, "Big Bank plc") {
System(banking_system, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
System_Ext(atm, "ATM", "Allows customers to withdraw cash.")
System_Ext(mail_system, "E-mail system", "The internal Microsoft Exchange e-mail system.")
System_Ext(mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
Person_Ext(customer_service, "Customer Service Staff", "Customer service staff within the bank.")
Person_Ext(back_office, "Back Office Staff", "Administration and support staff within the bank.")
}
Rel_Neighbor(customer, banking_system, "Uses")
Rel_R(customer, atm, "Withdraws cash using")
Rel_Back(customer, mail_system, "Sends e-mails to")
Rel_R(customer, customer_service, "Asks questions to", "Telephone")
Rel_D(banking_system, mail_system, "Sends e-mail using")
Rel_R(atm, mainframe, "Uses")
Rel_R(banking_system, mainframe, "Uses")
Rel_D(customer_service, mainframe, "Uses")
Rel_U(back_office, mainframe, "Uses")
Lay_D(atm, banking_system)
Lay_D(atm, customer)
Lay_U(mail_system, customer)
@enduml

@ -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
Loading…
Cancel
Save