Design Decision Topology Model for Pattern Relationship Analysis Kiran Kumar PhD Scholar Department of Computer Science and Engineering Indian Institute of Technology Kanpur, India vkirankr@iitk.ac.in Prabhakar TV Professor Department of Computer Science and Engineering Indian Institute of Technology Kanpur, India tvp@iitk.ac.in ABSTRACT Software design patterns are solutions to recurring design problems. Analyzing and managing the large and ever increasing number of design patterns is a problem. Non- uniform and incomplete pattern descriptions further complicate the task. Existing literature defines different pattern relationship types and many relationships among patterns. These relationships are analyzed based on designer's experience and their formal basis is unclear. We propose a novel graph based model to capture the semantics of a design pattern using design decisions and their consequences. The relationships are analyzed using various graph properties which enable automation of relationship analysis. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architectures – Patterns. General Terms Design. Keywords Patterns, Tactics, Relationship analysis, Graph based model. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. A preliminary version of this paper was presented in a writers’ workshop at the 1st Asian Conference on Pattern Languages of Programs (PLoP). Asian PLoP ’10, March 16 - 17th, 2010, Tokyo, Japan. Copyright 2010 is held by the author(s). ACM 978-1- 4503-0126-8. 1. INTRODUCTION A design pattern describes a particular recurring design problem that arises in a specific design context, and presents a well-proven generic scheme for its solution [11, 6]. Patterns are increasingly being used not only to capture and disseminate best practices, but also to turn named patterns into a shared vocabulary for expressing and communicating technical knowledge [11, 6, 13]. The large number of existing and continuously increasing patterns (one source states that there are 250 patterns for Human-Computer interaction alone [22]) introduce new problems to designer who use them - like the management of a pattern knowledge base. We propose a graph based model called Design Decision Topology Model (DDTM) to deal with the relationship analysis problem. The objective of this model is to reduce pattern semantics to syntax - a graph which delivers the pattern functionality (quality) through elementary functionality (quality) – nodes of the graph are elementary functional functionality and edges are dependencies. Conceptually, the DDTM technique is analogous to the Decision view [10, 17, 31] in the architecture domain. The utility of the DDTM for a pattern can be derived from the utility of Decision view for architecture. Researchers of architecture domain [10, 17, 31] propose Decision views to enable: Enriching architecture description Codifying crosscutting and intertwined design decisions present in multiple views. Traceability of quality requirements. Providing thumbnail or compact forms of the architecture. Traceability and Thumbnail problems are considered important at pattern level also [7]. We apply architecture level techniques at pattern level to derive the DDTM of a pattern. This representation enriches pattern descriptions, helps analyze quality requirement traceability and relationships amongst patterns. This model treats each pattern as a micro-architecture and defines the pattern as a topology of a set of design decisions. Using this model, different relationships are analyzed using graph properties. For example, Patterns A and B are duplicates if Graph(A) Graph(B), or Pattern A comprises- of patterns B and C if Graph(B) Graph(A) AND Graph(C) Graph(A).