Skip to main content
Version: 1.4.0

Architecture

The architecture of the Simulation system is a complex system that uses a lot of different moving parts. There are also different systems that are used at each layer of the software application but also the environment that the software runs in. To give an accurate description of how this architecture fits together the C4 Model will be used which makes depicting connections between different systems at different levels of the application easy.

1. System Context diagram

A System Context diagram is a good starting point for diagramming and documenting a software system, allowing us to step back and see the big picture.

Detail isn't important here as this is our zoomed out view showing a big picture of the system landscape. The focus should be on people (actors, roles, personas, etc) and software systems rather than technologies, protocols and other low-level details. It's the sort of diagram that we could show to non-technical people.

loading...

2. Container diagram

Once we understand how the system fits in to the overall IT environment, a really useful next step is to zoom-in to the system boundary with a Container diagram. A "container" is something like a server-side web application, single-page application, desktop application, mobile app, database schema, file system, etc. Essentially, a container is a separately runnable/deployable unit (e.g. a separate process space) that executes code or stores data.

The Container diagram shows the high-level shape of the software architecture and how responsibilities are distributed across it. It also shows the major technology choices and how the containers communicate with one another. It's a simple, high-level technology focussed diagram that is useful for software developers and support/operations staff alike.

loading...

3. Component diagram

Next we can zoom in and decompose each container further to identify the major structural building blocks and their interactions.

The Component diagram shows how a container is made up of a number of "components", what each of those components are, their responsibilities and the technology/implementation details.

loading...

4. Code diagram

Due to the complexity of this model and the fast nature of development we will not be showing a code diagram right now. Eventually this will be available.