Modeling is a key element in reducing the complexity of software systems during their development and maintenance. Model transformations are essential for elevating models from documentation elements to first-class artifacts. Transformations also play a key role in analyzing models to reveal conceptual flaws or highlight quality bottlenecks and in integrating heterogeneous tools into unified tool chains.
Model transformation encompasses a variety of technical spaces, including modelware, grammarware, dataware, and ontoware, a variety of model representations, e.g., trees vs. graphs, and a variety of transformation paradigms including rule-based transformations, term re-writing, and manipulations of objects in general-purpose programming languages. Moreover, in other fields like compiler construction the use of transformations is essential. Identifying means to reuse and share knowledge between fields is also of interest.
The study of model transformation includes foundations, structuring mechanisms, and properties, such as modularity and composability, transformation languages, techniques, and tools. An important goal of the field is the development of high-level model transformation languages, providing transformations that are amenable to higher-order model transformations or tailored to specific transformation problems. At the same time, usable and scalable verification techniques for model transformations are essential for the practical development of the field. The efficient execution of model queries and transformations by scalable transformation engines is also a key challenge. Novel algorithms as well as innovative (e.g., distributed) execution strategies and domain-specific optimizations are sought in this respect.
To achieve impact on software engineering in general, methodologies and tools are required to integrate model transformation into existing development environments and processes. ICMT is the premier forum for researchers and practitioners from all areas of model transformation.
Topics of interest include, but are not limited to:
Transformation paradigms and languages:
- graph rewriting, tree rewriting, attribute grammars
- rule-based, declarative, imperative, and functional
- textual, graphical
- model queries, pattern matching
- transformation by example/demonstration
- modularity, reusability, and composition
- comparison of transformation languages
- theoretical foundations
- interplay with other fields, e.g., compiler construction and compiler verification
Transformation algorithms and strategies:
- bidirectional transformation
- incremental transformation
- scalability and optimization
- termination and confluence
- higher-order transformation
- transformation chains
- non-functional aspects of transformations
Development of transformations:
- specification, verification, and validation
- verification and validation
(incl. testing, debugging, termination, confluence, metrics) - evolution
- development processes
- tool support
Pragmatic aspects:
- refactoring
- aspect weaving
- model comparison, differencing, and merging
- model synchronization and change propagation
- co-evolution of models, metamodels, and transformations
- round-trip/reverse/forward engineering
Applications and case studies:
- benchmarks
- industrial experience reports
- empirical studies