Presenter: Maged Elaasar
Senior Software Architect
NASA Jet Propulsion Laboratory
California Institute of Technology, Pasadena, USA
Model-driven development (MDD) and Domain-specific languages (DSLs) offer software engineers powerful new ways to improve productivity, enhance quality, and insulate systems from rapid technology changes. In MDD, a software application model is defined at a higher abstraction level and then converted into a working application using automated transformations or interpretations. A MDD platform is often considered a high-productivity platform-as-a-service given the speed at which users build and deploy new applications. This is particularly true when an application model is expressed in a DSL, as opposed to UML, a general-purpose language for software modeling. A DSL is designed to be useful for a specific set of tasks, which typically starts small then grows with the growing needs of the domain or application.
In this tutorial, we overview the DSL principles and MDD techniques that software engineers need to master. In particular, we cover the definition of DSL abstract syntax, textual syntax and graphical notation. For MDD, we cover model-to-model, model-to-text, and model-to-document transformations. On the tooling front, we offer invaluable insights to developers who are working with any tool or platform. However, we also present a pragmatic guide to creating DSLs and using MDD techniques with the powerful open source Eclipse platform. We introduce several technologies from the Eclipse Modeling Project, like EMF, Xtext, Sirius, Xtend, BIRT and CDO that can be used together in DSL and MDD development. Throughout the tutorial, we use a running example of a DSL as a context to introduce the concepts and demonstrate the technologies.
This tutorial targets software developers, architects and researchers who want to learn how to boost their software development activities with MDD and DSLs. It also targets those who are not familiar with or who need to learn more about the Eclipse Modeling Project and its technologies. The tutorial assumes basic understanding of object oriented programming with Java (or similar languages). Some familiarity with the Eclipse platform would be helpful but not necessary.
Maged Elaasar is a senior software architect at the Jet Propulsion Laboratory (Caltech/NASA), where he leads R&D projects in model-based systems engineering. Prior to that, he was a senior software architect at IBM, where he led R&D projects in model-driven software engineering. He holds a Ph.D. in Electrical and Computer Engineering and M.Sc. in Computer Science from Carleton University (2012, 2003), and a B.Sc. in Computer Science from American University in Cairo (1996). He has received 12 U.S. patents and authored over 25 peer-reviewed journal and conference articles. He was the co-chair of the Unified Modeling Language (UML) revision task force at the Object Management Group. He is also a long time contributor to the Eclipse Modeling Project, especially to the Graphical Modeling Framework and the Papyrus Modeling Platform. Maged is also the founder of Modelware Solutions, a software consultancy and training company with international clients and affiliations to international R&D laboratories like SQUALL (Canada), CEA LIST (France), SnT (Luxembourg) and Simula (Norway).