Warning: include(api.php) [function.include]: failed to open stream: No such file or directory in /home/shapings/public_html/wp-content/themes/arthemia/functions.php on line 2

Warning: include() [function.include]: Failed opening 'api.php' for inclusion (include_path='.:/usr/local/php52/pear') in /home/shapings/public_html/wp-content/themes/arthemia/functions.php on line 2
Shaping Software » Blog Archive » Architectural Patterns vs. System Metaphors
Home » Architecture, Patterns

Architectural Patterns vs. System Metaphors

10 August 2008 2 Comments

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.  In A Practical Guide to Enterprise Architecture (The Coad Series), 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 Take Aways

Here’s my key take aways:

  • 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

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 interfaces is like the Windows desktop.

Additional Resources

2 Comments »