Systems developed today are increasing in complexity. Model-Driven Engineering (MDE) attempts to solve the issues related to complexity through the use of models to describe systems at different levels of abstraction. Multi-Paradigm Modeling (MPM) promotes modeling all parts of the system, at the most appropriate level(s) of abstraction, using the most appropriate formalism(s), to reduce accidental complexity. Model transformations are at the very heart of MDE. Despite a robust theoretical foundation, model transformation still suffers from scaling and correctness problems. The growing interest in model transformation has lead to a plethora of model transformation languages. This thesis proposes a framework for designing transformation languages tailored to the problem to be solved. As a result, model transformation languages engineered in this framework maximally constrain the modeler to only use the constructs needed. The aim is to increase the modeler's productivity, by raising the level of abstraction at which transformations can be specified and by lowering the mismatch between model transformation languages and their application domain.