Automatic verification of design patterns in Java

Alex Blewitt, Alan Bundy, Ian Stark

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

Design patterns are widely used by designers and developers for building complex systems in object-oriented programming languages such as Java. However, systems evolve over time, increasing the chance that the pattern in its original form will be broken.To verify that a design pattern has not been broken requires specifying the original intent of the design pattern. Whilst informal descriptions of design patterns exist, no formal specifications are available due to differences in implementations between programming languages.We present a pattern specification language, Spine, that allows patterns to be defined in terms of constraints on their implementation in Java. We also present some examples of patterns defined in Spine and show how they are processed using a proof engine called Hedgehog.The conclusion discusses the type of patterns that are amenable to defining in Spine, and highlights some repeated mini-patterns discovered in the formalisation of these design patterns.
Original languageEnglish
Title of host publicationProceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Place of PublicationNew York, NY, USA
Number of pages9
ISBN (Print)1-58113-993-4
Publication statusPublished - 2005

Keywords / Materials (for Non-textual outputs)

  • Java, design pattern, specification, verification


Dive into the research topics of 'Automatic verification of design patterns in Java'. Together they form a unique fingerprint.

Cite this