Design-Space Exploration in MDE: An Initial Pattern Catalogue
design patterns : elements of reusable object - oriented software .