The Pattern Instance Notation: A Simple Hierarchical Visual Notation for the Dynamic Visualization and Comprehension of Software Patterns

Design patterns are a common tool for developers and architects to understand and reason about a software system. Visualization techniques for patterns have tended to be either highly theoretical in nature, or based on a structural view of a system’s implementation. The Pattern Instance Notation is a simple visualization technique for design patterns and other abstractions of software engineering suitable for the programmer or designer without a theoretical background. While based on a formal representation of design patterns, using PIN as a tool for comprehension or reasoning requires no formal training or study. PIN is hierarchical in nature, and compactly encapsulates abstractions that may be spread widely across a system in a concise graphical format, while allowing for repeated unveiling of deeper layers of complexity and interaction on demand. It is designed to be used in either a dynamic visualization tool, or as a static representation for documentation and as a teaching aid.

By: Jason McC. Smith

Published in: RC24838 in 2009


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .