The Journal of Systems and Software 96 (2014) 172–193
Contents lists available at ScienceDirect
The Journal of Systems and Software
j our na l ho me page: www.elsevier.com/locate/jss
Synthesizing interpreted domain-specific models to manage
smart microgrids
Mark Allison
a,∗
, Karl A. Morris
b
, Fábio M. Costa
c
, Peter J. Clarke
b
a
School of Computer Science, Engineering, and Physics, University of Michigan-Flint, Flint, MI 48502, USA
b
School of Computing and Information Sciences, Florida International University, Miami, FL 33199, USA
c
Instituto de Informática, Universidade Federal de Goiás, CEP 74690-815 Goiânia, GO, Brazil
a r t i c l e i n f o
Article history:
Received 23 June 2013
Received in revised form 31 January 2014
Accepted 4 June 2014
Available online 15 July 2014
Keywords:
Domain-specific modeling languages
Model of execution
Microgrids
a b s t r a c t
The increase in prominence of model-driven software development (MDSD) has placed emphasis on the
use of domain-specific modeling languages (DSMLs) during the development process. DSMLs allow for
domain concepts to be conceptualized and represented at a high level of abstraction. Currently, most
DSML models are converted into high-level languages (HLLs) through a series of model-to-model and/or
model-to-text transformations before they are executed. An alternative approach for model execution
is the interpretation of models directly without converting them into an HLL. These models are created
using interpreted DSMLs (i-DSMLs) and realized using a semantic-rich execution engine or domain-specific
virtual machine (DSVM).
In this article we present an approach for model synthesis, the first stage of model interpretation, that
separates the domain-specific knowledge (DSK) from the model of execution (MoE). Previous work on
model synthesis tightly couples the DSK and MoE reducing the ability for implementations of the DSVM to
be easily reused in other domains. To illustrate how our approach to model synthesis works for i-DSMLs,
we have created MGridML, an i-DSML for energy management in smart microgrids, and an MGridVM
prototype, the DSVM for MGridML. We evaluated our approach by performing experiments on the model
synthesis aspect of MGridVM and comparing the results to a DSVM from the user-centric communication
domain.
© 2014 Elsevier Inc. All rights reserved.
1. Introduction
Model-driven software development (MDSD) is a paradigm that
is gaining much attention in the software development commu-
nity. MDSD places models at the center of the development process
and has the potential to improve productivity (Kelly and Tolvanen,
2008; Stahl et al., 2006). One aspect of MDSD that holds much
potential is the use of domain-specific modeling languages (DSMLs)
to specify applications for a given domain. The current approach to
using DSMLs when developing applications in a given domain is
to create a model of the application using the DSML, then trans-
form the model into code in a high-level language, such as Java
or C++, to be executed (Kelly and Tolvanen, 2008). This approach
is very similar to that used for the text-based domain specific lan-
guages (Fowler, 2010; Mernik et al., 2005). That is, converting DSML
∗
Corresponding author. Tel.: +1 954 918 2677.
E-mail addresses: markalli@umflint.edu (M. Allison), kmorr007@cis.fiu.edu
(K.A. Morris), fmc@inf.ufg.br (F.M. Costa), clarkep@cis.fiu.edu (P.J. Clarke).
models to code may involve a series of model-to-model, model-to-
text and text-to-text transformations.
One alternative approach to transforming models into a high-
level language prior to execution is interpreting the models directly
using a specialized execution engine for the specific domain. DSMLs
that support the direct execution of models are referred to as inter-
preted DSMLs or i-DSMLs (Mernik, 2012, chp. 9). The interpretation
of i-DSML models require a semantic-rich execution engine. We
refer to the i-DSML execution engine as a domain-specific virtual
machine (DSVM). Deng et al. (2008) describe the first manifesta-
tion of a DSVM, the communication virtual machine (CVM), used
to interpret models created using the communication modeling
language (CML) (Wu et al., 2012). CML is used to specify appli-
cations in the user-centric communication domain. CVM uses a
four-layered architecture where each layer is responsible for reduc-
ing the semantic gap between the user-defined model and the
low-level services provided to CVM by underlying communication
frameworks.
The main layer in the DSVM responsible for determining the
behavior of the application based on the semantics of i-DSML mod-
els is the synthesis engine (SE). The SE performs model synthesis,
http://dx.doi.org/10.1016/j.jss.2014.06.006
0164-1212/© 2014 Elsevier Inc. All rights reserved.