1. A computer-implemented method for generating software tools used in model-driven development of software, the method comprising: providing an input model for a first pattern used to generate an artifact that is part of an implementation of a recurring solution; defining a set of one or more modifications to be applied to a schema for the input model in order to produce therefrom a user model; receiving the set of modifications as input to a second pattern; generating, in response to the received set of modifications, program code for implementing a user interface based on the user model and program code for performing a model-to-model transformation of information from the user model to the input model; executing the program code for providing the user interface; invoking execution of the first pattern through the user interface; and invoking background execution of the program code for performing the model-to-model transformation, in response to invoking execution of the first pattern.