This paper describes our attempts to deliver a rigorous model of the microarchitectures manifested in prominent design patterns, mainly of those which appeared in the Gang of Four catalog. We aimed to find a specification language whose expressions capture design patterns, as well as a minimal set of building blocks in this language that can jointly account form large segments of the patterns in question.
There is wide agreement that patterns capture useful abstractions in OOP, but their imprecise specifications hinder their utility. Primarily, their precise specifications improves their understanding. Moreover, Additional implications of formal specifications include the understanding of relations between patterns and tools in support of their application.
We begin with a survey of alternative representation languages and their flaws, and continue with a description of the two approaches we took in this research: The first approach focused on tool support, and yielded an algorithmic specification language and the patterns wizard. The second direction we took resulted in a declarative specification language, LePUS, that is a subset of higher order logic. LePUS has a highly concise graphic version that successfully captures important correlations between the elements of design patterns, and we demonstrate how it can also be used to establish relations between patterns and also translate straightforwardly to a specification in PROLOG.