Traversals are specified succinctly taking advantage of the structure of object-oriented programs. The idea is that the persistent parts of the program are expressed at the base level while the transient parts are expressed at the meta level. The meta level provides building blocks for the base level and ideally most changes to the program can be accomplished by changing the meta objects and programs. Patterns contribute to capturing the persistent parts of a program by describing often used solutions to problems in a context. Groups of collaborating patterns can be used to describe architectural doctrines.
Patterns can be powerful to describe the overall organization of a program.
Therefore there is a close connection between software architecture and patterns. Therefore, those patterns can be modeled by n-ary connections in an architecture description language. The need for certain design patterns can be eliminated by improving the underlying programming language. New patterns will be added to the catalog of well known patterns. Patterns of different levels of abstraction will be developed.