external person, system boundary, container boundary, updated samples from c4model.com
parent
61ed9d0c1d
commit
ce478229f9
@ -1,24 +1,31 @@
|
||||
@startuml
|
||||
!include ../C4.puml
|
||||
' !includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4.puml
|
||||
|
||||
LAYOUT_WITH_LEGEND
|
||||
|
||||
title Component Diagram
|
||||
title Component diagram for Internet Banking System - API Application
|
||||
|
||||
Person(client, "Client", "A user of a system")
|
||||
package "Platform:system" <<boundary>> as platform {
|
||||
Container(api_app, "Mobile App", "Android / IOS", "Uses SDK for direct calls")
|
||||
package "Web App:container" <<boundary>> as api_dash {
|
||||
Component(c1, "User Controller", "MVC REST Controller", "Lorem ipsum")
|
||||
Component(c2, "Product Controller", "MVC REST Controller", "Lorem ipsum")
|
||||
}
|
||||
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
|
||||
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.")
|
||||
Container(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
|
||||
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
|
||||
|
||||
Container_Boundary(api, "API Application") {
|
||||
Component(sign, "Sign In Controller", "MVC Rest Controlle", "Allows users to sign in to the internet banking system")
|
||||
Component(accounts, "Accounts Summary Controller", "MVC Rest Controlle", "Provides customers with a summory of their bank accounts")
|
||||
Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.")
|
||||
Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.")
|
||||
|
||||
Rel(sign, security, "Uses")
|
||||
Rel(accounts, mbsfacade, "Uses")
|
||||
Rel(security, db, "Read & write to", "JDBC")
|
||||
Rel(mbsfacade, mbs, "Uses", "XML/HTTPS")
|
||||
}
|
||||
ExtSystem(3rdparty, "3rd Party Platform", "Implements actual business logic")
|
||||
|
||||
Rel(client, platform, "Uses")
|
||||
Rel(client, 3rdparty, "Uses")
|
||||
Rel(api_dash, 3rdparty, "Uses", "REST API")
|
||||
Rel(api_app, 3rdparty, "Uses", "SDK")
|
||||
Rel(api_app, c2, "Query", "SDK")
|
||||
Rel(api_app, c1, "Query", "SDK")
|
||||
Rel(spa, sign, "Uses", "JSON/HTTPS")
|
||||
Rel(spa, accounts, "Uses", "JSON/HTTPS")
|
||||
|
||||
Rel(ma, sign, "Uses", "JSON/HTTPS")
|
||||
Rel(ma, accounts, "Uses", "JSON/HTTPS")
|
||||
@enduml
|
||||
|
||||
@ -1,19 +1,31 @@
|
||||
@startuml
|
||||
!include ../C4.puml
|
||||
' !includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4.puml
|
||||
|
||||
LAYOUT_WITH_LEGEND
|
||||
|
||||
title Container Diagram
|
||||
title Container diagram for Internet Banking System
|
||||
|
||||
Person(client, "Client", "A user of a system")
|
||||
package "Platform" <<boundary>> as platform {
|
||||
Container(api_app, "Mobile App", "Android / IOS", "Uses SDK for direct calls")
|
||||
Container(api_dash, "Web App", "asp.net", "Covers one or more business needs")
|
||||
Person(pbc, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.")
|
||||
System_Ext(es, "E-mail system", "The internal Microsoft Exchange e-mail system.")
|
||||
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
|
||||
System_Boundary(ibs, "Internet Banking") {
|
||||
Container(wa, "Web Application", "java and Spring MVC", "Delivers the static content and the internet banking single page application.")
|
||||
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
|
||||
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.")
|
||||
Container(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
|
||||
Container(api, "API Application", "java and String MVC", "Provides internet banking functionality via a JSON/HTTP API.")
|
||||
|
||||
Rel(api, es, "Sends e-mails", "SMTP")
|
||||
Rel(api, mbs, "Uses", "XML/HTTPS")
|
||||
Rel(api, db, "Reads & writes to", "JDBC")
|
||||
Rel(wa, spa, "Delivers")
|
||||
Rel(spa, api, "Uses", "JSON/HTTPS")
|
||||
Rel(ma, api, "Uses", "JSON/HTTPS")
|
||||
}
|
||||
ExtSystem(3rdparty, "3rd Party Platform", "Implements actual business logic")
|
||||
|
||||
Rel(client, platform, "Uses")
|
||||
Rel(client, 3rdparty, "Uses")
|
||||
Rel(api_dash, 3rdparty, "Uses", "REST API")
|
||||
Rel(api_app, 3rdparty, "Uses", "SDK")
|
||||
Rel(pbc, wa, "Uses", "HTTPS")
|
||||
Rel(pbc, spa, "Uses")
|
||||
Rel(pbc, ma, "Uses")
|
||||
Rel(es, pbc, "Sends e-mails to")
|
||||
@enduml
|
||||
|
||||
@ -1,15 +1,18 @@
|
||||
@startuml
|
||||
!include ../C4.puml
|
||||
' !includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4.puml
|
||||
|
||||
LAYOUT_WITH_LEGEND
|
||||
|
||||
title System Context Diagram
|
||||
title System Context diagram for Internet Banking System
|
||||
|
||||
Person(client, "Client", "A user of a system")
|
||||
System(platform, "Platform", "Distributed system of independent Machines")
|
||||
ExtSystem(3rdparty, "3rd Party Platform", "Implements actual business logic")
|
||||
Person(pbc, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.")
|
||||
System(ibs, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
|
||||
System_Ext(es, "E-mail system", "The internal Microsoft Exchange e-mail system.")
|
||||
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
|
||||
|
||||
Rel(client, platform, "Uses")
|
||||
Rel(client, 3rdparty, "Uses")
|
||||
Rel(3rdparty, platform, "Depends on", "SDK, REST API")
|
||||
Rel(pbc, ibs, "Uses")
|
||||
Rel(es, pbc, "Sends e-mails to")
|
||||
Rel(ibs, es, "Sends e-mails", "SMTP")
|
||||
Rel(ibs, mbs, "Uses")
|
||||
@enduml
|
||||
|
||||
Loading…
Reference in New Issue