@startuml ' convert it with additional command line argument -DRELATIVE_INCLUDE="./.." to use locally !if %variable_exists("RELATIVE_INCLUDE") !include %get_variable_value("RELATIVE_INCLUDE")/C4_Context.puml !else !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml !endif '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