Formal specification of the variants and behavioural features of design patterns
Journal of Systems and Software
Automatic enforcement of architectural design rules
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
An Approach for Modeling Architectural Design Rules in UML and its Application to Embedded Software
ACM Transactions on Software Engineering and Methodology (TOSEM)
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
Hi-index | 0.00 |
Design patterns are traditionally outlined in an informal manner. If they could be formalised, we could derive tools that automatically recognise design patterns and refactor designs and code. Our approach is to deploy predicate logic to specify conditions on the class diagrams that describe design patterns. The structure of class diagrams is itself described with a novel meta-notation that can be used for defining any graphical modelling language. As a result, the constraints, while based on UML, are highly readable and have much expressive power. This enables us not only to recognise design patterns in legacy code, but also to reason about them at the design stage, such as showing one pattern to be a special case of another. The paper discusses our specification of the original 23 design patterns and presents a representative sample of some of them.