Publication | Closed Access
Formalising Design Patterns in Predicate Logic
39
Citations
11
References
2007
Year
Unknown Venue
EngineeringArchitectural PatternSoftware EngineeringOriginal 23Higher-order LogicSoftware AnalysisFormal VerificationSocial SciencesFormal SystemAnalysis PatternSoftware Design PatternDesign PatternsObject-oriented DesignDesignComputer ScienceUml DesignSoftware DesignArchitectural DesignAutomated ReasoningProgram AnalysisFormal MethodsLegacy CodeFirst-order Logic
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1