ACM/IEEE 16th International Conference on
Model Driven Engineering Languages and Systems

 

Tutorials

The following 10 half-day tutorials will be presented during Monday (September 30, 2013) and Tuesday (October 1, 2013) of MODELS 2013.

 

Monday (September 30)

TM1
AM
TM2
AM
Model Finding and Its Applications
Lionel Briand, Mathias Soeken, and Zohaib Iqbal
TM3
PM
TM4
PM
Empirical Research in Model Based Software Engineering
Michel Chaudron, Marcela Genero, Silvia Abrahao,
Jon Whittle, and Lars Pareto
TM5
PM

 

Tuesday (October 1)

TT6
AM
TT7
AM
TT8
AM
TT9
PM
DSL Engineering
Markus Voelter
TT10
PM
UML Testing Profile – A Language for Model-based Testing
Marc-Florian Wendland and Ina Schieferdecker

_______________________________________________________
TM1: Applying Model-Driven Engineering Technologies in the Creation of Domain-Specific Modeling Languages
Bruce Trask and Angel Roman
MDE Systems Inc., USA

Miramar South
Monday 8:30am-12:00pm, September 30, 2013

Summary: Model-Driven Engineering (MDE) brings together multiple technologies and critical innovations and formalizes them into the next wave of software development methods. This tutorial will cover the basic patterns, principles and practices of MDE. The three main MDE categories include the development of Domain Specific Languages (DSL), Domain Specific Editors (and Views), and Domain Specific Transformation Engines or Generators. Expressed in terms of language development technology, these mirror the development of the Abstract Syntax, Concrete Syntax and Semantics of a new Domain Specific Language. This tutorial will cover the basic effective patterns, principles and practices for developing these MDE software artifacts. The tutorial will show how to apply these concepts as effective means with which to both raise levels of abstraction and domain specificity and thus increase power and value of tools and languages that allow developers to tackle the complexities of today’s software systems. It will also show how to effectively leverage abstraction without sacrificing the ability to robustly and precisely refine these abstractions to solve complex real world problems. To show these patterns and principles in action, this tutorial will cover the details of how to leverage MDE Language Workbenches and frameworks in support of robust software development.

_______________________________________________________
TM2: Model Finding and Its Application
s
Lionel Briand
University of Luxembourg, Luxembourg
Mathias Soeken
University of Bremen, Germany and DFKI Cyber-Physical Systems, Germany
Zohaib Iqbal

University of Luxembourg, Luxembourg and National University of Computer & Emerging Sciences, Pakistan 

Balboa
Monday 8:30am-12:00pm, September 30, 2013

Summary: Model finding describes algorithms that automatically determine models to a given meta-model such that all constraints are fulfilled. These algorithms are emarkably instrumental and sufficiently flexible and have been used in various MDE-based workflows and activities such as model verification or model automation. This tutorial describes the underlying concepts of model finders and outline how they are implemented using different approaches such as Boolean satisfiability or Constraint Satisfaction Problems. Besides that the tutorial contains talks on how to apply model finders e.g. for automatic test generation or validation of model transformations.

_______________________________________________________
TM3: Understanding Complex Changes and Improving the Quality of UML and Domain-Specific Models
Thorsten Arendt
Philipps-Universität Marburg, Germany
Timo Kehrer
Universität Siegen, Germany
Gabriele Taentzer
Philipps-Universität Marburg, Germany

Madrid
Monday 1:30pm-5:00pm, September 30, 2013

Special Notice: Those attending this tutorial should download a tool environment that will be used in the tutorial. This can be downloaded at http://www.eclipse.org/emf-refactor/ following the MoDELS 2013 link.

Summary: Understanding model changes is a basic requisite to manage the evolution of model-based systems. Currently available model differencing tools report huge amounts of low-level changes in an inconvenient way such that complex model changes are difficult to understand. A promising approach to overcome this problem is to integrate model differencing with model editing.

Software quality assurance frequently leads back to the quality assurance of involved models. In our approach, we propose a model quality assurance process being adaptable to project- and domain-specific needs. It is based on static model analysis using model metrics and smells. Based on the analysis outcome, appropriate model refactoring steps may be performed.

