• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Shaping Software

Tools, Frameworks, and Templates for Product Managers

  • About
  • The PM Framework
  • Articles & Hubs

Architectural Patterns vs. System Metaphors

Aug 10, 2008 by JD

architectural pattern vs metaphor

“Good architecture is like a good therapy session – it provides clarity and insight to the problem at hand.” — Anonymous

What’s the difference between an architectural pattern and a system metaphor?

An architectural pattern describes a coarse-grained solution at the level of subsystems or modules and their relationships.

A system metaphor is more conceptual and it relates more to a real-world concept over a software engineering concept.

Software development can be a complex process, and understanding the different architectural patterns and system metaphors is crucial for creating effective and efficient software systems.

By breaking down the various elements and considerations involved in each approach, you can create better metaphors to help guide your architectural patterns.

In A Practical Guide to Enterprise Architecture, James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn, Vikas Sharan, and Elias K. Jo write about the difference between architectural patterns vs. system metaphors.

Key Takeaways

Here are my key takeaways:

  • Metaphors are understandable by both software people and customers.
  • A metaphor is more conceptual than a pattern.
  • One system can have multiple metaphors.

Architectural Patterns vs. System Metaphors

McGovern, Ambler, Stevens, Linn, Sharan, and Jo write the following:

“Architectural patterns are meant for software people to use and understand.  One must study the pattern and understand the concept. 

MVC or pipes and filters have little or no basis in real life. 

The difference between an architectural pattern and a system metaphor is that a system metaphor is understandable by software people and customers alike.”

Example Metaphors

McGovern, Ambler, Stevens, Linn, Sharan, and Jo provide example metaphors:

  • Library
  • Stack
  • Queue
  • Desktop
  • Account
  • Directory
  • Window
  • Scheduler
  • Dispatcher

One System, Many Metaphors

In simple language, this passage is saying that a system or a product can have different metaphors to help people understand it, but these metaphors should make sense and not confuse the users.

For example, the desktop on a computer is a metaphor for a physical desk, but it doesn’t mean the computer screen is an actual desk.

Over time, the system or product can become its own metaphor, and people no longer think about it in terms of the original metaphor.

McGovern, Ambler, Stevens, Linn, Sharan, and Jo write the following:

“A system can have many metaphors, but the metaphors have to make sense within the system to maintain its conceptual integrity.  For example, Microsoft Windows has a desktop that contains windows. 

Would it have been better for windows to be placed on a wall?  Are windows meant to move around the wall? 

By combining multiple metaphors some aspects of the metaphors must be forgotten and other must be emphasized. 

With time, the system itself can become a metaphor. 

We no longer think about the Windows desktop relating to a physical desktop or a window relating to an actual window. 

Products can become metaphors in themselves.  For example, a new system could say that the user interface is like the Windows desktop.”

Additional Resources

  • Architectural Patterns (Wikipedia)
  • Examples of Architectural Styles/Patterns (WIkipedia)

You Might Also Like

Architectural Styles in Software Engineering
Architectural Styles, Patterns, and Metaphors

 

Category: Architecture, PatternsTag: Architecture, Patterns

About JD

Previous Post:Adding People to Late Projects Makes Them Later
Next Post:Architectural Styles, Patterns, and MetaphorsArchitectural Styles

Reader Interactions

Trackbacks

  1. Architectural Styles, Patterns, and Metaphors says:
    Aug 10, 2008 at 8:11 pm

    […] Architectural Patterns vs. System Metaphors No Comments, Comment or Ping […]

  2. A Functional Skeleton of the System as a Whole says:
    Aug 26, 2008 at 1:34 pm

    […] Architectural Patterns vs. System Metaphors No Comments, Comment or Ping […]

Sidebar

Popular Articles

Best Software Books
Better Vision Scope Presentations
Customer-Connected Engineering
How To Frame Problems Better
How To Pitch Ideas Better
Lean Principles for Software Development
Lean Software Development Intro
Project Management Best Practices
Software Development Best Practices
What is AI?
What is ChatGPT?