List of Tutorials
- Paulo Borba, Universidade Federal de Pernambuco, Recife, Brazil (slides)
- James R. Cordy, Queen's University, Kingston, Canada (slides: 1, 2, 3)
- Zinovy Diskin, University of Waterloo and University of Toronto, Canada (slides)
- Görel Hedin, Lund Institute of Technology, Sweden (slides: 1, 2, 3)
- Jean-Marc Jézéquel, IRISA, Rennes, France (slides)
- Paul Klint, CWI and Universiteit van Amsterdam, Netherlands (slides)
- Cristina Videira Lopes, University of California, Irvine, USA
- Bran Selic, Malina Software Corp., Canada (slides)
Paulo Borba: Software Product Line Refactoring
Abstract
Although software product lines (SPLs) can bring significant productivity and quality improvements through strategic reuse, bootstrapping existing products into an SPL, and extending an SPL with one more product, is often risky and expensive. We show how product line refactoring—through catalogues, tools and decision models—can help to guide SPL derivation and to assure the safety of the SPL derivation and evolution processes.
Bio
Paulo Borba is an associate professor at the Informatics Center of the Federal University of Pernambuco, Brazil, where he leads the Software Productivity Group. His main research interests are on the following topics and their integration: aspect-oriented languages and development, software product lines, and program and model refactoring.
Material
James R. Cordy: The TXL Source Transformation Cookbook

Abstract
In this tutorial we will explore a complete transformation cookbook, consisting of recipes for solving every kind of source transformation problem. The menu will include appetizers (parsing and pretty-printing problems), soups (type analysis and inference problems), salads (annotation and markup problems), entrees (design recovery and model extraction problems), meats (source analysis and migration problems), desserts (symbolic and abstract interpretation problems) and cheeses (full interpretation and compilation problems). Solutions will be discussed using concrete practical examples, and demonstrated as working programs implemented in the TXL source transformation language.
Bio
James Cordy is professor of computing and software engineering at Queen's University, Kingston, Canada. As leader of the TXL project he has been involved in source transformation systems for over 20 years. A registered professional engineer and senior member of the IEEE, Dr. Cordy was recently named an ACM Distinguished Scientist in recognition of his research accomplishments and their significant impact on the computing field.
Material
Zinovy Diskin: Chasing Diagrams in the Mapping Forests of Model Transformations

Abstract
The model transformation world is full of mappings. A model maps the graph of elements to the graph of types (the metamodel). An update is a partial mapping between the before- and after-states of the model, and model synchronization maps updates. We thus have mappings of mappings between mappings…, which are "distributed" over metamodel mappings in heterogeneous situations. The tutorial presents a mathematical machinery that allows one to reason precisely about these structures.
Bio
Zinovy Diskin is Research Associate at the University of Waterloo, Canada. Before entering academy, he worked in industry as a system analyst for a number of companies in US and Latvia, and has been consulting in conceptual database design. He received his Dr. Math from the University of Latvia.
Material
Görel Hedin: Generating Language Tools with JastAdd

Abstract:
JastAdd is an open-source system for generating compilers and other language-based tools. Its declarative specification language is based on attribute grammars and object-orientation. This allows tools to be implemented as composable extensible modules, as exemplified by JastAddJ, a complete extensible Java compiler. This tutorial gives an introduction to JastAdd and its underlying attribute grammar mechanisms, modularity mechanisms, and common design strategies. It will be demonstrated both how to build new languages from scratch and how to extend JastAddJ.
Bio:
Görel Hedin is an associate professor at Lund University, Sweden. Her research interests include generative techniques, compilers and language tools, object-oriented languages and design, and agile methodologies. She has served on the programming committee of many well-known international conferences, including ECOOP, OOPSLA, and CC. She can be reached at es.htl.sc|lerog#es.htl.sc|lerog.
Links:
- Errata of the figures from the paper and the presentation
- Lecture 1 slides
- Lecture 2 slides
- Lecture 3 slides
Jean-Marc Jézéquel: Model Driven Language Engineering with Kermeta