In the first part of the tutorial, the model differencing tool SiLift is pre-configured to a selected subset of the UML and ready to demonstrate high-level differencing and evolution analysis for UML models created with CASE tools such as RSA and Papyrus based on EMF. Moreover, these tools can be extended by quality assurance techniques performing metrics reports, smell detection, and refactoring of UML models using the Eclipse incubation project EMF Refactor. Subsequently, participants will be in the role of language engineers and will learn how to adapt SiLift and EMF Refactor to new domain-specific modeling languages.

_______________________________________________________
TM4: Empirical Research in Model Based Software Engineering
Michel Chaudron
Leiden University, The Netherlands
Marcela Genero
University of Castilla-La Mancha, Spain
Silvia Abrahao
Universidad Politécnica de Valencia, Spain
Jon Whittle

Lancaster University, UK
Lars Pareto
Chalmers University, Sweden

Miramar South
Monday 1:30pm-5:00pm, September 30, 2013

Summary: The objective of this tutorial is to explain the basics of empirical research in software engineering in general and how to integrate this into research that relates to software modeling. The tutorial will cover:

  • basics of empirical software engineering (What is it? Why is it relevant to the MODELS-community?)
  • we will briefly discuss different empirical research strategies and focus on experiments and case studies
  • we will point out guidelines and key literature that exist for doing different kind of empirical studies
  • we will present some empirical studies that have been presented at MODELS and share the lessons learned (do's and dont's)
  • time will be reserved to discuss how to design empirical studies for topics proposed by attendants.

In the second half of the tutorial, we will split the group in two: one focussing on quantitative studies (experiments & surveys), the other group on qualitative studies (case study, interview, action research). In these sessions we will discuss research plans/designs suggested by the participants of the tutorial (how to improve the research design, what are threats to validity, etc).

The tutorial should be of interest to researchers in the MODELS-community (both faculty and Ph.D. students) that want to learn how to design empirical studies in support of their modeling-related research.

_______________________________________________________
TM5: The Theory and Practice of Modeling Language Design

Bran Selic
Malina Software Corp., Canada & Simula Research Laboratory, Norway & U. of Toronto, Canada

Balboa
Monday 1:30pm-5:00pm, September 30, 2013

Summary: Model-based software engineering (MBSE), while not a panacea, has demonstrated its effectiveness in alleviating some of the most critical design issues in developing complex software systems. This tutorial focuses on a vital component of MBSE: the design of modeling languages and related technologies including model transformations. In contrast to traditional programming languages, whose primary purpose is to specify implementations such that they can be realized by a computer, modeling languages must satisfy a broader set of objectives, since the role of models typically extends beyond specification. This imposes additional challenges for language designers, beyond what is required for programming language design.

The tutorial is divided into 4 parts: (1) A critical introduction to MBSE, which provides the context for modeling languages (2) The theory and practice of modeling language design (i.e., key issues, principal design dimensions) with examples, (3) Practical methods for formal specification of modeling languages (metamodeling, language design patterns, etc.), and (4) A review of model transformation technologies and related issues, including model-to-model and model-to-text transforms. Standard widely-used modeling languages, including EMF, UML, and MOF, as well as some domain-specific languages are used to illustrate both good and bad design practices.

_______________________________________________________
TT6: Implementing a DSL with the Intentional Domain Workbench

Shane Clifford and Mats Helander
Intentional Software, USA

Valencia East and West
Tuesday 8:30am-12:00pm, October 1, 2013

Summary: The Intentional Domain Workbench (IDW) is a language workbench with a strong presentation engine based on projectional editing that makes it suitable for implementing DSLs targeting business users. In the workshop we will implement support for a business DSL, including language schema definitions, semantic validation, textual and graphical editing and code generation. Participants will get hands on experience with development for the projectional editing paradigm and gain good insight into how this approach impacts DSL design and implementation.

_______________________________________________________
TT7: Feature Model Management: Smart Operations and Language Support

Philippe Collet
Université Nice Sophia Antipolis, France

Castillian
Tuesday 8:30am-12:00pm, October 1, 2013

