Traditional Design Patterns Pitfalls

M.E. Fayad. Pitfalls Categories Overview: The Factor of Immaturity

Pitfalls Categories Overview: The Factors of Immaturity

Pitfalls Categories Overview: The Factors of Immaturity [1, 2]

Professor Dr. M.E. Fayad, SJSU, AITG, AEEH PRESS, i-SOLE, INCs

“Our element is unending immaturity” [3] Witold Gombrowicz, Ferdydurke

Subject: Traditional Design Patterns

Q1: What factors influence the immaturity of existing traditional design patterns? OR

Q2: What are the factors of maturity (if any) of existing traditional Design Patterns?

One of the major pitfalls in developing meaningful and convenient patterns is the perceived factor of immaturity; thus, most of the patterns developed are yet to fulfill the expectations for their use in facilitating the development of software systems. As a result, it becomes a major concern to investigate, why software patterns have not yet developed the level of maturity that is so much needed for establishing the stability of a given software system. Even with best of the software architecture, a piece of software system is bound to face some problems in its lifetime. This column attempts to highlight and deliberate several common problems found in today’s traditional software patterns, like the gang of four (GoF) [4], Siemens Group [5], and the others.

Introduction

Developing meaningful patterns is a thing of art and a system of perfect skills; improving the overall quality of patterns is never easy, and quick; more often, developers take an inordinately long time to design perfect and meaningful patterns. To develop meaningful and robust patterns, a developer may need to design them in phased manner. The most important and critical of all these phases is the diagnostic phase, using which, one can understand and comprehend the main problems that come in the way of development of today’s patterns. Once a pattern developer identifies and notes all the bottlenecks, it becomes very easy to explore the causes of pattern immaturity and their subsequent usability.

In the forthcoming columns, we have attempted to investigate more than twenty five (25) problems and bottlenecks that play a critical role in diminishing the overall effectiveness of today’ traditional software patterns. Today, most of the pattern developers tend to use the word experience, which is often an improperly used keyword, among the pattern community. Currently, usage of this important keyword is resulting in producing and preserving very low-quality patterns. In addition to this pitfall, simultaneous existence of several different patterns addressing almost the same type of problems will hinder the dream of developing a common vocabulary for patterns.

Another critical problem is the paucity of required guidelines and hints for choosing the appropriate patterns from a large inventory of alternatives. This bottleneck may result in a challenging situation for both the expert and novice developers. Many a time a pattern developer is often confused differentiating between analysis and design patterns; mostly, inherited from the usual confusion between analysis and design in a general sense. Such a feeling of confusion is actually very dangerous, as it may result in creation of defective systems.

As the factor of time starts getting very critical and crucial in developing a software system, other factors of simplicity and clarity tend to become highly essential qualities. It is a well-known fact that developers tend to get discouraged and skeptical, while using complex, confusing, and unclear type of patterns.

A typically, good and meaningful pattern is clearly focused in the sense that pattern addresses a specific problem or challenge with well-defined perimeter boundaries. It is also true that developing patterns that aim to solve a big collection of problems and challenges will usually result in large-scale problems with very limited applicability.

Thus, the most obvious solution would be to focus more on developing effective patterns that contributes positively to the future development of software systems. In the forthcoming columns, we will highlight on specific problems that hinder today’s pattern developmental efforts.

 

References

[1] M.E. Fayad. Stable Design Patterns (SDPs) (BASE)” Aeeh Press, Inc, San Jose, CA. December 2024

[2] M. E. Fayad. “Stable Design Patterns for Software and Systems” Boca Raton, FL: Auerbach Publications, Taylor & Francis Catalog #: K24656, September 2017. ISBN-13: 978-1-4987-0330-7

[3] Gombrowicz, W.M (August 4, 1904 – July 24, 1969), Last edited on 23 June 2017,

https://en.wikipedia.org/wiki/Witold_Gombrowicz

[4] Gamma, E. et al., “Design Patterns: Elements of Reusable Object-Oriented Software” Addison-Wesley Professional Computing Series. Addison-Wesley Publishing Company, New York, 1995.

[5] Buschmann, F. et al., “Pattern-Oriented Software Architecture, A System of Patterns”, John Wiley & Sons Ltd, Chichester, 1996.