Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Eclipse Modeling Day/Session Abstracts Toronto

Building DSLs with Xtext

Domain-Specific Languages (DSLs) are becoming more and more popular, allowing developers to express their intent more precisely and with less syntactic noise. DSLs can be built on top of a host language (like Java or Ruby), which are referred to as "internal DSLs". External DSLs are far more flexible in terms of language design: you can define any desired grammar, you can define domain specific constraints and error messages, and you can process the DSL in a concise manner because it can either be interpreted or transformed into the code of any language by a generator.

Xtext, which is a part of the Eclipse Galileo release, is a framework for developing textual domain-specific languages. Given an EBNF-style grammar, Xtext automatically generates an Ecore meta model and a rich- featured, fully configurable text-based DSL editor including features such as syntax highlighting, hyperlinked reference navigation, reference look-up, code completion, formatting, an outline and so on. The default implementation can easily be customized.

In this session we will explain what DSLs are and why you should care about using them. After a short introduction, we will show how to develop DSLs with Xtext during a live demo. You will see how to define a grammar for a DSL and create a full-blown editor for this DSL. We will also show how to apply code generation that allows you to transform your DSL scripts into running software.


Papyrus: Advent of an Open Source IME at Eclipse

The role and significance of open source in system design is constantly increasing. Organizations are now widely using open source solutions for many key aspects of development, including real time operating systems, compilers, debuggers, and middleware. The key benefits provided by open source include greater control over product roadmaps, lower costs, more features, better support, and avoidance of vendor lock-in. Modeling technologies are becoming increasingly relevant to consumers of open source; indeed, with the incubation of e4, modeling has found a home at the very heart of the Eclipse platform itself. With the commoditization of modeling tools at Eclipse, there is a growing interest in the development of an open source tool suite that supports model-based software engineering (MBSE).

In this session, we present Papyrus, an open source, Eclipse-based, integrated modeling environment (IME). The goal of Papyrus, a sub-project of the Model Development Tools (MDT) project, is threefold: first, to provide a complete, efficient, robust, methodologically agnostic modeling tool to both industry and academia; second, to provide an open and flexible facility for defining and utilizing domain-specific languages that allow for customizable validation and code generation; and third, to enable the integration of key MBSE elements such as action languages and model-level debuggers. Initially focused on UML and related standards (such as SysML and MARTE), Papyrus includes a backbone that allows integration of multiple editors and promises all the features that one would expect in an IME, such as a model exploration view, standards-compliant editors, customizable property views, and support for collaborative work, advanced profile management, and customization though preferences and extension points. We will explore Papyrus from the perspective of its three communities (developers, vendors, and users) while providing an overview of what functionality currently exists, what we expect to achieve in the first major release (Helios), and where we see the project going in the future.


Modeling on an Enterprise Scale

Persisting models in files is not always straightforward. Often you’ll need multi-user support or transactionality with fined-grained object-level locking, i.e., database-style persistence. I’ll introduce the CDO Model Repository, which comprises three tiers and is a general runtime platform for distributed shared models.

We'll not dive into too many implementation details of CDO. I'll rather provide you with a functional overview and explain the benefits in the context of some typical enterprise scenarios. After attending this talk you'll never want to live without the CDO Model Repository in your modeling projects.

Back to the top