One model, many views
A diagram in iyedy holds one model of your system: its people, systems, containers, data stores, relationships, environments and scenarios. Every view is a drawing of part of that model. Change the model once, and every view and every export follows.
On this page
One set of facts, several readers
Take the Claims Platform of Alex Morgan's team. Its model says that a Mobile app calls an API gateway, which calls the Claims Service, which calls Payments, an external system. That is one set of facts.
Several readers need those facts from different angles. A sponsor wants the platform in its context; a developer wants its containers; an operations engineer wants where each one runs. In iyedy each angle is a view, and each view draws the part of the model it is about:
| View | What it shows | For whom |
|---|---|---|
| System context | Claims Platform as one box, the people who use it, Payments | sponsors, other teams |
| Containers | Mobile app, API gateway, Claims Service, the database, and their calls | developers, reviewers |
| Deployment | where each container runs, in which environment | operations, security |
The three views are not three drawings to keep in step. They are three readings of one model.
Views iyedy draws for you
iyedy draws the usual views from the model without being asked:
- a Landscape once the model has two systems of your own;
- a System context view for each of your systems;
- a Containers view for each system that has containers, and a Components view for each container that has components;
- a Deployment view for each environment;
- a Sequence view and a Dynamic view for each scenario, and a BPMN view for each process.
You can add your own views next to them, for example a Data flow or an Integration view of the same system. See Add a view and View types.
A change made once
- Rename an element in any view, or in the Inspector, and the new name shows in every view, in the title block and in the next export. iyedy tells you how many views it touched, for example Renamed in 3 views.
- Add an element in a view and it joins the model. When the open view does not show that kind of element, iyedy says so and offers Show it here or Open that view.
- Draw a relationship from the Claims Service to Payments in the Containers view, and the System context view shows a line from Claims Platform to Payments, without your drawing it there.
Two ways to remove
Removing from a view and deleting from the model are two different actions:
| Action | Key | What happens |
|---|---|---|
| Remove ‘Payments’ from view | Delete | the element leaves this view only; the model and the other views keep it |
| Delete from model… | Ctrl Delete | the element leaves the model, so every view; iyedy asks first and says how many views use it |
Deleting a view never deletes anything from the model: iyedy asks Delete the view ‘Payments flow’? The model is not changed; the view’s layout is deleted.
Lines iyedy works out
Some lines in a view are not relationships you drew: they are implied from the ones below them. In the context view, the line from Claims Platform to Payments comes from the Claims Service's call to Payments. Select it and the Inspector shows Implied relationship, with the relationships it comes from. To change it, change those.
Positions belong to each view
The model holds the facts; each view keeps its own layout. Moving the Claims Service in the Containers view does not move it in the Deployment view. Positions you set are kept, and Re-layout view (Ctrl Shift L) tidies the rest.
What this means for you
- Draw where it is easiest, then open the other views: they are already there.
- Rename freely. Nothing goes out of date in another view or in a file you export next.
- Think before Mod+Delete. Delete is the safe default; deleting from the model reaches every view. Ctrl Z undoes either.
- Reviewers see one truth. A finding on the Claims Service is the same finding in every view that draws it.
Was this page helpful?Your answer is anonymous and counts only if you accepted measurement.
What went wrong?
Don't write personal data.