(JGraph Ltd., 2013), Graphiti (Eclipse Foundation,
2012c), and JUNG (JUNG Framework Development
Team, 2010).
Code generation toolkits provide a higher level of
abstraction to the language creator. In these toolk-
its, the language editor is created by generating code
based on some type of language specification. While
these tools allow for both faster and easier definition
of DSMLs, customizing the code generated by these
tools is usually a complex task. Furthermore, changes
made to the generated code complicate changing the
original language specification and re-generating the
editor code. Some examples of generation toolkits are
GMF (Eclipse Foundation, 2012b), Visual Studio Vi-
sualization and Modeling SDK (Microsoft Corpora-
tion, 2012) and VisualDiaGen (Minas, 2004).
Meta-tool platforms provide a higher level or
flexibility by using meta-model language interpreta-
tion instead of code generation. In these platforms,
the language creator defines the meta-model of the
language using the definitions available in the tool.
When the user wants to create a model for a desired
language, the platform interprets the meta-model and
creates a matching editor for the model. Meta-tool
platforms support better meta-model evolution and in
some cases are able to validate meta-model changes
that may invalidate existing models. Some exam-
ples of meta-tool platforms are MetaEdit+ (MetaCase,
2013), GME (Davis, 2003), and Marama (Grundy
et al., 2013). Version 2 of the UML language (OMG,
2010) provides a mechanism that can be used to de-
scribe DSMLs using the profiles mechanism (Selic,
2007), but the authors are unaware of any systems
that implement the definition of a new DSML using
this mechanism.
OPM/D uses the meta-tool platform approach.
The main differences between OPM/D and existing
meta-tool approaches is that with OPM/D the en-
tire language definition is done visually. This is
in contrast with MetaEdit+, where the language is
defined using dialogs; GME, where language con-
straints are defined using OCL (OMG, 2012); and
Marama, which also uses OCL to define constraints.
3 CREATING DSMLS WITH
OPM/D
OPM/D provides a visual language and a methodol-
ogy to define domain-specific modeling languages.
New DSMLs are defined by creating a language meta-
model, which specifies the syntax of the language be-
ing defined and what operations the modeler can ap-
ply at each point during the model construction pro-
cess. This language meta-model is created using the
OPM/D meta-modeling language, which is a subset
of the graphical language used by the Object-Process
Methodology (OPM) (Dori, 1999). We decided to
use OPM as the basis our meta-modeling language
because of the following reasons:
1. OPM has been used to model real-world prob-
lems from different domains such as biological
systems (Dori and Choder, 2007) (Somekh et al.,
2012), ERP (Soffer, 2003) and Web Applications
(Reinhartz-Berger et al., 2002). This variability in
application domains provides a high level of con-
fidence that the language is rich enough to model
complex systems in general, and DSMLs in par-
ticular.
2. OPM allows for the modeling of both static and
dynamic aspects of a system. When defining a
DSML, both of these traits need to be defined:
static models define the static syntax of the lan-
guage, while dynamic models are used to validate
model changes at run-time.
3. Empirical experiments (Reinhartz-Berger and
Dori, 2005) suggest that OPM is easier to under-
stand than UML when modeling dynamic aspects
of a system, and at least as good as UML when
modeling structural aspects of a system.
An OPM/D language meta-model is composed of
two parts: (1) the static structure of the entities in the
language, and (2) a set of construction rules that vali-
date model construction operations done by the mod-
eler.
3.1 The OPM/D Meta-modeling
Language
An OPM/D language meta-model consist of a static
structure and a set of validation rules, both of which
are defined using Object-Process Diagram (OPD). An
OPD is a directed typed graph (Bibliowicz and Dori,
2011). The nodes of the graph can be Object nodes,
Process nodes, and State nodes, which must be con-
tained inside Object nodes. The links of the graph can
be Structural links and Procedural Links. Structural
links can be Aggregation, Exhibition or Specializa-
tion links. Procedural links can be Instrument, Con-
sumption and Result. The visual representation of the
OPM/D nodes and links is shown in Figures 1 and 2.
The essential semantics of OPM/D nodes and
links are described as follows (Due to lack of space,
it is impossible to formally define them here; a com-
plete and expanded definition of them can be found in
(Dori, 1999)):
ICSOFT2013-8thInternationalJointConferenceonSoftwareTechnologies
474