Precise visual specification of design patterns [chapter]

Anthony Lauder, Stuart Kent
1998 Lecture Notes in Computer Science  
There has been substantial recent interest in captured design expertise expressed as design patterns. Prevalent descriptions of these design patterns suffer from two demerits. Firstly, they capture specific instances of pattern deployment, rather than the essential pattern itself, thus the spirit of the pattern is often lost in the superfluous details of the specific instances described. Secondly, existing pattern descriptions rely upon relatively informal diagrammatic notations supplemented
more » ... h natural language annotations. This can result in imprecision and ambiguity. This paper addresses these problems by separating the specification of patterns into three models (role, type, and class). The most abstract (role-centric) model presents patterns in their purest form, capturing their essential spirit without deleterious detail. A role-model is refined by a type-model (adding usuallydomain-specific constraints), which is further refined by a class-model (forming a concrete deployment). We utilise recent advances in visual modelling notation to achieve greater precision without resorting to obtuse mathematical symbols. A set-oriented view of state, operations, and instances is adopted, permitting their abstract presentation in models via this visual notation. This paper utilises these ideas in the unambiguous specification of a selection of prominent design patterns. The expectation is that precise visual pattern specification will firstly enable clear communication between domain experts and pattern writers (and ultimately pattern users), and secondly enable CASE tool support for design patterns, permitting the designer (pattern user) to operate at a higher level of abstraction without ambiguity. Fig. 8. AbstractFactory as a Role Model <> AbstractFactory AbstractFactory <> <> AbstractProduct <> <> RoleName Abstract State Structure Abstract Behavioural Semantics Abstract Instances <> TypeName Refined Abstract State Structure Refined Abstract Behavioural Semantics + Operation Interfaces Refined Abstract Instances <> ClassName Concrete State Structure Concrete Behavioural Semantics (Method Implementations) Instances <> <> Fig. 10. Three-Model Layering
doi:10.1007/bfb0054089 fatcat:34jnifosejb5fgewxhnshlkity