notation of the runtime cross-cutting concern, (2) its
MDD function. For example, the notation of COP-
specific layers and the MDD function to generate
layer programs have not been established.
To solve these problems, we propose a layer
structure model for applying COP to MDD. The layer
structure model is the expression of the layer for
COP. We also propose a process for generating a
COP program using that model. The process is
generating a COP program that is modeled as a layer.
Finally, a simple example shows the generation from
the layer structure model to the COP program.
The remainder of this paper is as follows. Section
2 compares related work to this study. Section 3
defines the runtime cross-cutting concerns. Section 4
explains the goal of our study. Section 5 explains the
COP briefly. Section 6 proposes a method. Section 7
argues each step of the proposed method in detail.
Section 8 shows the simple example that the source
code is generated using the proposed method
automatically. Section 9 summarizes this paper and
describes future works.
2 RELATED WORKS
This section compares related work to this study.
First, COP is an extension of AOP. Many MDD for
AOP (Aspect-Oriented Programming) has been
proposed (Wimmer, Schauerhuber, Kappel, et al.,
2011). However, there are few studies on MDD for
COP compared to AOP. For example, UML4COP:
UML-based DSML for Context-Aware Systems
proposes to express COP based on UML (Unified-
Modeling Language) proposes to express the COP
model. In this study, the COP code is generated
manually. Thus, there is no work from the COP model
to the automatic generation of the COP code. In this
section, the following mentions MDDs of AOP and
just COP languages.
The most extensive survey of the AOM (Aspect-
Oriented Modeling) approaches is provided by
Chitchyan et al. (Wimmer, Schauerhuber, Kappel, et
al., 2011). Aspect-Oriented Model-Driven
Engineering for Embedded Systems Applied to
Automation Systems (Wehrmeister, Pereira, and
Rammig, 2013) aims to design real-time and
embedded automation systems by combining UML
and AOSD (Aspect-Oriented Software
Development). The proposed method uses a tool that
can perform everything from specifications to
automatic source code generation. Thus, the
transition from implementation can be done
smoothly. Improved encapsulation of non-functional
requirements has increased reusability. Moreover,
cross-cutting concerns were concentrated on a small
number of elements. However, cross-cutting
concerns were improved, and the problem of
scattering was reduced.
A Component Model for Model Transformations
proposes a method for reusing model transformations
between different modeling languages. In this
proposed method, a component model for model
transformation is designed (Cuadrado,Guerra and
Lara., 2014). That is, the related work proposes
component-based development. Transformation
reuse, binding development, and component
development were improved by using this proposed
method.
An Approach for Mapping the Aspect State
Models to Aspect-Oriented Code proposes a mapping
of its constructs to AspectJ language using the state
machine diagrams (Mehmood, Jawawi, and Zeshan.,
2019). This related study uses the Reusable Aspect
Models notation for this study. In this proposed
method, the source code of the modeled structure and
operation is generated using a reusable aspect-
oriented model. The conceptual separation of state
machine diagrams is directly mapped to the code
level. Therefore, the source code obtained from this
approach is the same as the model. Traceability is
high, and maintenance is easy by using this proposed
method.
COP is a language that has evolved around
programming (Salvaneschi, Ghezzib, and Pradellab,
2012): such as ContextJ (Appeltauer, Hirschfeld,
Haupt, et al., 2011), JCOP (Appeltauer, Hirschfeld,
Masuhara, et al., 2010), EventCJ (Kamina, Aotani
and Masuhara, 2011). There are also several studies
on modeling languages (Kamina, Aotani, and
Masuhara, 2011). However, as previously mentioned,
there are no studies on COP that directly connect the
model and the source code than aspect-oriented
technology. Therefore, in this paper, we propose a
layer structure model as the COP model. The layer
structure model is for expressing COP in existing
UML. Moreover, we also propose a method for
generating COP code from the layer structure model.
Thus, our novelties are the notation involving COP on
UML and COP code generation.
3 RUNTIME CROSS-CUTTING
CONCERNS
This section explains the problem of the runtime
cross-cutting concerns. The cross-cutting concerns