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...
Guardado en:
Autores principales: | , , |
---|---|
Formato: | article |
Lenguaje: | EN |
Publicado: |
Elsevier
2020
|
Materias: | |
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 |