Affiliation:
1. Carlos III Technical University of Madrid, Spain
Abstract
In the mid 1960’s, the architect Christopher Alexander (1964) came up with the idea of Patterns, as “a solution to a problem within a defined context” and developed this concept. He explains, in a very original way, his ideas of urban planning and building architecture, using patterns to explain the “what”, “when”, and “how” of a design. Alexander invented a Pattern Language that is the fundamental to good building and city designs, and describes it in a collection of repetitive schemas called patterns. In Computer Science, software is susceptible to conceptual patterns. Consequently, Ward Cunningham and Kent Beck, used Alexander’s idea to develop a programming pattern language composed of five patterns as an initiation guide for Smalltalk programming. This work was presented at the Object-Oriented Programming, Systems, Languages & Applications Conference (OOPSLA) in 1987. In the early 1990’s, Erich Gamma and Richard Helm did a joint research that resulted in the first specific design patterns catalog. They identified four patterns: Composite, Decider, Observer, and Constrainer patterns. According to many authors, OOPSLA ’91 highlighted the evolutionary process of design patterns. The synergy between Erich Gamma, Richard Helm, Rala Johnson, and John Vlissides (better known as the “Gang of Four” or GoF) and other reputable researchers (Ward Cunningham, Kant Beck or Doug Lea) definitively launched the study of and research into Object Oriented Design Patterns. At the same time, James Coplien, another software engineer, was compiling and shaping a programming patterns catalogue in C++, which was a significant advance in the implementation phase in software development. Coplien’s catalog was published in 1991 under the title “Advanced C++ Programming Styles and Idioms”. Between 1991 and 1994 the concept of pattern design was discussed at international congresses and conferences. All of these encounters culminated in OOPSLA ’94. The GoF took advantage of this event to present their compilation (Gamma, Helm, Johnson & Vlissides, 1995). This publication, considered at that time as the best book on Object Orientation, compiled a 23-pattern catalog, founding the basis of patterns design. The number of pattern-related works, studies and publications in general, but especially in design, has exponentially grown since. However, the different research groups being born must be cataloged into three fundamental paradigms: • Theoretical approximations to the software pattern design concept and pattern languages. Coplien’s work (Coplien, 1996; 2004; Coplien & Douglas, 1995) stands out in this field. • Analysis and compilation of software applications design patterns. Rising’s efforts (Rising, 1998; 2000) and Buschmman (Buschmann, Meunier, Rohnert, Sommerlad & Stal, 1996; Buschmann, Rohnert, Stal & Schmidt, 2000) are included in this classification. • The study of special purpose patterns, like antipatterns (Brown, 1998).
Reference28 articles.
1. Alexander, C. (1964). Notes on the synthesis of form. Cambridge, MA: Harvard University Press.
2. Alexander, C. (1979). The timeless way of building. Oxford: Oxford University Press
3. Alur, D., Crupi, J., & Malks, D. (2003). Core J2EE patterns. New Jersey: Prentice Hall
4. Ambler, S. W. (1998). Process patterns, building large-scale systems using object technology. Cambridge: Cambridge University Press.
5. A pattern-based solution to bridge the gap between theory and practice in using process models.;A.Amescua;LNCS,2006