Traditional Design Patterns

What are the challenges of existing and traditional pattern compositions?
Can you build a system of patterns among them? And if you can, please explain.
[7] A Brief Summary of Pattern Compositions: Understanding the Insider’s Secrets [1, 2]
[7] A Brief Summary of Pattern Compositions: Understanding the Insider’s SecretsProfessor Dr. M.E. Fayad, SJSU, AITG, AEEH PRESS, i-SOLE, INCs |
Everything we do, every thought we have ever had, is produced by the human brain. However, exactly how it operates remains one of the biggest unsolved mysteries, and it seems the more we probe its secrets, the more surprises we find. Neil deGrasse Tyson [3]
Pattern composition is the intimate process of integrating and hemming different patterns of the similar type (i.e. design patterns, analysis patterns, etc) to build and design larger components or different types of patterns that also include process patterns, managerial and organizational patterns, and other types of patterns. Systematic and organized developmental processes that use patterns utilize a well-formed composition mechanism to seam and integrate patterns together at the design level itself. Composition mechanisms display certain inherent characters that are behavioral and structural mechanisms in nature and designs. Right now, there are a few reported successful experiences on composing patterns in software applications, such as the development of highly interactive speech recognition systems [4] and object-oriented cellular communication software [5], however, such developmental designs are at best only ad hoc and nonsystematic. Structural composition is an innovative approach that uses actual class diagrams to model the designs that would display the patterns in the correct and accurate manner. As such, structural composition is more concrete and robust than the abstract. On the other hand, behavioral compositions rely heavily on composition with objects and the roles they play in fulfilling various other patterns.
However, several critical issues and topics need consideration while considering pattern composition. If a pattern designer wants to develop a meaningful pattern, the following issues need advanced research in a thorough manner:
1) Composition process for integrating analysis, design, implementation, and testing patterns, to make the intended design robust and sturdy
2) To assess and quantify the overall impact of software engineering methodologies and environments on the use of composition
3) To assess and redress the impact of programming language and environments on the use of composition
4) To find out the level of tangibility required for creating the composition, and
5) To find out the impact of generic vs. domain specific patterns on the composition.
Thus when comprised, the software development process will simply does not avoid facing the unique challenge of how these components can fit and integrate together.

Clearly, pattern composition neither is a natural method nor is it an intuitive process. Even worse, patterns always vary in their behavioral and structural nature and character, according to the nature and scope of the project and/or the developer’s innate opinion.
For instance, one of the factors that might hinder integrating two analysis patterns is the fact that each pattern has a different level of abstraction. We simply cannot standardize the level of abstraction to overcome this unique, yet common problem; therefore, integrating these two patterns should allow future modifications such that the abstraction level of the resultant pattern is always balanced. In a problem that involves both paying and accounts, an analysis pattern that model’s payment, simply cannot be naturally integrated with a more abstract analysis pattern that attempts to models accounts.
There are many other crucial issues that need to be investigated and solved immediately; otherwise, the utilization of patterns will involve a number of obstacles and hence will diminish their future use. Most of the current texts and journals on pattern composition or systems of patterns do not include concrete or natural examples of methods to build stable systems of patterns, but rather include very vague guidelines, inconclusive and hazy suggestions. This makes it extremely difficult for many software development professionals to develop and design systems solely based on patterns and the principles of pattern languages. Although several successful attempts have been made in the past, that demonstrate ways to build small tools and utilities or tiny systems by using patterns, they cannot be used as generalized processes for building systems of patterns.
