ABCDE—agile block chain DApp engineering

Blockchain software development is becoming more and more important for any modern software developer and IT startup. Nonetheless, blockchain software production still lacks a disciplined, organized and mature development process, as demonstrated by the many and (in)famous failures and frauds occurr...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Lodovica Marchesi, Michele Marchesi, Roberto Tonelli
Formato: article
Lenguaje:EN
Publicado: Elsevier 2020
Materias:
UML
Acceso en línea:https://doaj.org/article/b85902785dee4239bd3b062435a1e21c
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
id oai:doaj.org-article:b85902785dee4239bd3b062435a1e21c
record_format dspace
spelling oai:doaj.org-article:b85902785dee4239bd3b062435a1e21c2021-11-04T04:28:29ZABCDE—agile block chain DApp engineering2666-953610.1016/j.bcra.2020.100002https://doaj.org/article/b85902785dee4239bd3b062435a1e21c2020-12-01T00:00:00Zhttp://www.sciencedirect.com/science/article/pii/S2096720920300026https://doaj.org/toc/2666-9536Blockchain software development is becoming more and more important for any modern software developer and IT startup. Nonetheless, blockchain software production still lacks a disciplined, organized and mature development process, as demonstrated by the many and (in)famous failures and frauds occurred in recent years. In this paper we present ABCDE, a complete method addressing blockchain software development. The method considers the software integration among the blockchain components—smart contracts, libraries, data structures—and the out-of-chain components, such as web or mobile applications, which all together constitute a complete DApp system. We advocate for ABCDE the use of agile practices, because these are suited to develop systems whose requirements are not completely understood since the beginning, or tend to change, as it is the case of most blockchain-based applications. ABCDE is based on Scrum, and is therefore iterative and incremental. From Scrum, we kept the requirement gathering with user stories, the iterative-incremental approach, the key roles, and the meetings. The main difference with Scrum is the separation of development activities in two flows—one for smart contracts and the other for out-of-chain software interacting with the blockchain—each performed iteratively, with integration activities every 2–3 iterations. ABCDE makes explicit the activities that must be performed to design, develop, test and integrate smart contracts and out-of-chain software, and documents the smart contracts using formal diagrams to help development, security assessment, and maintenance. A diagram derived from UML class diagram helps to effectively model the data structure of smart contracts, whereas the exchange of messages between the entities of the system is modeled using a modified UML sequence diagram. The proposed method has also specific activities for security assessment and gas optimization, through systematic use of patterns and checklists. ABCDE focuses on Ethereum blockchain and its Solidity language, but preserves generality and with proper modifications might be applied to any blockchain software project. ABCDE method is described in detail, and an example is given to show how to concretely implement the various development steps.Lodovica MarchesiMichele MarchesiRoberto TonelliElsevierarticleBlockchainSmart contractsBlockchain-oriented software engineeringUMLDApp designInformation technologyT58.5-58.64ENBlockchain: Research and Applications, Vol 1, Iss 1, Pp 100002- (2020)
institution DOAJ
collection DOAJ
language EN
topic Blockchain
Smart contracts
Blockchain-oriented software engineering
UML
DApp design
Information technology
T58.5-58.64
spellingShingle Blockchain
Smart contracts
Blockchain-oriented software engineering
UML
DApp design
Information technology
T58.5-58.64
Lodovica Marchesi
Michele Marchesi
Roberto Tonelli
ABCDE—agile block chain DApp engineering
description Blockchain software development is becoming more and more important for any modern software developer and IT startup. Nonetheless, blockchain software production still lacks a disciplined, organized and mature development process, as demonstrated by the many and (in)famous failures and frauds occurred in recent years. In this paper we present ABCDE, a complete method addressing blockchain software development. The method considers the software integration among the blockchain components—smart contracts, libraries, data structures—and the out-of-chain components, such as web or mobile applications, which all together constitute a complete DApp system. We advocate for ABCDE the use of agile practices, because these are suited to develop systems whose requirements are not completely understood since the beginning, or tend to change, as it is the case of most blockchain-based applications. ABCDE is based on Scrum, and is therefore iterative and incremental. From Scrum, we kept the requirement gathering with user stories, the iterative-incremental approach, the key roles, and the meetings. The main difference with Scrum is the separation of development activities in two flows—one for smart contracts and the other for out-of-chain software interacting with the blockchain—each performed iteratively, with integration activities every 2–3 iterations. ABCDE makes explicit the activities that must be performed to design, develop, test and integrate smart contracts and out-of-chain software, and documents the smart contracts using formal diagrams to help development, security assessment, and maintenance. A diagram derived from UML class diagram helps to effectively model the data structure of smart contracts, whereas the exchange of messages between the entities of the system is modeled using a modified UML sequence diagram. The proposed method has also specific activities for security assessment and gas optimization, through systematic use of patterns and checklists. ABCDE focuses on Ethereum blockchain and its Solidity language, but preserves generality and with proper modifications might be applied to any blockchain software project. ABCDE method is described in detail, and an example is given to show how to concretely implement the various development steps.
format article
author Lodovica Marchesi
Michele Marchesi
Roberto Tonelli
author_facet Lodovica Marchesi
Michele Marchesi
Roberto Tonelli
author_sort Lodovica Marchesi
title ABCDE—agile block chain DApp engineering
title_short ABCDE—agile block chain DApp engineering
title_full ABCDE—agile block chain DApp engineering
title_fullStr ABCDE—agile block chain DApp engineering
title_full_unstemmed ABCDE—agile block chain DApp engineering
title_sort abcde—agile block chain dapp engineering
publisher Elsevier
publishDate 2020
url https://doaj.org/article/b85902785dee4239bd3b062435a1e21c
work_keys_str_mv AT lodovicamarchesi abcdeagileblockchaindappengineering
AT michelemarchesi abcdeagileblockchaindappengineering
AT robertotonelli abcdeagileblockchaindappengineering
_version_ 1718445295788883968