Classification of Model Transformation Tools: Pattern Matching Techniques Cl´ audio Gomes, Bruno Barroca, and Vasco Amaral CITI, Departamento de Inform´ atica, Faculdade de Ciˆ encias e Tecnologias, Universidade Nova de Lisboa, Portugal Abstract. While comparing different model transformation languages (MTLs), it is common to refer to their syntactic and semantic features and overlook their supporting tools’ performance. Performance is one of the aspects that can hamper the application of MDD to industrial scenar- ios. An highly declarative MTL might simply not scale well when using large models due to its supporting implementation. In this paper, we fo- cus on the several pattern matching techniques (including optimization techniques) employed in the most popular transformation tools, and dis- cuss their effectiveness w.r.t. the expressive power of the languages used. Because pattern matching is the most costly operation in a transforma- tion execution, we present a classification of the existing model transfor- mation tools according to the pattern matching optimization techniques they implement. Our classification complements existing ones that are more focused at syntactic and semantic features of the languages sup- ported by those tools. Keywords: Model Transformations, Languages Design, Pattern Match- ing Techniques 1 Introduction The immersion of computer technology in a wide range of domains leads to a situation where the users’ needs become demanding and increasingly complex (the problem domain). Consequently, engineering successful software systems also becomes increasingly complex (solution domain). A promising “divide-and- conquer” idea to break down this increasing complexity, is to intensively use Models during all stages of software development. In Model Driven Development (MDD), both the design and development of new software systems is done by having multiple levels of abstraction, where each level deals only with a particular aspect of the system (therefore decreasing its complexity), and assuring the consistency between them (e.g., translations, synchronizations, etc.). In practice, each level of abstraction can be formalized by means of a Domain Specific Modelling Language (DSML), and materialized by its respective supporting tools ,i.e., editors, simulators, interpreters, analysers and compilers [1–3].