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. It is view-agnostic and provides more detail than a single diagram.
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, massively reducing maintenance.
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 occur to your design.
🔢 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 who 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.
High-level responsibilities of a system—These diagrams show how the separately deployable components 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 on 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 and stores in the same system, other systems (internal and external) and actors.
Intended audience - Architects, Developers and Operations.
4️⃣ Level 4 - Code diagrams
These show how an app or store works and functions inside—currently, you can't diagram the fourth 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
Group
System
App or store
Component
Model object details
When you select a model object (Actor, Group, 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
Team edit access
(Growth plan only)
Internal or external object type
Abstraction (Actor, System, Group, App, Store, Component)
Status (Live, future, deprecated or removed)
Domain
(Growth plan only)
Ownership team
(Growth plan only)
Diagrams list
Flows list
Display description
Technology choices
Reality or generic links (see Linking to reality)
Detailed description
Adding objects in the model objects view
Here, you can quickly add and view your model objects in your domain. You can also search for and sort by tags, diagram count, description added, etc.
Visible by default:
Actors, Systems and Groups
Expand systems to view:
Apps and Stores
Expand apps and stores to view:
Components
You can add, edit, and delete objects from here. You can also view and edit the details of each object, just like in a diagram.
Filtering in the model view
You can filter your model objects based on:
Technology choices
Status
Live
Future
Deprecated
Removed
Team ownership
(Growth plan only)
Tags (custom)
Type
Internal
External
System
Actor
Group
App
Store
Component
Diagram
In a diagram
In a flow
Details
Has a display description
Has a detailed description
Adding objects in the diagram view
You can add, edit or remove objects from your model in a diagram.
To add new objects in a diagram:
Click the
+
button on the left toolbar.Drag and drop the object button in the canvas (you can also click and drop).
Name the object and add a displayed description.
Drag a new connection from an existing object to a blank space in the canvas to create a new object.
Adding objects this way adds them to your model for reuse. This is the best and quickest way to build up your model while 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 everywhere.
Removing model objects from a diagram
You can remove model objects from just a diagram but keep them in the model for later or another diagram. To do this:
Select the object in the diagram.
Press the
Backspace
orDel
key.OR 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.
Last updated