Part 3 of 3

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:

  1. One main process (the system's core function)
  2. The beneficiary (who benefits from this function)
  3. 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 TypeVisualMeaning
InitialThick borderStarting state when object is created
DefaultArrow pointing inState to return to when unspecified
FinalDouble borderTerminal 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:

  1. Model your own workflow — How you process email, handle meetings, or complete a recurring task
  2. Model something technical — A login system, a deployment pipeline, or an API flow
  3. Model something physical — A manufacturing process, a cooking recipe, or a home automation system
  4. 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.

Level 0 of 2

💡 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:

  1. Start with the System Diagram: Customer handles Order Fulfilling, which yields Coffee
  2. In-zoom 'Order Fulfilling' to show: Receiving → Brewing → Serving (vertical layout)
  3. Add the Barista as an agent for Brewing
  4. Add Espresso Machine as an instrument for Brewing
  5. Use thick borders to indicate which processes could be zoomed further
  6. Write the OPL sentences for each level
Open Editor
🎉

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.