Evolutionary Patterns of Design and Design Patterns • Author：Mikio Aoyama • Excerpt from ： 2001 IEEE 指導老師：張顧耀 學 生：邱金杰 學 號：E9406003
Evolutionary Patterns of Design and Design Patterns Outline • Introduction • Principles of Design Patterns • Pattern Family • Patterns of Design Evolution • Modeling Design Evolution with Patterns • Application to Pattern-Based • Conclusions
Introduction • Design patterns are considered well-formed language to represent software design. • Propose several notions of design evolution and discuss the patterns of design evolution in terms of design patterns. • Propose a classifcation of design patterns into pattern families. • To model the design patterns and the evolutionary relationship between them. • Propose a set of graphical notations of design Patterns and their evolution, namely pattern type diagram(PTD) and pattern evolution diagram(PED).
Introduction • The pattem evolution diagram(PED) is proposed To represent the structure of design evolution. • Explore the concept of pattern family with an example of Factory patterns. • A set of pattems of design evolution is formalized with an example of evolution of Factory pattems. • As an example, an evolutionary design of pattern-based framework
Model of Design Patterns Although the real problems are much more complicated, the solution process abovementioned can provide a principle of design patterns for solving complex problems.
Principle of Design Patterns A simple diagram notation, Pattern Type Diagram (PTD), to represent one pattem with a box as exemplified in Figure 2.
Pattern Family Creational Patterns Abstract Factory： Creates an instance of several families of classes Builder ： Separates object construction from its representation Factory Method ： Creates an instance of several derived classes Prototype ： A fully initialized instance to be copied or cloned Singleton ： A class of which only a single instance can exist Structural Patterns Adapter ： Match interfaces of different classes Bridge ： Separates an object’s interface from its mplementation Composite ： A tree structure of simple and composite objects Decorator ： Add responsibilities to objects dynamically Facade ： A single class that represents an entire subsystem Behavioral Patterns Strategy ： Encapsulates an algorithm inside a class
Pattern Family A pattem family is a set of pattems sharing the same central forces, or design goals and constraints.
Two Types of Design Evolution (1) Intensive evolution is caused by some intemal change of problem space, from R,to RI’, such as requirements change, bug fix and design improvement. (2) Extensive evolution is caused by extension of problem space, from R to R+Re. Re is exemplified by adding new requirements and accommodating new operating
Application to Pattern-Based Framework Design • To solve file reader framework .Original problem is decomposed into the following three primitive problems. • 1.To handle recursively structured record. • 2.To handle record of arbitral length until the end of record is detected by read object method. • 3. Store the record into corresponding object depending on the input record structure.
Conclusions • Authorproposed a set of' concepts, representations, and methodology to understand design evolution in terms of design pattems. • Let reader understand both design pattems and design evolution with simple framework. • To find appropriate design pattems and compose them in order to solve complex problems such as building application frameworks with design pattems. • Took a semi-formal approach since pattern language is inherently semi-formal because design is an exploratory process and open to experience.