Managing Complexity
You know the shapes. You know the links. Now let's tackle the real challenge: explaining complex systems without making your audience's eyes glaze over.
The Complexity Problem
Here's the truth about systems: even "simple" ones get complicated fast.
Take making breakfast. Sounds simple, right? But model it completely and you'll have:
- Multiple parallel processes (toast while eggs cook)
- Decision points (scrambled or fried?)
- Nested sub-processes (cracking eggs is part of cooking eggs)
- Conditional requirements (need milk if scrambled)
- Multiple agents (maybe two people cooking together)
If you try to show all of this in one diagram, you get a visual hairball that explains nothing.
OPM solves this with a beautiful concept: hierarchical organization through in-zooming.
The System Diagram (SD): Your 30,000-Foot View
Every OPM model starts with a System Diagram (SD)—the highest-level view of your system.
The SD should answer one question: What is this system's main function?
The SD contains:
- One main process (the system's core function)
- The beneficiary (who benefits from this function)
- Key objects involved at the highest level
Example: An Online Store
Online Store System Diagram
OPL:
Customer handles Shopping.
Shopping yields fulfilled Order.
Shopping affects Customer from unspecified to satisfied.
That's it. The SD is intentionally simple. It says "here's what this system does" without getting into how.
In-Zooming: Looking Inside Processes
In-zooming is how you show what's inside a process—its sub-processes.
Graphically, the process ellipse expands to contain its children:
In-zoomed Shopping process showing its sub-processes
OPL:
Shopping zooms into Browsing, Selecting, and Checkout Processing, in that sequence.
The Timeline Principle: Within an in-zoomed process, vertical position = execution order:
- Processes at the top execute first
- Processes at the bottom execute last
- Processes at the same height execute in parallel
Sequential vs. Parallel Execution
Sequential (one after another):
Sequential execution: Payment Processing → Packing → Shipping
OPL:
Order Fulfillment zooms into Payment Processing, Packing, and Shipping, in that sequence.
Parallel (happening at the same time):
Parallel execution: all monitoring processes run simultaneously
OPL:
Home Security Monitoring zooms into parallel Motion Detecting, Door Monitoring, and Window Monitoring.
Multi-Level Zoom: Going Deeper
You can in-zoom multiple levels, creating a hierarchy:
SD (Level 0) │ ├── Shopping │ │ │ └── SD1 (Level 1) │ │ │ ├── Browsing │ │ │ ├── Selecting │ │ │ └── Checkout Processing │ │ │ └── SD1.3 (Level 2) │ │ │ ├── Cart Review │ ├── Payment Entry │ └── Order Confirmation
Each level gets its own diagram. You're not cramming everything into one view—you're organizing by detail level.
The Navigation Convention:
- SD = System Diagram (root)
- SD1 = First zoom into SD
- SD1.3 = Zoom into the 3rd process of SD1
- SD1.3.2 = Zoom into the 2nd process of SD1.3
Thick Contours: Marking "More Detail Available"
When a process has been in-zoomed elsewhere, it gets a thick border to signal "there's more detail if you drill down."
💡 Visual Cue
Notice how processes with thick borders (like Shopping in the Online Store example above) indicate that more detail is available. This helps readers navigate complex models by showing where they can "drill down" for more information.
Object In-Zooming: Looking Inside Things
You can also in-zoom objects to show their internal structure:
Computer in-zoomed to show CPU, Memory, and Storage
OPL:
Computer zooms into CPU, Memory, and Storage.
CPU exhibits Cores.
Memory exhibits Capacity.
Key difference: Object in-zooming shows spatial/logical arrangement, not temporal sequence. (Objects don't "execute" in order—they just exist.)
Special States: Initial, Default, and Final
Some states have special meaning:
| State Type | Visual | Meaning |
|---|---|---|
| Initial | Thick border | Starting state when object is created |
| Default | Arrow pointing in | State to return to when unspecified |
| Final | Double border | Terminal state—no transitions out |
Bug with special states: new (initial), active, testing, closed (final)
OPL:
Bug can be new, active, testing, or closed.
State new of Bug is initial.
State closed of Bug is final.
Control Flow: Events, Conditions, and Exceptions
For more sophisticated models, OPM provides control mechanisms:
Event Links (marked with 'e')
An event link means "this triggers the process to start":
Event link: pressed Button triggers Form Submitting
OPL:
Pressed Button triggers Form Submitting.
Condition Links (marked with 'c')
A condition means "process only occurs if this state exists":
Condition link: admin User conditions Admin Processing
OPL:
Admin User conditions Admin Processing.
Best Practices: Making Models That Actually Help
After all this theory, here's practical advice for creating useful OPM models:
1. Start at the Top
Always begin with the System Diagram. Ask: "What's the ONE main function?" Get that right before zooming in.
2. The 7±2 Rule
Each diagram should have 5-9 elements. More than that? You need to in-zoom or split things up.
3. Name Things Well
- Processes should be verbs or verb phrases: "Processing," "Validating," "Calculating"
- Objects should be nouns: "Report," "User," "Temperature"
- Be specific: "Order Processing" beats "Handling Stuff"
4. Follow the Transformation
When modeling, trace what gets consumed, created, or changed. If a process doesn't transform anything, question whether it belongs.
5. Use States for Conditions
Instead of creating many similar objects, use one object with states:
- ❌ Bad: "New User," "Active User," "Suspended User" (three objects)
- ✅ Good: "User" with states
new,active,suspended(one object)
6. Separate What From How
High-level diagrams show what happens. Lower-level diagrams show how. Don't mix.
7. Show Interfaces at Boundaries
When objects cross between in-zoomed and outer contexts, show them at the boundary to make data flow clear.
Real-World Example: Coffee Shop Order System
Let's bring it all together with a complete multi-level model.
SD: The Big Picture
Coffee Shop Order System - System Diagram
OPL (SD):
Customer handles Order Fulfilling.
Barista handles Order Fulfilling.
Order Fulfilling consumes Coffee Order.
Order Fulfilling yields ready Coffee.
Order Fulfilling affects Customer to caffeinated.
SD1: In-Zooming Order Fulfilling
Coffee Shop Order System - SD1 (In-zoomed Order Fulfilling)
OPL (SD1):
Order Fulfilling zooms into Receiving, Brewing, and Serving, in that sequence.
Receiving consumes Coffee Order.
Barista handles Brewing.
Brewing yields brewed Coffee.
Serving changes Coffee from brewed to ready.
Your OPM Toolkit: Summary
You now have everything you need to model systems with OPM:
The Building Blocks:
- Objects (rectangles) and Processes (ellipses)
- States (rounded rectangles inside objects)
- Transforming links (consumption, result, effect)
- Enabling links (agent, instrument)
- Structural links (aggregation, generalization, exhibition, classification)
Managing Complexity:
- System Diagram (SD) for the overview
- In-zooming for process detail
- Vertical position for execution sequence
- State suppression for focus
- Thick borders to signal "more detail exists"
Best Practices:
- Start at the top, zoom as needed
- 5-9 elements per diagram
- Clear naming (verbs for processes, nouns for objects)
- States instead of duplicate objects
- Separation of what vs. how
What's Next?
You're now equipped to create OPM models for real-world systems. Here are some things to try:
- Model your own workflow — How you process email, handle meetings, or complete a recurring task
- Model something technical — A login system, a deployment pipeline, or an API flow
- Model something physical — A manufacturing process, a cooking recipe, or a home automation system
- Teach someone else — The best way to solidify understanding is to explain it
And remember: the goal isn't perfect diagrams—it's clear thinking. OPM is a thinking tool as much as a documentation tool. Even if no one else ever sees your diagrams, the act of creating them clarifies your understanding.
Resources for Going Further
- ISO 19450:2024 — The official international standard for OPM (if you want the formal specification)
- OPCloud — Web-based OPM modeling tool (opcloud.tech)
- OPCAT — Desktop OPM tool from Technion
- Model-Based Systems Engineering with OPM by Prof. Dov Dori — The comprehensive textbook
Thank you for following this tutorial series. Now go model something!
Practice Exercises
The Power of Hierarchy
Real systems are complex, but OPM keeps them manageable through in-zooming. Start with a high-level System Diagram (SD), then zoom into processes to reveal sub-processes. Each level shows the right amount of detail for its context.
Explore In-Zoom Hierarchy
Use the controls below to navigate through different zoom levels of a coffee shop order system. Notice how each level reveals more detail about specific processes.
In-Zoom Hierarchy Explorer
System Diagram — The 30,000-foot view
OPL (Object-Process Language):
Customer handles Order Fulfilling.
Order Fulfilling consumes Coffee Order.
Order Fulfilling yields ready Coffee.
💡 Key Insight
Notice how processes with thick borders (like Order Fulfilling in SD and Brewing in SD1) indicate that more detail is available. This visual cue helps readers navigate complex models by showing where they can "drill down" for more information.
Sequential vs Parallel Execution
In OPM, vertical position matters. Processes arranged vertically execute in sequence (top to bottom), while processes at the same height execute in parallel.
Parallel Execution Example
Processes at the same vertical level execute simultaneously
OPL (Object-Process Language):
Preparing Drink and Preparing Food happen in parallel.
Preparing Drink yields Drink.
Preparing Food yields Food.
💡 The Vertical Position Rule
- • Top to bottom = Sequential execution
- • Same height = Parallel execution
- • Both processes start when the Order is ready
Test Your Knowledge
Quick Check
What should the System Diagram (SD) show?
Quick Check
According to OPM best practices, how many elements should each diagram contain?
Quick Check
In an in-zoomed process, what does vertical position indicate?
Quick Check
What does a thick border on a process ellipse mean?
Quick Check
Which naming convention is correct for OPM elements?
Try It Yourself
Model a Multi-Level Coffee Shop System
Create a hierarchical OPM model of a coffee shop order system with multiple levels of detail.
Steps to follow:
- Start with the System Diagram: Customer handles Order Fulfilling, which yields Coffee
- In-zoom 'Order Fulfilling' to show: Receiving → Brewing → Serving (vertical layout)
- Add the Barista as an agent for Brewing
- Add Espresso Machine as an instrument for Brewing
- Use thick borders to indicate which processes could be zoomed further
- Write the OPL sentences for each level
Congratulations!
You've completed the OPM tutorial series! You now have all the tools you need to model real-world systems. Remember: the goal isn't perfect diagrams—it's clear thinking.
Next step: Pick a system you work with daily and try modeling it. Teaching someone else what you've learned is the best way to solidify your understanding.