<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>O. Levasseur); mubashar.iqbal@ut.ee (M. Iqbal); rma@ut.ee (R. Matulevičius)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Survey of Model-Driven Engineering Techniques for Blockchain-Based Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Olivier Levasseur</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mubashar Iqbal</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raimundas Matulevičius</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Computer Science, University of Tartu</institution>
          ,
          <addr-line>Narva maantee 18, 51009 Tartu</addr-line>
          ,
          <country country="EE">Estonia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>Blockchain technology is emerging in various domains (e.g., supply chain, banking, healthcare) to implement business processes without requiring trusted third parties. However, writing blockchainbased applications (BBAs) is error-prone, and development mistakes are critical since once the smart contract is deployed, its source code can be examined but cannot be modified. Model-driven engineering (MDE) can help overcome these challenges, supporting the secure and fast development of BBAs. In this paper, we utilised the systematic literature review to explore the existing MDE techniques. This study proposes a characterisation of some of the current existing MDE techniques for BBAs that might help in selecting the right modeling technique for building these applications. Our work has revealed several gaps in the current MDE techniques that we addressed in future work.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Blockchain</kwd>
        <kwd>Blockchain model-driven engineering</kwd>
        <kwd>modeling techniques</kwd>
        <kwd>Blockchain oracles</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        state machines [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], or business processes [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A few also provide intuitive user interfaces that
support the development life-cycle of the application [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. However, the extent of modeling
and MDE for BBAs is not defined explicitly, which makes it dificult to determine the current
state of MDE for BBAs, what are the limitations and research opportunities. In this paper, we
follow the systematic literature review (SLR) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to identify the available modeling techniques
and summarise their characteristics and modeled elements (including of-chain elements, e.g.,
oracles) required for designing BBAs. In this paper, smart contracts and blockchain-based
applications are used interchangeably.
      </p>
      <p>The paper is structured as follows: Section 2 discusses the background. Section 3 presents
the research method and explains the survey settings. Section 4 elaborates the results. Section 5
describes the future work, threats to validity and concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <sec id="sec-2-1">
        <title>2.1. Blockchain</title>
        <p>
          The advent of bitcoin cryptocurrency (the first blockchain implementation) brings the concept of
blockchain [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Blockchain operates over a peer-to-peer (P2P) network, performs transactions in
decentralised manners, and connects each block to the previous block by a unique cryptographic
hash [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Every block contains a valid list of transactions that are hashed and ordered as a Merkle
tree [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Existing blockchains can be classified as permissionless (e.g., bitcoin, ethereum) or
permissioned blockchains (e.g., hyperledger fabric) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In permissionless blockchains, anyone
can join the network and view the ledger. In contrast, permissioned blockchains have
preverified nodes and require certain permissions to view and execute transactions.
        </p>
        <p>
          The emergence of SCs, which represent source code running on top of blockchain platforms,
allows developers to write decentralised applications in various domains (e.g., supply chain,
banking, healthcare). The characteristics of blockchain platforms enable inter-organisational
cooperation in a trust-less environment where no third party is needed to ensure that each
party behaves according to the defined rules [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Additionally, the immutable ledger keeps
traces of each party’s operations that support monitoring the process and auditing.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Model-driven Engineering</title>
        <p>
          Model-driven engineering is a software development methodology that uses domain models to
discover solutions in a domain. MDE can be useful in translating a platform-independent model
(e.g., ArchiMate model) to a platform-specific language or model (e.g., Hyperledger composer
model) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], abstracting the unique characteristics of blockchain platforms, to generate source
code automatically or to translate a model to another one, and making application development
secure and faster. For example, ChorChain [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] allows stakeholders to model, compile, and
deploy the SCs on the Ethereum blockchain. As a result, MDE automates the development
life-cycle and supports the faster development of BBAs.
        </p>
        <p>
          MDE can also provide an additional level of security, especially for permissionless blockchains
since anyone on the network can interact with them, potentially exposing their vulnerabilities
[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. In MDE, modeling techniques (e.g., Business Process Model and Notation (BPMN), Unified
Modeling Language (UML), Flow Charts) can help to design secure BBAs by integrating secure
design patterns in the modeling process and promoting the best development practices. For
instance, Blockchain Studio integrates access control policies into a BPMN model [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. As another
example, FSolidM ofers an access control extension, protection against reentrancy, and state
unpredictability which are vulnerabilities of Ethereum SCs [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Related Work</title>
        <p>We argue that MDE can help with complex design decisions, including complex computations,
storing data, keeping data private, querying on/of-chain data, and error-free code generation.
Here, we discuss a few papers relevant to the MDE for BBAs.</p>
        <p>
          Wohrer et al., [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] provide the architectural design decisions to overcome the challenges
in designing BBAs. The study follows the grounded theory approach to collect, extract, and
summarise the common practices in design options for blockchain-based solutions.
        </p>
        <p>
          Falazi et al., [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] discuss modeling techniques that lack to model fine-grained decisions when
handling the uncertainty of blockchain transactions or when of-chain communicates with
on-chain. The authors use the blockchain-aware modeling and execution (BlockME) method
and present a modeling extension to model the above-mentioned interactions.
        </p>
        <p>
          Xu et al., [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] present originChain that provides structural design of SCs and its analysis based
on adaptability, upgradability, the latency of writing and reading. Markovska [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] investigates
the blockchain-oriented processes that can be modeled with the activity-centric modeling
paradigm of BPMN. Udokwu et al., [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] provide the decentralised agent-oriented modeling
(DAOM) framework and a support tool for designing BBAs.
        </p>
        <p>The related studies debate the specific modeling technique or aspect of BBAs and none of
them looked into the various constructs and modeling approaches to model BBAs.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Research Method</title>
      <p>
        We follow the SLR method [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to explore the existing MDE (and modeling) techniques to
summarise the constructs used to model BBAs. In other words, the techniques that model
the architecture of BBAs, their latency or resource consumption are excluded. To achieve the
research objective of this work, we formulated three research questions.
[RQ1] What are the main characteristics of existing modeling techniques?
The RQ1 focuses on general characteristics of the modeling techniques. For example, i) What
are the blockchain type and modeling language? ii) Does the model allow formal verification?
iii) Whether the model allows automatic code generation or not? iv) Is data privacy supported?
v) Is life-cycle management supported? vi) Whether the technique is open source or not?
[RQ2] What are the elements of blockchain-based applications that are modeled in
existing modeling techniques?
Some existing modeling techniques represent BBAs as a state machine and other model access
control, or SCs. The objective of RQ2 is to identify and enumerate those constructs and to spot
where improvements are needed.
[RQ3] What types of oracles are modeled and how are they modeled?
BBAs are needed a way to access data that is not stored on-chain. The oracles connect of-chain
communication to BBAs. The RQ3 helps us to explore the types of oracles and how they are
modeled.
      </p>
      <p>
        To conduct SLR, a predefined review protocol was established to overcome the biases of
researchers and to develop a seamless process to perform a SLR [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The selection of electronic
databases and literature search is carried out after consultation with blockchain domain
specialists. The initial search for relevant literature studies was done through the ACM digital
library, the IEEE digital library, ScienceDirect, and Scopus. The search terms (("blockchain" OR
"blockchain-based application") AND ("modeling" OR "modelling" OR "model-driven engineering"))
AND ("techniques" OR "methods" OR "strategies") were formulated based on the research scope
to collect relevant literature studies. The inclusion and exclusion criteria is listed in Table 1.
As a first step, we run predefined search terms on selected digital databases to collect relevant
literature studies. The corpora of search results were downloaded as BibTeX files and a python
script was written to filter the results. The python script verified that the predefined search terms
are available in the title or abstract of the study. After running the script on the BibTeX files, we
collected a total of 236 papers for further screening. The screening was made after reading the
paper title, abstract, introduction, conclusion, and filtering based on the inclusion and exclusion
criteria. Finally, 8 literature studies remained, from which we discovered additional 7 studies.
Thus, we collected 15 relevant literature studies for full-text reading and analysis.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Results</title>
      <p>In this section, we summarise the results of the SLR. Table 2 shows the selected literature studies,
their contribution, and limitations.</p>
      <p>
        Rocha et al., "Preliminary steps towards modeling blockchain oriented software" [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
This article proposes no novel MDE technique but shows how existing methods could be used
to model blockchain-based applications. More specifically, UML, BPMN, and ER models are
illustrated to model the blockchain elements. The objective was to show how the existing
approaches lack certain concepts to cover diferent blockchain elements.
      </p>
      <p>
        Mavridou et al., "Designing secure Ethereum smart contracts: A Finite State ..." [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
The authors model SCs as finite state machines through a graphical editor. The idea is to use
rigorous semantics to lay the foundation for formal verification tools. SC (written in solidity
code) can be generated automatically from the model. The model also allows developers to
easily integrate security design patterns (e.g., access control) into the SCs.
      </p>
      <p>
        Lopez-Pintado et al., "Caterpillar: a business process execution engine ..." [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and
Mercenne et al., "Blockchain Studio: A Role-Based Business Workflows ..." [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
Both articles support business processes where the study [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] provides a BPMN-compatible
business process management system (BPMS) on Ethereum. The BPMN model is translated
to multiple SCs that allow the execution and management of the business process. The tool
comes with a user interface that facilitates the life-cycle management of the processes.
Mercenne et al., [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] create a fork of Caterpillar to support the management of roles and access control.
Silva et al., "Decentralized Enforcement of Business Process Control Using Blockchain"
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and Hornkov et al., "Exploring a Role of Blockchain Smart Contracts ..." [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
Both of these techniques use the enterprise ontology DEMO to model blockchain-based
applications. Silva et al., [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] propose a translation between DEMO and Hyperledger. The study
improves the control and traceability of collaborative business processes. The method [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
presents an enterprise information system to support the transactions that do not need to be
stored on the blockchain. The presented method does not ofer automatic code generation.
Ladleif et al., "Modeling and Enforcing Blockchain-Based Choreographies" [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] ,
Corradini et al., "Engineering trustable choreography-based systems using blockchain"
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and Weber et al., "Untrusted Business Process Monitoring and Execution ..." [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]
Ladleif et al., [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] extend BPMN choreographies to support business processes on Ethereum.
Choreography diagrams look at the system from a message exchange perspective. Similarly,
Corradini et al., [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] present a method that uses BPMN choreography diagrams to model
blockchain-based applications. The study [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] also uses choreography diagrams to ensure that
only confirming messages advance the state of the process.
Marchesi et al., "An Agile Software Engineering Method to Design Blockchain ..." [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
The paper suggests an agile method that separates the development of an application (e.g.,
SCs and traditional systems). It considers various design stages, like the user interface to the
external SCs, emphasises the security concerns of traditional and blockchain-based applications.
Hamdaqa et al., "iContractML" [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
The study enables a feature-oriented domain analysis of three blockchain platforms (
Hyperledger, Azure, and Ethereum) to build a reference model for SCs and presents a
platformindependent modeling language called iContractML that allows automatic code generation.
Garamvolgyi et al., "Towards Model-Driven Engineering of Smart Contracts ..." [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
This article explores the use of UML state charts to model cyber-physical systems (CPS). The
logic is implemented as a SC and is used as a digital twin to the real-life CPS. The approach is
meant to be generic enough to allow generating code for diferent blockchain platforms.
Lu et al., "Integrated model-driven engineering of blockchain applications for business
processes and asset management" [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
In this article, the authors present a tool called Lorikeet that allows the modeling of business
processes and digital assets. They allow the creation of both fungible and non-fungible assets,
escrow, and assets swap. The tool comes with a user interface to facilitate the modeling and
interaction with the blockchain-based application.
      </p>
      <p>
        Babkin et al., "Model-Driven Liaison of Organisation Modeling Approaches ..." [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
In this paper, the authors present a mapping between concepts of ArchiMate enterprise
architecture modeling language and the HyperLedger composer modeling language. The implementation
of the automatic code generation is done in Python, and the code translation is done
semiautomatically, i.e. the business logic must be manually written.
      </p>
      <p>
        Boubeta-Puig et al., "CEPChain: A graphical model-driven solution for integrating
complex event processing and blockchain" [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
CEPchain connects a complex event processing system to the Ethereum platform to allow the
modeling of the automatic trigger of SCs transactions when event pattern conditions are met.
      </p>
      <sec id="sec-4-1">
        <title>4.1. Characteristics of Modeling Techniques</title>
        <p>In characteristics of the modeling techniques (Table 3), it can be seen that there are techniques
that allow source code generation from the model. A few techniques also allow life-cycle
management, meaning that they help the developer with the compilation and deployment of
the SCs and interaction with the SCs through user interfaces.</p>
        <p>However, most of the examined modeling techniques do not allow data privacy when dealing
with permissionless blockchains, and it is a limitation imposed by the nature of the platform.
None of the techniques allows formal verification that can be useful to verify a model against a
set of validation rules.</p>
        <sec id="sec-4-1-1">
          <title>Formal verification</title>
          <p>No
No
No
No
No
No
No
No
No
No
Model
validation rules
No
No
No
No</p>
        </sec>
        <sec id="sec-4-1-2">
          <title>Code generation</title>
          <p>No
Full
Full
Partial
No
No
Full
Full
Full
No
Partial
Partial
Full
Partial
Full</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>Data privacy</title>
          <p>No
No
No
No
Yes
No
No
No
Yes
No
No
No
No
Yes
No</p>
        </sec>
        <sec id="sec-4-1-4">
          <title>Life-cycle management</title>
          <p>No
No
Yes
Yes
No
No
No
Yes
No
No
No
No
Yes
No
Yes</p>
        </sec>
        <sec id="sec-4-1-5">
          <title>Open source</title>
          <p>No
Yes
Yes
No
No
Yes
No
Yes
No
No
Yes
No
No
No
No</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Modeled Elements of Blockchain-based Applications</title>
        <p>The blockchain elements (Table 4) are 1) SC rules that generate the function bodies of SCs and
determine the behaviour of the application. 2) SC data, for example, the type and the value
of the information that is stored on the blockchain. 3) 3rd party SC that are not directly part
of the modeled blockchain application. It could be any SC that existed before the application
was modeled. 4) Event is emitted on the blockchain that other actors can subscribe to. 5)
Transaction is an action that modifies the state of the blockchain and/or the state of the
application. 6) Participant is an actor that interacts with the application. 7) Roles and
permissions are restrictions to specific users. For instance, not everyone should be allowed to
empty the balance of a SC. 8) Asset has a value that can be exchanged (e.g., tokens).</p>
        <p>The SC logic and business rules are the most examined and well modeled by the diferent
modeling techniques. The data stored in the SC, the roles, permissions, and transactions also
seem to be relatively well modeled. On the other hand, the interaction with third party SCs is
rarely modeled. This is a limitation since SCs often need to access data from other contracts on
the blockchain. Additionally, the assets on the blockchain are poorly represented by existing
modeling techniques, especially by those which provide code generation features. Finally,
blockchain events are also neglected by the existing modeling techniques.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Modeled Oracles</title>
        <p>
          BBAs need to access data that is not stored on-chain. The components that provide external
data to blockchain are called oracles. Oracles can be characterised by the direction of the data
lfow (inbound or outbound) and they can also be characterised by the initiator of the data flow
(pull-based or push-based) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>In pull-based inbound, the initiator is a SC, and the data flow is from of-chain to blockchain.
The of-chain subscribes to events emitted by the on-chain application. Once the oracle detects
an event, it will fetch the data and send a signed transaction containing the data to the requesting
on-chain application. In push-based inbound, the initiator is of-chain, and the data flow is
from of-chain to blockchain. Here, an of-chain component is configured to send data under
certain conditions, which is then translated into a blockchain transaction.</p>
        <sec id="sec-4-3-1">
          <title>Rules</title>
          <p>ER,
BPMN
BPMN
scripts and
control flow
BPMN
scripts and
control flow
X
DEMO
actions
BPMN script
tasks
Gateways,
guards,
sequence
flows
BPMN
choreography
UML classes
and
stereotypes
UML classes
Transition,
guards
BPMN
scripts
X
BPMN
scripts and
control flow</p>
        </sec>
        <sec id="sec-4-3-2">
          <title>SC data</title>
          <p>Database
columns,
Class
attributes
Variables in
code editor
X
X
DEMO Fact
Transaction
object facts
BPMN data
objects
Partly
represented
by message
annotations
X
UML class
attributes
and
stereotypes
UML classes
States,
history
Script tasks,
asset templ.
Artifact,
Business
object,
Data object
X</p>
        </sec>
        <sec id="sec-4-3-3">
          <title>3rd party SC</title>
          <p>X</p>
        </sec>
        <sec id="sec-4-3-4">
          <title>Event</title>
          <p>X
X
X
X
X
X
X
X
X
X
X
Script tasks
UML class
attributes and
stereotypes
SC Interface
icon
X
X
X
X
X
Start event,
end event
BPMN events
BPMN events
BPMN events
BPMN tasks
BPMN lanes</p>
        </sec>
        <sec id="sec-4-3-5">
          <title>Participant</title>
          <p>UML: SC
class, BPMN:
lane
X
BPMN lanes
DEMO actor
DEMO actor
Initiator and
recipient
Initiator and
recipient of
messages
Lanes</p>
        </sec>
        <sec id="sec-4-3-6">
          <title>Transaction</title>
          <p>UML class
function,
association
State
transition
BPMN tasks
Business
transaction
DEMO
transaction
Sequence
flow
Tasks
(messages)
Choreography
messages
UML classes
Action,
Transition</p>
          <p>BPMN task
UML
stereotype</p>
          <p>UML
quence
se</p>
          <p>UML
stereotype
UML class
X
BPMN events,
UI event
Application-, Application-,
Business-,
BusinessImplementation- , and
, Technology
Technologyevent Interaction
BPMN events BPMN tasks</p>
          <p>UML class
X
User tasks
BusinessActor,
Stakeholder,
ApplicationComponent
BPMN lanes</p>
          <p>X</p>
          <p>In pull-based outbound, the initiator is an of-chain, and the data flow is from blockchain
to of-chain. In</p>
          <p>push-based outbound, the initiator is on-chain and the data flow is from
blockchain to of-chain.</p>
          <p>In a few techniques, there have been attempts at modeling pull-based inbound and push-based
outbound oracles (Table 5), but no modeling technique supports automatic code generation
for all types of oracles (Table 6). For the push-based inbound and pull-based outbound oracles,
user interfaces are nice but they are not scalable, because the actions must be done manually.
According to the literature review, the automatic code generation of push-based inbound and
pull-based outbound oracles is supported through user interfaces and REST APIs (Table 6).</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion and Concluding Remarks</title>
      <p>
        There are a few limitations to our current work that we discussed as threats to validity [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
The restricted time span refers to the researchers’ incapacity to foresee relevant studies
outside of the time frame planned during the SLR planning phase. In addition, some of the
modeling techniques may have been modified or improved between the time of this work. This
limitation is a reality of SLRs and cannot really be mitigated. The bias in study selection
occurs when researchers have their own subjective conjecture and do not apply inclusion and
exclusion criteria consistently or use incompatible search terms. An attempt to counter this
limitation is made by gathering feedback from other researchers in the field to include any
missing relevant work in the SLR. The bias in data extraction and subjective interpretation
arise when researchers have diferent interpretations and opinions about the extracted data. To
mitigate these biases, researchers involved in the SLR to share their point of view and discuss
until they reach a consensus.
      </p>
      <p>In this work, we present an analysis of model-driven engineering techniques for
blockchainbased applications. As a result, we summarise the current state of MDE and propose a
characterisation that enables the iteration on various modeling techniques based on their characteristics
and modeled elements. In future work, the existing modeling techniques can be extended to
cover blockchain oracles modeling and automatic code generation. Another possible research
direction is to provide security extensions in modeling techniques to take advantage of the
security practices when designing BBAs.</p>
      <p>Overall, completing the above-mentioned future work and tackling the threats to validity
could provide better insights and in-depth contributions to the MDE of BBAs.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Matulevičius</surname>
          </string-name>
          ,
          <article-title>Comparison of Blockchain-Based Solutions to Mitigate Data Tampering Security Risk (</article-title>
          <year>2019</year>
          )
          <fpage>13</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>N.</given-names>
            <surname>Atzei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bartoletti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cimoli</surname>
          </string-name>
          ,
          <article-title>A survey of attacks on Ethereum smart contracts (</article-title>
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mavridou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Laszka</surname>
          </string-name>
          ,
          <article-title>Designing secure ethereum smart contracts: A finite state machine based approach</article-title>
          ,
          <source>in: Financial Cryptography and Data Security</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>523</fpage>
          -
          <lpage>540</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hamdaqa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. A. P.</given-names>
            <surname>Metz</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Qasse</surname>
          </string-name>
          , iContractML,
          <source>in: 12th System Analysis and Modelling Conference</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>O.</given-names>
            <surname>López-Pintado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>García-Bañuelos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Weber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ponomarev</surname>
          </string-name>
          ,
          <article-title>Caterpillar: A business process execution engine on the ethereum blockchain (</article-title>
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Charters</surname>
          </string-name>
          ,
          <article-title>Guidelines for performing Systematic Literature reviews</article-title>
          in
          <source>Software Engineering Version 2.3, Engineering</source>
          <volume>45</volume>
          (
          <year>2007</year>
          )
          <fpage>1051</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Marchesi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Marchesi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tonelli</surname>
          </string-name>
          ,
          <article-title>An agile software engineering method to design blockchain applications</article-title>
          ,
          <source>in: 14th CEE-SECR</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L.</given-names>
            <surname>Mercenne</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.-L. Brousmiche</surname>
            ,
            <given-names>E. B.</given-names>
          </string-name>
          <string-name>
            <surname>Hamida</surname>
          </string-name>
          ,
          <article-title>Blockchain studio: A role-based business workflows management system</article-title>
          ,
          <source>in: IEEE 9th Annual IEMCON</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Matulevičius</surname>
          </string-name>
          ,
          <string-name>
            <surname>Blockchain-Based Application Security Risks: A Systematic Literature</surname>
            <given-names>Review</given-names>
          </string-name>
          , Springer Nature Switzerland AG (
          <year>2019</year>
          )
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Corradini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcelletti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Morichetta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Re</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Tiezzi</surname>
          </string-name>
          ,
          <article-title>Engineering trustable choreography-based systems using blockchain</article-title>
          ,
          <source>in: Symposium on Applied Comp</source>
          .,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E.</given-names>
            <surname>Babkin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Komleva</surname>
          </string-name>
          ,
          <article-title>Model-driven liaison of organization modeling approaches and blockchain platforms</article-title>
          , in: Advances in Enterprise Engineering XIII,
          <year>2020</year>
          , pp.
          <fpage>167</fpage>
          -
          <lpage>186</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Tran</surname>
          </string-name>
          , I. Weber,
          <string-name>
            <given-names>H. O</given-names>
            <surname>'Connor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rimba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Staples</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jefery</surname>
          </string-name>
          ,
          <article-title>Integrated model-driven engineering of blockchain applications for business processes and asset management</article-title>
          ,
          <source>Software: Practice and Experience</source>
          <volume>51</volume>
          (
          <year>2020</year>
          )
          <fpage>1059</fpage>
          -
          <lpage>1079</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wohrer</surname>
          </string-name>
          , U. Zdun,
          <article-title>Architectural design decisions for blockchain-based applications</article-title>
          ,
          <source>IEEE International Conference on Blockchain and Cryptocurrency</source>
          ,
          <string-name>
            <surname>ICBC</surname>
          </string-name>
          <year>2021</year>
          (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G.</given-names>
            <surname>Falazi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <article-title>Modeling and execution of blockchainaware business processes</article-title>
          ,
          <source>Software-Intensive Cyber-Physical Systems</source>
          <volume>34</volume>
          (
          <year>2019</year>
          )
          <fpage>105</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Vasilakos</surname>
          </string-name>
          ,
          <article-title>Designing blockchain-based applications a case study for imported product traceability</article-title>
          ,
          <source>FGCS</source>
          <volume>92</volume>
          (
          <year>2019</year>
          )
          <fpage>399</fpage>
          -
          <lpage>406</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Markovska</surname>
          </string-name>
          ,
          <source>Modelling Business Processes on a Blockchain Ecosystem</source>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>C.</given-names>
            <surname>Udokwu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Brandtner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Norta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kormiltsyn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Matulevičius</surname>
          </string-name>
          ,
          <article-title>Implementation and evaluation of the DAOM framework and support tool for designing blockchain decentralized applications (</article-title>
          <year>2020</year>
          )
          <fpage>0</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>H.</given-names>
            <surname>Rocha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          ,
          <article-title>Preliminary steps towards modeling blockchain oriented software</article-title>
          ,
          <source>in: 1st Workshop on Emerging Trends in Software Engineering for Blockchain</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Guerreiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sousa</surname>
          </string-name>
          ,
          <article-title>Decentralized enforcement of business process control using blockchain</article-title>
          , in: Advances in Enterprise Engineering XII,
          <year>2018</year>
          , pp.
          <fpage>69</fpage>
          -
          <lpage>87</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>B.</given-names>
            <surname>Hornáčková</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Skotnica</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pergl</surname>
          </string-name>
          ,
          <article-title>Exploring a role of blockchain smart contracts in enterprise engineering</article-title>
          , in: Advances in Enterprise Engineering XII,
          <year>2018</year>
          , pp.
          <fpage>113</fpage>
          -
          <lpage>127</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ladleif</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weske</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Weber</surname>
          </string-name>
          ,
          <article-title>Modeling and enforcing blockchain-based choreographies</article-title>
          ,
          <year>2019</year>
          , pp.
          <fpage>69</fpage>
          -
          <lpage>85</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>I.</given-names>
            <surname>Weber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Riveret</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Governatori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ponomarev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendling</surname>
          </string-name>
          ,
          <article-title>Untrusted business process monitoring and execution using blockchain</article-title>
          ,
          <year>2016</year>
          , pp.
          <fpage>329</fpage>
          -
          <lpage>347</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>P.</given-names>
            <surname>Garamvolgyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kocsis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Gehl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Klenik</surname>
          </string-name>
          ,
          <article-title>Towards model-driven engineering of smart contracts for cyber-physical systems</article-title>
          ,
          <source>in: 48th annual IEEE/IFIP DSN-Workshops</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J.</given-names>
            <surname>Boubeta-Puig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rosa-Bilbao</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Mendling,</surname>
          </string-name>
          <article-title>CEPchain: A graphical model-driven solution for integrating complex event processing and blockchain</article-title>
          ,
          <source>Expert Systems with Applications</source>
          <volume>184</volume>
          (
          <year>2021</year>
          )
          <fpage>427</fpage>
          -
          <lpage>435</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mühlberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bachhofner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. C.</given-names>
            <surname>Ferrer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. D.</given-names>
            <surname>Ciccio</surname>
          </string-name>
          , I. Weber,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wöhrer</surname>
          </string-name>
          , U. Zdun,
          <article-title>Foundational oracle patterns: Connecting blockchain to the of-chain world</article-title>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <article-title>A map of threats to validity of systematic literature reviews in software engineering</article-title>
          , in: APSEC (
          <year>2016</year>
          )
          <fpage>153</fpage>
          -
          <lpage>160</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>