|M.Sc Student||Nordon Galia|
|Subject||An Object-Process Framework for Conceptual Modeling|
of Design Patterns
|Department||Department of Industrial Engineering and Management||Supervisors||Professor Dov Dori|
|Dr. Iris Reinhartz-Berge|
|Full Thesis text|
A design pattern describes a reusable solution for a recurring design problem in a given context. Design patterns help produce better design and implementation of applications. Often, their appropriate use is hindered due to misinterpretation of the design pattern or due to failures in its application. A possible major reason for this lack of design patterns' usability is the low comprehensibility of their descriptions. These descriptions include mainly general implementation-oriented details about the solutions suggested by the design patterns, while the problems they intend to solve are not clearly documented. This complicates the task of using them in particular applications and validating their suitability to a specific context. Furthermore, designers may not be able to appreciate benefits or predict problems associated with the use of design patterns.
We propose a modeling solution that enables specifying solutions to problems that design patterns can offer and problems that might indicate the need for applying the patterns. We categorize design patterns according to their intentions, indicate what patterns are suitable to what design problems, and propose how to solve design problems using appropriate design patterns.
The solution we propose aims to improve application construction via effective use of design patterns. To this end, we have developed and employed design pattern models. We use these design pattern models to provide guidelines for their instantiation and validation. We exemplify the solution by specifying models of commonly known object-oriented design patterns. Our models are general and expressive in the sense that they emphasize the ideas and essence of the design patterns rather than their (object-oriented) implementation. The models we propose induce a natural categorization of the design patterns that may help search and retrieve design patterns that are relevant to a specific context. Based on the design pattern models, we propose and evaluate the feasibility of a method for improving the design of an application. The method scans an application design, identifies potential design problems, and, where applicable, recommends using design patterns that help solve these problems.