Integrated Computing (MIC), where a domain model
that represents system and customer’s demands is
constructed using a domain meta-model as a DSML
(Wang et al. 2010). Then the model interpreter
generates the application program from the domain
model. In our vision we do not use DSMLs but stay
at the idea on using formalized version of the UML.
Other authors use the principle of similarity of
source and target languages. For instance, Egea and
Dania (Egea and Dania 2017) applied this principle in
their solution for transforming OCL expressions into
SQL Procedural languages. We can note that this
principle is also being used in our vision, since
knowledge frames and object-oriented programming
constructs and concepts overlap in a large degree. M
T and Sherly (M T and Sherly 2014) used refactoring
UML sequence diagrams in the XMI (XML Metadata
Interchange) format by using OCL constructs in order
to generate proper source code.
Many researchers put their efforts into research on
code generation from UML models, its executable
versions (Alf, fUML, etc.) or profiles like, for
instance, an approach presented by Hili et al. (Hili et
al. 2017). Ciccozi et al. (Ciccozzi et al. 2011)
demonstrated transformation from the design model
to executable code in Action Language for
Foundational UML (Alf). Their aim is to provide full
code generation that covers also extra-functional
characteristics of the application program. Our vision
also has the same aim, however, in this paper we skip
discussion of extra-functional requirements. Bhullar
et al. (Bhullar et al. 2016) gave a very interesting
survey on UML diagram-based code generation
methods. The authors limited the survey with
behavioral UML diagrams such as activity diagrams,
sequence diagrams, use case diagrams etc. As the
authors noted none of the considered methods is
appropriate to give 100% code generation. Additional
activities include some enhancement methods and re-
factorization methods to achieve code up to the
maximum possible extent. Another aspect of code
generation from UML models is a difference in
implementations of UML versions in modelling tools.
As Noyer et al. indicated (Noyer et al. 2014), code
generation may give unexpected results due to
implementation particularities of both UML and
target languages. Another interesting aspect is that
many authors pay their main attention to UML class,
sequence and activity diagrams.
Wang et al. (Wang et al. 2017) presented their
solution for rapid realization of executable domain
models. This solution combines agility with
principles of model driven development for small
functional parts of the system and uses as UML as
domain specific languages. Shiferaw and Jena
(Shiferaw and Jena 2018) illustrated model to code
and code to model generation possibilities. The main
aspect covered in this research is keeping model and
code consistent allowing repeated generation from
code and integration of code into a UML model.
Since transformations may be multiple and may
involve different models, the support of model
transformation chains is very important. Guana et al.
propose ChainTracker, a tool the main aim of which
is to assist in this task (Guana et al. 2014).
Concluding, adequacy of generated code and its
model still is a challenge that covers many aspects
starting from model adequacy to its domain (or
domains) and ending with variations in
implementations of languages in tools used for code
generation.
3 TOPOLOGICAL
FUNCTIONING MODEL
The TFM is a formal model which describes system
functioning. Its fundamentals are published by Janis
Osis in 1969 (Osis 1969). The TFM can be specified
as a topological space
(
𝑋, Θ
)
, where 𝑋 is a finite set
of functional features of the system under
consideration, and Θ is a topology on 𝑋.
A functional feature is “a characteristic of the
system (in its general sense) that is designed [for] and
necessary to achieve some system’s goal” (Osis and
Asnina 2011). It can be specified by a unique tuple
(1):
〈
𝐴, 𝑅, 𝑂, 𝑃𝑟𝐶𝑜𝑛𝑑, 𝑃𝑜𝑠𝑡𝐶𝑜𝑛𝑑, 𝑃𝑟, 𝐸𝑥
〉
(1)
where:
𝐴 is an action linked to a [domain] object,
𝑅 is a result of action 𝐴 (optional),
𝑂 is an object (objects) that gets the result of
the action or an object (objects) that is used in
this action,
𝑃𝑟𝐶𝑜𝑛𝑑 is a set of preconditions or atomic
business rules,
𝑃𝑜𝑠𝑡𝐶𝑜𝑛𝑑 is a set of postconditions or atomic
business rules,
𝑃𝑟 is a set of responsible entities (systems or
subsystems) that provide or suggest action 𝐴
with a set of certain objects,
𝐸𝑥 is a set of responsible entities (systems or
subsystems) that enact concrete action 𝐴 (Osis
and Asnina 2011; Nazaruka et al. 2016).
MDI4SE 2019 - Special Session on Model-Driven Innovations for Software Engineering
618