A program that takes models as input and generates the target models as output and meanwhile keeps the information consistent. The aim of using a model transformation is to save effort and reduce errors by automating the building and modification of models where possible.