Modelling
IcePanel uses a modern, lightweight, and agile way to model system architecture using the C4 Model - created by Simon Brown. This helps create simple, easily digestible, and maintainable diagrams targeted at each of your audiences.
Using modelling instead of diagramming tells the full story, not just a single diagram view.
Using the C4 model, you can create different hierarchical diagrams that explain how your solution works, from the high-level business of your systems to the low-level technical details.
IcePanel makes it easy for anyone (technical or non-technical) to use this powerful way to visualize software.
What is modelling?
Modelling (in software architecture) is a way to see the full picture of how your system(s) work. Modelling provides more detail than a single diagram, as it is view-agnostic.
Why is modelling better?
There are a few core benefits of a model-based approach, as opposed to just diagramming (i.e. with just shapes and lines):
1. Reusability
You can reuse the same objects, including all existing connections and previously assigned metadata.
2. Syncing diagrams
When you change the reusable object, it updates in all other places it was referenced. Maintenance is massively reduced (phew).
3. Deeper insights
Because your objects live in a source of truth, you can analyze how they're being used, what objects have specific traits or technologies, and more!
4. Consistency
You can visualize your solutions consistently when paired with a standard modelling language, such as the C4 model. This means you don't have to relearn how others think a diagram should look, making conversations flow better.
What is the C4 model?
Simon Brown created the C4 model to resolve the pains of explaining and communicating software architecture in the agile world. It acts as a map of your system, starting at the high-level detail (imagine looking at the whole world on Google Earth) down to the low-level technical details needed to develop your product (zooming into your street).
It is a way to communicate design decisions to multiple audiences at the level of detail they need. From business logic to technical decisions, the C4 model makes it easy to maintain in the long run - when changes inevitably get made to your design.
Check out C4model.com for a detailed run-through of the how's and why's of C4!
🔢 The 4 C's in C4
The 4 C's relate to the different levels of detail in the diagrams created from the model.
1️⃣ Level 1 - Context diagrams
The big picture - high-level overviews of how your system(s) work in the overall ecosystem with other external systems and the people that use them (users, customers, etc.).
Scope - Systems (internal and external) and actors.
Intended audience - Anyone! Business, Product, Architects, Developers and Operations.
2️⃣ Level 2 - Container diagrams
We call these App diagrams in IcePanel, as "Container" is more commonly used for Docker (sorry, Simon).
High-level responsibilities of a system - These diagrams show how the separately deployable things interact to make a system work.
Scope - Apps and stores (inside the system you're zoomed into), other systems (internal and external) and actors.
Intended audience - Architects, Developers, Product, and Operations.
3️⃣ Level 3 - Component diagrams
The building blocks and interactions of an app - Zoom in to each app to show the components that make each app work and the interactions within. These are more technical diagrams for a technical audience.
Scope - Components (inside the app you're zoomed into), other apps & stores in the same system, other systems (internal and external) and actors.
Intended audience - Architects, Developers and Operations.
4️⃣ Level 4 - Code diagrams
These are used to show inside a component and how they actually work and function - currently, you can't diagram the 4th level in IcePanel. We believe you should refrain from diagramming this manually and link your model objects to the code itself (reality).
This level is rarely diagrammed in practice as Simon says, "...most IDEs can generate this level of detail on demand."
Using the C4 model in IcePanel
IcePanel is a visual C4 modelling, diagramming, and documentation tool that maintains the C4 hierarchical structure.
IcePanel's model object structure:
Organization
Landscape
Domain
Actor
Area
System
App/Store
Component
Model object details
When you select a model object (Actor, Area, System, App, Store or Component), you can view and edit the details in the right-hand panel. These details include:
Icon (linked to technology choices)
Name of object
Connections
History
Editable by
(Growth plan only)
Internal or external
Type (Actor, System, Area, App, Store, Component)
Status (Live, future, deprecated or removed)
Domain
(Growth plan only)
Ownership team
(Growth plan only)
Diagrams that the object is in, with links to each diagram
Flows count
Display description
Technology choices
Reality or generic links added to object (Linking to reality)
Detailed description
Connections (in the object connections tab when selected)
Adding objects in the model objects view
Here, you can quickly add and view your model objects that live in the C4 model hierarchy. You can also search for and sort by tags, diagram count, description added, etc.
Visible by default:
Actors, Systems & Areas
Expand systems to view:
Apps & Stores
Expand apps and stores to view:
Components
You can add, edit and delete the objects from here. You can also see the details of each object, which helps you see the dependencies.
Filtering in the model view
You can filter your model objects in the model objects tab.
You can filter (Y/N) on:
Technology choices
Status
Live
Future
Deprecated
Removed
Team ownership
(Growth plan only)
Tags (custom)
Type
Internal
External
System
Actor
Area
App
Store
Component
Diagram
In a diagram
In a flow
Details
Display description
Detailed description
Adding objects in the diagram view
You can also add, edit or remove objects from your model within a diagram.
To add new objects in a diagram:
Click on the
Add
button on the toolbar on the leftDrag from the
Add
button on the toolbar on the left and release in the canvasDouble-click on the canvas
Drag a new connection from an existing object to a blank space in the canvas
Adding objects this way adds them to your model to be reused.
This is the best and quickest way to build up your model whilst keeping it in the context of the diagram you're creating.
Make sure to name your objects in a way anyone can understand.
Editing model objects:
In IcePanel, changing an object will update it everywhere it exists. This includes all diagrams, flows, and the model. Make a change anywhere, and it will auto-sync that change everywhere.
Removing model objects from a diagram:
You can remove model objects from just a diagram but keep it in the model for later or another diagram. To do this:
Select the object in the diagram
Press the
Backspace
orDel
keyOR click the 3 dot
...
menu and selectRemove from the diagram
Deleting objects from the model:
This action cannot be undone.
Select the object or objects you wish to delete
Click the 3 dot menu at the top right
Click
Delete object
You will see a list of all things that will be permanently deleted
This will delete the object from the model, all diagrams it was in, all connections in and out, diagrams that the object owns and any details about it.
Diagramming is covered in more detail in the Diagramming
section!
Last updated