Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Eclipse Modeling Day/Session Abstracts"

(Building DSLs with Xtext)
Line 9: Line 9:
  
 
====Building DSLs with Xtext====
 
====Building DSLs with Xtext====
'''Moritz Eysholdt, itemis'''<br>
+
'''Heiko Behrens, itemis'''<br>
  
 
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.
 
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.

Revision as of 11:31, 2 October 2009

Credit Suisse Case Study: Model Transformations

Richard Wood, Credit Suisse

Over the last few years, the generator framework openArchitectureWare has been applied to a variety of problems at Credit Suisse. openArchitectureWare provides a set of languages to describe model to text and model to model transformations, as well as model validation rules. Additionally, it allows the specification of transformation workflows by combining different tasks and enabling the definition of tailored solutions.

This session focuses on some of the implemented model transformations to show the diversity in requirements regarding model formats and generated artefacts. These include the use of UML, XML and JavaBeans models as input and the generation of Java, PL1, IDL, WSDL and other types of code.

An important aspect of transformations are metamodels which describe the concepts of a particular problem domain and provide the language by which models are expressed in. How such metamodels are integrated into the transformation process is a further topic discussed here. In respect to UML models, the use of UML profiles and the possibility of their generation is examined.

Building DSLs with Xtext

Heiko Behrens, itemis

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.

Developing Models to Improve Social Science Theory

Ed MacKerrow, Las Alamos Labs

Social science is challenged by the lack of rigorous experiments that measure all the relevant psychological, behavioral and social parameters. Modern software architectures allow for complex social science phenomena to be simulated on computers. Theories and models from the social sciences can be implemented in autonomous software objects (agents). Learning, adaptation, memory, network relationships and even emotional states can be modeled in these computer agents.

Simulating heterogenous populations of these agents shows promise for advancing social science theory by providing an experimental testbed. In addition to advancing theory, computational social science (CSS) shows promise for assessing how proposed policies and operations might be adopted, or rejected, by different groups and populations. The computational horsepower and software exist today to simulate large numbers (e.g. >>10) of interacting, adaptive and autonomous agents.

The required social science theories and models needed to construct valid computational social science simulations remain to be scientifically developed, documented, shared and tested. What is needed is a transparent, publicly-accessible, common computer simulation framework.

Computational social science simulations to date have been judged on whether or not they are based upon existing social science theories. Often these theories are assumed to be universally valid and scientifically sound with the onus put on the computer modelers to verify they have implemented the existing theories correctly, versus using the simulations to challenge the validity of the theories themselves.

Current practice relies upon round-table discussions of social science subject matter experts advising policy and decision makers. These subject matter expert approaches lack full transparency into the assumptions, methods and limitations of the propositions put forth by experts. Computational social science methods provide rigorous, repeatable and transparent methods for adjudicating, and advancing existing social science claims, concepts and theories. Computational modeling of social systems also forces more scientific rigor on the social sciences to develop transparent, falsifiable and explicit models of human behavior. Challenges that currently exist in advancing applied social science via computational methods and frameworks are presented here along with some suggestions on how to surmount these challenges using the Eclipse Modeling Framework.

Modeling is a Developer's Best Friend

Ed Merks, Eclipse Modeling Project

EMF provides a framework for converting other forms of model description to Ecore, for example, annotated Java, XML Schema and UML. From that, it generates a complete Java implementation of the model, platform neutral editing support for manipulating and viewing instances of the model, as well as an integrated Eclipse IDE or RCP editor for editing instances. Alternatively, this same instance behavior can be emulated dynamically, without generating any code. Both approaches support rapid prototyping to validate design decisions early. Because the template based generator (JET) supports merging, generated code can be hand specialized without losing the ability to regenerate after modifying the model, thereby providing the best of both modeling and programming worlds. By eliminating the menial tasks that are easily automated, such as implementing serializers and deserializers, EMF facilitates a tremendous productivity boost: the skilled developer can focus on the creative tasks rather than repeating the mundane tasks again and again. Utilities such as a copier for cloning instances, an equality tester for comparing instances and a change recorder for tracking instance modifications with playback or undo support, are really just the icing on the cake. This presentation will demonstrate the basic concepts needed to get started with a pragmatic focus on how to use the tools.

Modeling on an Enterprise Scale

Eike Stepper, Consultant

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.

Converging Textual and Graphical Editors

Moritz Eysholdt, itemis

When speaking about modeling, s conflict often comes up whether graphical notations or textual notations are superior. However, both sides have their advantages. For a textual notation existing tool, support can be used for comparing, merging and versioning. Furthermore, the well-known comfort of editing a text via the keyboard is present. There are established syntaxes to express expression statements. Graphical notations, however, have their advantages when the layout of a diagram can help the viewer to understand the underlying semantics. This is the case when, for example, flow or hierarchy is important.

Why not combine the advantages of both worlds? This will be done within this presentation. On the foundation of EMF, Xtext as a textual model framework will be combined with GMF as a graphical modeling framework. Thereby, a model will have a textual notation as well as a graphical notation and both will be editable. The following questions will be discussed:

  • What are the strengths and weaknesses of textual notations and what are the advantages of graphical notations?
  • How do you design a graphical notation for parts of the model?
  • Under which circumstances should the graphical and textual notation share a common abstract syntax? What are the advantages and where are the limits?
  • How do you synchronize an Xtext editor's and a GMF diagram editor's contents?
  • What are the places where concepts of Xtext and GMF can support each other? Example: validation.

There will be a demo to show the feasibility of the suggested concepts and to provide a first impression of the editor's look and feel.

The approach has been implemented in an industrial project by the presenter. Therefore, the contents are based on first-hand experience.

Back to the top