Summary: Variability modelling and management is pervasive in a growing number of software engineering contexts (e.g., software product lines, dynamic adaptive systems). Feature models are the de facto standard to formally represent and reason about commonality and variability of a software system. This tutorial aims at presenting feature modelling languages and tools, directly applicable to a wide range of model-based variability problems and application domains. We will explain how to import, export, compose, decompose, edit, configure, compute diffs, refactor, reverse engineer, test, or reason about (multiple) feature models. We will also illustrate how these "smart" operations can be combined to realize complex variability management tasks. Participants (being practitioners or academics, beginners or advanced) will learn the principles and foundations of tool-supported techniques dedicated to the model-based management of variability.

_______________________________________________________
TT8: Modeling Software Structures with GrammarLab
Vadim Zaytsev
CWI, The Netherlands

Madrid
Tuesday 8:30am-12:00pm, October 1, 2013

Summary: Contrary to the popular misconception, grammars are not necessarily strangers in the modelware technological space. In fact, they are just models for software languages: textual, visual, tabular, or committing to any other kind of structure. Thus, manipulating grammars is a mature model-based methodology of software language engineering. In this tutorial, we introduce GrammarLab: a library for Rascal language workbench specifically developed to collect recent advancements in grammar(ware) engineering. The tutorial will start with a gentle introduction to grammar technology for MDE experts, and work its way through towards more advanced topics.

The techniques explained in this tutorial, embrace the whole life cycle of grammars. We will discuss the variety of notations for specifying grammars, and how to model them in order to extract grammatical knowledge from diverse sources. Since many of those sources were created without any tool support, we will also discuss error recovery techniques applicable to damaged and inconsistent sources.

Once the grammar is extracted or recovered, as we have done for 500+ grammars in the Grammar Zoo, its properties can be analyzed and its evolution steps can be modeled as transformation steps. After discussing the importance of those, we will wrap up by bringing up the topics of testing and other possible uses of grammars in a broad sense (Ecore models, UML class diagrams, XML schemata, algebraic data types, etc).

_______________________________________________________
TT9: DSL Engineering - Designing and Implementing Domain-Specific Languages

Markus Voelter
Independent/itemis, Germany

Valencia East and West
Tuesday 1:30pm-5:00pm, October 1, 2013

Summary: Domain Specific Languages play an increasingly important role in model-driven software development. As the tasks addressed with DSLs become more complex, DSLs must become more sophisticated and the language workbenches more powerful. In particular, they have to support composition and extension of languages, DSL debugging as well as the flexible combination of textual, tabular and graphical notations. In this tutorial I will provide a thorough introduction to DSLs based on my book DSL Engineering. I will cover the two main parts of the book, namely the design of DSLs and their implementation.

In the design part, I will discuss some design considerations from seven design dimensions: expressivity, coverage, semantics, separation of concerns, complete-ness, language modularization and syntax. The design trade-ofs are illustrated based on real-world case studies.

The implementation part, I will discuss the various concerns relevant for implementing DSLs, including abstract and concrete syntax, type systems, code generation and/or interpretation, IDE support and debugging. These will be illustrated with examples based on several language workbenches including Xtext, Spoofax and MPS.

Participants will gain a thorough understanding of how to design and build DSLs, and of the capabilities of today's language workbenches.

_______________________________________________________
TT10: UML Testing Profile – A Language for Model-based Testing

Marc-Florian Wendland and Ina Schieferdecker
Fraunhofer Institut FOKUS, Germany

Madrid
Tuesday 1:30pm-5:00pm, October 1, 2013

Summary: In the last few years the principles of model-driven software engineering have been integrated with software quality assurance approaches, first and foremost represented by Model-Based Testing (MBT). The opinions on what exactly MBT is differ sharply about what kind of models should be used and which notation is most appropriate to keep the complexity of large-scale software-based systems manageable. As far back as 2005, a working group at Object Management Group (OMG) elaborated the first industry-accepted language for doing MBT on top of UML. This language is called UML Testing Profile (UTP).

UTP is a standardized language for designing, visualizing, specifying, analyzing, constructing, and documenting the artifacts commonly used in and required for testing software-based systems on top of UML. UTP-based test specifications are independent of concrete test methodologies, application domains, or testing tool and may reside on different level of abstractions. UTP is strongly dedicated to industrial application due to its relation to UML, the de-facto standard for model-driven engineering in industry. This tutorial provides a comprehensive overview of UTP and discusses how UTP can be used in a given test process.

 

News