concurrent engineering, lacked integration of the
generated code with other platforms and their
graphical representations were too generic and non-
customizable to be applied on several domains
(Schmidt, 2006). Thereafter, both the evolution of
programming languages and the lessons learned
from CASE tools caused the emergence of
increasingly better MDD and DSL supporting tools.
More recently, language workbenches are popular
solutions to develop DSLs and to overcome the
inflexibility of the CASE tools. A language
workbench is essentially a tool that supports the
definition, reuse and composition of DSLs, as well
as the creation of customized Integrated
Development Environments (IDEs) (Fowler, 2005).
In essence, a language workbench allows not only
the creation of DSLs, but also the creation of custom
IDEs for their usage. For that reason, language
workbenches are also known as meta-CASE tools
(Costagliola, et al., 2006).
During the last years our research group has
conducted several works in the area of MDD,
namely developing DSMLs defined as UML
profiles, such as (de Sousa Saraiva & da Silva, 2009)
(Ribeiro & da Silva, 2014) (de Sousa & Silva, 2015)
(Filipe, et al., 2016). In this paper we provide an
analysis and discussion of this kind of tools based on
our most recent experiences. More specifically, we
focus on analyzing workbenches when the goal is to
define and use a complex UML profile to implement
a MDD process. We consider as a complex UML
profile, a non-trivial language that contains several
concepts and representations (diagrams or views).
For that purpose, we have defined an evaluation
framework composed of six criteria to describe and
analyze the main features of three representative
language workbenches (Papyrus, Enterprise
Architect and Sirius) using the XIS-Mobile language
as case study. The XIS-Mobile language (Ribeiro &
da Silva, 2014) is a UML profile that allows the
specification of mobile applications in a platform-
independent way and is composed of several
concepts organized in six views. The main features,
limitations and difficulties of implementing a
complex DSML, like XIS-Mobile, and its supporting
tools are discussed, what provides a relevant
contribution to users who also need to implement
such DSMLs.
The outline of this paper is structured as follows.
Section 2 presents DSL workbenches not directly
considered in this paper. Section 3 defines the
analysis context by describing the XIS-Mobile
language used as case study and the evaluation
criteria. Section 4 presents the main features of the
analyzed tools. Section 5 presents and discusses the
results of this comparative study. Section 6 discusses
the related work. Finally, Section 7 concludes the
paper summarizing its key points and referring
future work.
2 LANGUAGE WORKBENCHES
As mentioned above, a language workbench (or
meta-CASE tool (Costagliola, et al., 2006)) is a
software tool that supports the definition, reuse and
composition of DSLs with the corresponding
creation of customized IDEs, providing features
such as model edition, validation and different types
of model transformations. This paper focuses on the
analysis of only three language workbenches, mainly
due to reasons of space restrictions and for better
explanation. However, if we wanted to broad the
scope (e.g. consider not only UML profiles), other
popular tools could be mentioned, namely MPS,
Xtext, Spoofax, MetaEdit+ or Microsoft DSL Tools.
The Meta Programming System (MPS)
(http://www.jetbrains.com/mps) is an open source
language workbench developed by JetBrains for the
creation of textual DSLs. MPS provides a
projectional editor that supports syntactic forms for
text, tables or mathematical symbols, allowing the
definition of the language, its editor and code
generators. The languages produced with MPS can
be standalone languages, extensions or compositions
of other languages.
Xtext (https://www.eclipse.org/Xtext) is a
framework for developing textual DSLs, provided as
an Eclipse plug-in. Xtext allows the definition of a
DSL using an EBNF grammar language and from it
generates a parser, an AST metamodel in EMF and a
full-featured Eclipse text editor plug-in. Xtext also
integrates with other tools from the Eclipse
Modeling Project.
Spoofax
(http://metaborg.org/spoofax) is a
workbench for the development of textual DSLs
with full-featured Eclipse editor plug-ins. Spoofax
uses several meta-DSLs: (1) SDF grammar is used
to define the syntax of the DSL and from it basic
editor services (e.g. syntax highlighting) are
automatically created; (2) NaBL for name binding,
helping in services like code completion or reference
resolving; and (3) Stratego for transformations like
refactoring services (e.g. rename) and code
generation. From these specifications, Spoofax
generates an Eclipse-based editor to use the defined
DSL.