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

Shaping Software

Enduring Ideas in the Realm of Software

  • About
  • Topics
  • Best Software Books
  • Archives
  • JD Meier.com

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

Recent Posts

  • What is ChatGPT?
  • Agile Performance Engineering
  • What is Cybersecurity?
  • Software Security Threats: A Comprehensive Guide
  • What is Software Security?

Popular Posts

Best Software Books of All Time
Best Practices for Project Management
Best Practices for Software Development
Customer-Connected Engineering
How To Frame Problems Better
How To Pitch Business Ideas Better
How To Structure Vision Scope Presentations
Intro to Lean Software Development
Lean Principles for Software Development
The Enterprise of the Future