Roles & Patterns in Analysis, Design and Implementation

From a given set of abstraction mechanisms available in a language we form architectural abstractions — for example design patterns and frameworks — to support reuse of design. From recurring formations in concrete applications we conceive new abstraction mechanisms — for example the role mechanism — to be included in analysis and design notations as well as in programming languages. Concrete diagrams and programs — probably including instances of design patterns — have inspired the invention and design of the role mechanism. The role mechanism itself enables us to form new patterns and to revise existing patterns. Patterns to be used in analysis, design and implementation have an identical basic form — a general idea to give a solution to a problem in a given context. However, patterns are classified as analysis patterns, design patterns and implementation patterns dependent on which phase in the development process they (best and most natural) support in terms of their level of abstractivity and degree of domain specificity.