From d0df70712c287fe4ae4e41edac0e3ad999885b2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jason=20Mar=C3=A9chal?=
<45510813+JasonMarechal25@users.noreply.github.com>
Date: Thu, 15 Feb 2024 10:38:13 +0100
Subject: [PATCH] C4 architecture diagrams (#736)
For architecture diagrams:
- System Context Diagram : provide a high level view of the system
surrounding Antares
- Container Diagram : provide context on Antares platform components
- Container Diagram (simple) : same as above, removing details for
clarity
- Component Diagram : provide a zoomed view of Xpansion components
architecture
---
...rDiagram-Container_Diagram_for_Antares.svg | 761 ++++++++++++++++++
conception/C4/ContainerDiagram.puml | 46 ++
...Container_Diagram_for_Antares__simple_.svg | 691 ++++++++++++++++
conception/C4/ContainerDiagramSimple.puml | 42 +
conception/C4/SystemContextDiagram.puml | 30 +
conception/C4/SystemContextDiagram.svg | 441 ++++++++++
...mponent-Component_diagram_for_Xpansion.svg | 433 ++++++++++
conception/C4/XpansionComponent.puml | 27 +
8 files changed, 2471 insertions(+)
create mode 100644 conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg
create mode 100644 conception/C4/ContainerDiagram.puml
create mode 100644 conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg
create mode 100644 conception/C4/ContainerDiagramSimple.puml
create mode 100644 conception/C4/SystemContextDiagram.puml
create mode 100644 conception/C4/SystemContextDiagram.svg
create mode 100644 conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg
create mode 100644 conception/C4/XpansionComponent.puml
diff --git a/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg b/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg
new file mode 100644
index 000000000..dc38ec188
--- /dev/null
+++ b/conception/C4/ContainerDiagram-Container_Diagram_for_Antares.svg
@@ -0,0 +1,761 @@
+
+
\ No newline at end of file
diff --git a/conception/C4/ContainerDiagram.puml b/conception/C4/ContainerDiagram.puml
new file mode 100644
index 000000000..13954cf7f
--- /dev/null
+++ b/conception/C4/ContainerDiagram.puml
@@ -0,0 +1,46 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+!include
+
+LAYOUT_WITH_LEGEND()
+title Container Diagram for Antares
+
+Person(Alice, "Alice", "Chargée d'étude")
+Person(Toph, "Toph", "Chargée d'étude")
+Person(Bob, "Bob", "Thésard")
+
+System_Boundary(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems"){
+ Container(web, "Antares Web", "React/Python", "Manage studies")
+ Container(xpansion, "Xpansion", "C++", "Perform investment simulations for Antares studies")
+ Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems")
+ Container(scripts, "Script R", "R")
+}
+
+Rel(Alice, web, "Configure and run studies", "Web browser")
+Rel(Bob, simulator, "Try new things", "Local file")
+Rel(Bob, xpansion, "Try new things", "Local file")
+
+System_Ext(calin, "Calin", "Host Antares")
+System_Ext(vm_web, "VM")
+
+Rel(web, calin, "Run simulator", "ssh/scp")
+Rel(web, calin, "Run xpansion", "ssh/scp")
+Rel(xpansion, calin, "Execute on", "Command line")
+Rel(simulator, calin, "Execute on", "Command line")
+Rel(xpansion, simulator, "Run several iterations", "Command line")
+Rel(web, vm_web, "Hosted on")
+Rel(scripts, simulator, "Generate studies")
+Rel(scripts, xpansion, "Generate studies")
+Rel(scripts, web, "Provide studies", Rest)
+
+System_Ext(vms, "Windows Virtual Machines", "Host studies")
+Rel(Toph, vms, "Use VM to manipulate studies")
+Rel(vms, calin, "Run studies on", "Antares Launcher")
+Rel(vms, web, "Share studies", "E:")
+
+System_Ext(out, "Downstream systems (e.g. Imagrid)")
+Rel(out, antares, "Exploit results")
+
+System_Ext(in, "Upstream systems (e.g. User scripts)")
+Rel(in, scripts, "Provide data")
+@enduml
\ No newline at end of file
diff --git a/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg b/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg
new file mode 100644
index 000000000..44530829d
--- /dev/null
+++ b/conception/C4/ContainerDiagramSimple-Container_Diagram_for_Antares__simple_.svg
@@ -0,0 +1,691 @@
+
+
\ No newline at end of file
diff --git a/conception/C4/ContainerDiagramSimple.puml b/conception/C4/ContainerDiagramSimple.puml
new file mode 100644
index 000000000..425880c29
--- /dev/null
+++ b/conception/C4/ContainerDiagramSimple.puml
@@ -0,0 +1,42 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+!include
+
+LAYOUT_WITH_LEGEND()
+title Container Diagram for Antares (simple)
+
+Person(Alice, "Alice", "Chargée d'étude")
+Person(Toph, "Toph", "Chargée d'étude")
+Person(Bob, "Bob", "Thésard")
+
+System_Boundary(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems"){
+ Container(web, "Antares Web", "React/Python", "Manage studies")
+ Container(xpansion, "Xpansion", "C++", "Perform investment simulations for Antares studies")
+ Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems")
+ Container(scripts, "Script R", "R")
+}
+
+Rel(Alice, web, "Configure and run studies", "Web browser")
+Rel(Bob, simulator, "Try new things", "Local file")
+Rel(Bob, xpansion, "Try new things", "Local file")
+
+System_Ext(calin, "Calin", "Host Antares")
+
+Rel(web, calin, "Run simulator", "ssh/scp")
+Rel(web, calin, "Run xpansion", "ssh/scp")
+Rel(xpansion, simulator, "Run several iterations", "Command line")
+Rel(scripts, simulator, "Generate studies")
+Rel(scripts, xpansion, "Generate studies")
+Rel(scripts, web, "Provide studies", Rest)
+
+System_Ext(vms, "Windows Virtual Machines", "Host studies")
+Rel(Toph, vms, "Use VM to manipulate studies")
+Rel(vms, calin, "Run studies on", "Antares Launcher")
+Rel(vms, web, "Share studies", "E:")
+
+System_Ext(out, "Downstream systems (e.g. Imagrid)")
+Rel(out, antares, "Exploit results")
+
+System_Ext(in, "Upstream systems (e.g. User scripts)")
+Rel(in, scripts, "Provide data")
+@enduml
\ No newline at end of file
diff --git a/conception/C4/SystemContextDiagram.puml b/conception/C4/SystemContextDiagram.puml
new file mode 100644
index 000000000..2ec32814f
--- /dev/null
+++ b/conception/C4/SystemContextDiagram.puml
@@ -0,0 +1,30 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+!include
+
+LAYOUT_WITH_LEGEND()
+title System Context Diagram for Antares
+
+Person(Alice, "Alice", "Chargée d'étude")
+Person(Toph, "Toph", "Chargée d'étude")
+Person(Bob, "Bob", "Thésard")
+
+System(antares, "Platform Antares", "Quantify the adequacy, or the economic performance of interconnected energy systems")
+
+Rel(Alice, antares, "Configure and run studies")
+Rel(Bob, antares, "Try new things")
+
+System_Ext(calin, "Calin", "Host Antares")
+Rel(antares, calin, "Run on")
+
+System_Ext(vms, "Windows Virtual Machines", "Host studies")
+Rel(Toph, vms, "Use VM to manipulate studies")
+Rel(vms, calin, "Run studies on")
+Rel(vms, antares, "Host studies")
+
+System_Ext(out, "Downstream systems (e.g. Imagrid)")
+Rel(out, antares, "Exploit results")
+
+System_Ext(in, "Upstream systems (e.g. User scripts)")
+Rel(in, antares, "Generate data for")
+@enduml
\ No newline at end of file
diff --git a/conception/C4/SystemContextDiagram.svg b/conception/C4/SystemContextDiagram.svg
new file mode 100644
index 000000000..a2afe6136
--- /dev/null
+++ b/conception/C4/SystemContextDiagram.svg
@@ -0,0 +1,441 @@
+
+
\ No newline at end of file
diff --git a/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg b/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg
new file mode 100644
index 000000000..662c1a39c
--- /dev/null
+++ b/conception/C4/XpansionComponent-Component_diagram_for_Xpansion.svg
@@ -0,0 +1,433 @@
+
+
\ No newline at end of file
diff --git a/conception/C4/XpansionComponent.puml b/conception/C4/XpansionComponent.puml
new file mode 100644
index 000000000..5903c6ee7
--- /dev/null
+++ b/conception/C4/XpansionComponent.puml
@@ -0,0 +1,27 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+!include
+
+LAYOUT_WITH_LEGEND()
+title Component diagram for Xpansion
+
+Container(web, "Antares Web", "React/Python", "Manage studies")
+Container(simulator, "Antares simulator", "C++", "Quantify the adequacy, or the economic performance of interconnected energy systems")
+Container(scripts, "Script R", "R")
+
+Container_Boundary(xpansion, "Xpansion") {
+ Component(pbgen, "Problem Generation", "C++", "Update antares simulator results with candidates")
+ Component(benders, "Benders", "C++", "Solve the problem")
+ Component(driver, "Drivers (executable)", "python", "Perform checks on input data and control application flow")
+ Component(fullrun, "Full run", "c++", "Encompass Problem Generation and Benders")
+
+ Rel(driver, benders, "Start", "CLI")
+ Rel(driver, pbgen, "Start", "CLI")
+ Rel(driver, fullrun, "Start", "CLI")
+}
+
+Rel(driver, simulator, "Run", "CLI")
+Rel(web, driver, "Start", "CLI")
+Rel(scripts, xpansion, "Generate study", "files")
+
+@enduml
\ No newline at end of file