A transformational viewpoint on design patterns The concept of design pattern has had a large impact. It has greatly helped spreading a limited number of well-tried solutions to recurring object-oriented design problems. But as new patterns are introduced at a steady rate the concept must evolve so that tools can help programmers not to be lost facing a host of patterns. In this paper we propose that design patterns be systematically analyzed and reformulated to exhibit a reasoning binding solutions to precisely stated problems, given a set of mechanisms. We show that these mechanisms can be described as program transformations and how an assistant tool could systematically explore the set of potential solutions induced by these tranformations. This will both help the selection of the appropriate patterns and their instanciation in the context of the application under development.