Abstract
Traditional Programming Language Engineering starts with the grammar of a language to produce a variety of tools for processing programs expressed in this language. Recently however, many new languages tend to be first defined through metamodels, i.e. models describing their abstract syntax. Relying on well tooled standards such as E-MOF, this approach makes it possible to readily benefit from a set of tools such as reflexive editors, or XML serialization of models. This tutorial aims at showing how Model Driven Engineering can easily complement these off-the-shelf tools to obtain a complete environment for such a language, including interpreter, compiler, pretty-printer and editor. We illustrate the conceptual simplicity and elegance of this approach using the running example of the well known LOGO programming language, developed within the Kermeta environment.
Bio
Jean-Marc Jézéquel received an engineering degree in Telecommunications (ENSTB, 1986), and a Ph.D. in Computer Science (University of Rennes, 1989). He first worked in the Telecom industry before joining CNRS (1991). Since 2000, he is a Professor at the University of Rennes, and also leads an INRIA research team called Triskell. His interests include model driven software engineering for telecommunications and distributed systems. He is the author of several books and of more than 100 publications in international journals and conferences. He is a member of the steering committee of the AOSD and MODELS/UML conference series and served on the editorial boards of IEEE Transactions on Software Engineering and on the Journal on Software and System Modeling: SoSyM.
Material
Paul Klint: Rascal: Meta-programming Made Easy

Abstract
Rascal is a recently designed language for software analysis and transformation that seamlessly merges lexical matching, context-free parsing, term traversal/rewriting and relational calculus. It provides these concepts in a Java-like style thus reducing the learning curve for ordinary programmers. The tutorial illustrates Rascal with numerous examples and discusses the tradeoffs we have made during design and implementation of the language.
Bio
Paul Klint is head of the software engineering department at Centrum voor Wiskunde en Informatica in Amsterdam and full professor in Computer Science at the University of Amsterdam. His research interests include generic language technology, domain-specific languages, software renovation, and technology transfer. Download his favourite software from www.meta-environment.org.
Material
Cristina Videira Lopes: Sourcerer: Slicing and Dicing Large Amounts of Open Source Code

Abstract
Sourcerer is an engine for crawling, downloading, parsing, analyzing, searching, and retrieving open source code available on the internet. At its heart there is a static analyzer that mines information for further uses. This information is used both to conduct empirical studies of software as well as to support the design of tools that facilitate modern software development. Currently, Sourcerer holds a collection of close to 5,000 Java projects, totaling 37 million lines of code.
This tutorial focuses on static analysis in the context of mining large repositories of software, and the new forms of software science that the availability of large quantities of software enables.
Bio
Cristina Videira Lopes is an Associate Professor in the School of Information and Computer Sciences at the University of California, Irvine. Prior to being in Academia, she worked at the Xerox Palo Alto Research Center (1995-2001). She is most known as co-inventor of AOP (Aspect Oriented Programming). She also made contributions to Ubiquitous Computing research with her work on lightweight software acoustic modems that encode small amounts of data in socially-acceptable sounds. She is the recipient of several NSF grants, including a prestigious CAREER Award. Dr. Lopes has a PhD from Northeastern University, and MS and BS degrees from Instituto Superior Tecnico in Portugal.
Bran Selic: The Theory and Practice of Modeling Language Design for Model-Based Engineering

Abstract
The past decade has seen the emergence of numerous computer languages for use in the specification of complex systems. These languages are called "modeling languages" since they tend to represent systems at very high levels of abstraction. This tutorial focuses on the pragmatics of designing such languages and the corresponding theoretical underpinnings.
Bio
Bran Selic is CEO and Founder of Malina Software Corp. a Canadian company specializing in model-based engineering methods. He has extensive experience in the design and application of modeling languages and tools and was a key contributor to the well-known Unified Modeling Language (UML) standard.