
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