scispace - formally typeset
Open AccessJournal ArticleDOI

ABCDE –agile block chain DApp engineering

TLDR
ABCDE as discussed by the authors is based on Scrum and is therefore iterative and incremental, where the requirement gathering with user stories, the iterative-incremental approach, the key roles, and the meetings.
Abstract
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.

read more

Citations
More filters
Journal ArticleDOI

A Blockchain-Based Traceability System in Agri-Food SME: Case Study of a Traditional Bakery

TL;DR: In this paper, a blockchain based system for the supply chain management of a particular Italian bread is presented, where each actor of the chain can verify the quality of the products and the conformity to the normative about the hygienic-sanitary conditions along the chain.
Proceedings ArticleDOI

Raising Sustainability Awareness in Agile Blockchain-Oriented Software Engineering

TL;DR: In this article, the authors present a new Agile method for the development of blockchain-oriented systems that includes sustainability awareness practices within the development phases, in particular in the requirements and the acceptance tests.
Proceedings ArticleDOI

Blockchain in Agri-Food Traceability Systems: a Model Proposal for a Typical Italian Food Product

TL;DR: In this article, an implementation model for the supply chain management of a typical Italian food product -Carasau bread -was presented, where the main goal of the model proposal is to guarantee and certify a transparent, secure and auditable traceability in such a way each actor of the supply-chain can verify the quality of the product.
Proceedings ArticleDOI

Automatic Generation of Blockchain Agri-food Traceability Systems

TL;DR: In this paper, a general-purpose approach for the agrifood supply chain management is presented, based on general smart contracts and apps interacting with the same smart contracts, which are configured, starting from the description of the specific system to be managed, given using json files.
Journal ArticleDOI

Studying gas exceptions in blockchain-based cloud applications

TL;DR: This work study the out of gas exceptions on Ethereum empirically for the very first time, aiming at discovering and identifying common causing factors triggering these exceptions, and investigates existing tools in preventing gas exceptions.
References
More filters
Book

Refactoring: Improving the Design of Existing Code

TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Book

The unified modeling language reference manual

TL;DR: This title provides expert knowledge on all facets of today's UML standard, helping developers who are encountering UML on the job for the first time to be more productive.
Book

Agile Software Development with SCRUM

Ken Schwaber, +1 more
TL;DR: This book describes building systems using the deceptively simple process, Scrum, a new approach to systems development projects that cuts through the ocmplexity and ambiguity of complex, emergent requiremetns and unstable technology to iteratively and quickly produce quality software.
Journal ArticleDOI

Blockchain challenges and opportunities: a survey

TL;DR: The blockchain taxonomy is given, the typical blockchain consensus algorithms are introduced, typical blockchain applications are reviewed, and the future directions in the blockchain technology are pointed out.
Related Papers (5)