platform independent and platform specific EU SPL
modeling support. In the platform independent phase,
EU SPL engineers create platform independent
models that can be tailored to different EU
architectures through an application derivation
process. In the platform specific phase, EU SPL
engineers create platform specific models that are
bound to specific EU platforms. Platform specific
models provide an additional capability, since they
have access to platform specific functionality that is
not available to the platform independent models.
Figure 1: End User Software Product Line Process.
This paper is organized as follows. Section 2
discusses related work that this research builds on.
Section 3 describes the overall EU SPL meta-
modeling approach for smart environments. Sections
4 and 5 describe in detail the platform specific and
platform independent meta-models respectively.
Section 6 describes the XANA EU SPL process
flows. Finally, section 7 provides conclusions and
discusses future work.
2 RELATED WORK
Several middleware architectures have been proposed
for implementing smart environments (Whitmore et
al., 2015). Some of those initiatives are the ROS
(Quigley et al., 2009), JCAF (Bardram, 2005) and the
Smart Products (Mühlhäuser, 2008) projects. EU
architectures extend middleware architectures by
adding end user support. They provide user friendly
interfaces for end users to be able to develop
programs for their spaces. Some of the most
important EU architectures are Puzzle (Danado and
Paternò, 2012), PIP (Chin et al., 2010), FedNet
(Kawsar et al., 2008) and TeC. This research presents
an approach for extending EU architectures for smart
spaces with product line concepts to promote reuse
and application portability.
Model Driven Architecture (MDA) is a software
development framework based on automatic
transformations of models (Debnath et al., 2008).
MDA separates business and application logic from
underlying platform technology, distinguishing the
following models: Computation Independent Model
(CIM), Platform Independent Model (PIM), Platform
Specific Model (PSM) and code. The Common
Variability Language (CVL) adds variability to MDA
models. In particular CVL, is a Domain Specific
Language (DSL) for modeling variability in models
that are based on Meta Object Facility (MOF)
standard defined by the Object Management Group
(OMG) (Reinhartz-Berger et al., 2014). Our approach
is influenced by the PSM, PIM and CVL concepts but
was expanded to end user development for smart
spaces.
3 OVERVIEW OF THE EU SPL
META-MODEL FOR SMART
ENVIRONMENTS
There are several common characteristics across EU
architectures for smart spaces. For example all event
driven EU architectures consist of components that
are abstractions of devices, sensors, actuators,
application, services etc. and connections between the
components to create application logic. There is also
significant variability between EU architectures. For
example some EU architectures account for user-
context, location, temporal relationships while others
do not. There is commonality and variability across
EU SPLs for smart spaces. For example, a feature
implementation of one EU architecture can be
significantly different from one architecture to
another. To capture the commonality and variability
of EU architectures and EU SPLs, we propose the EU
SPL meta-model. Figure 2 shows the EU SPL meta-
model for smart environments. This meta-model
consists of platform independent and platform
specific meta-models. The platform independent
meta-model is composed of the Platform Independent
Product Line (PIPL) and the Platform Independent
Product (PIP) meta-models. PIPL captures product
line metadata for creating software product lines for
smart environments, in particular the product line
features and the component architecture that
implements each feature. The component architecture
describes the smart environment components,
connectors and other artefacts that are needed for the
feature implementation. The PIP meta-model
describes the structure of software applications that
can be derived from the PIPL model. To derive PIP