The blockchain is one of the most interesting technologies developed in recent years. Blockchain is a ledger, a register, a decentralized and public shared database, reachable by accessing a peer-to-peer network. Each unit of the register represents a block. The blocks are linked together in the same order in which they were created and are connected using cryptographic algorithms that make them and the information stored therein not modifiable. Software development needs to be supported by architectural models or blockchain oriented meta-models. The introduction of smart contracts, small computer programs stored inside the Ethereum blockchain, modifies the typical software engineering methodologies. The distributed applications developed on blockchain technologies, can in fact follow rules different from used for the development of the normal centralized applications. The blockchain is instead based on a totally different assumption: the information stored on the blockchain and therefore the smart contracts can not be modified or deleted without compromising the integrity of the blockchain itself. Moreover the smart contracts run in an isolated environment and their results must be the same whatever node they run in. They cannot access the external world that changes with time, but can access and send messages to the blockchain itself that is immutable. Such an innovative context entails new challenges in software engineering. Greater emphasis on specific security and testing practices, new development tools, specific modeling languages and new metrics to evaluate software quality are needed. These new metrics are required to measure complexity, communication, decentralized systems, but also resource consumption (e.g. the so-called gas in the ethereum system). In this scenario Agile methodologies, that are suited to system whose requirements are not completely understood, or tend to change, could be a good strategy of software development for blockchain applications. Some of the characteristics of the Agile methodologies are in fact present in decentralized applications (DApps). One of the most interesting applications based on blockchain are the Initial Coin Offerings (ICOs). An ICO is an innovative way to raise funds and launch a startup. It is also an opportunity to take part in a project, or in a DAO (Decentralized Autonomous Organization). This fund-raising tool contains however some critical issues, such as the use of tokens that have no intrinsic value and do not generate direct liquidity, and the role of investors in the startup’s management. The Lean software development, an approach that maximizes the value given to the customer, and aims to eliminate waste and optimize across organizations, could be helpful to face these critical aspects. The ICOs and, more generally the decentralized applications are based on smart contracts. Considering the technological break through introduced by blockchain it is important to know characteristics and measures and quality parameters of the development process and its phases, as well as metrics to help ensure that the development process is under control to meet the product’s quality goals. This thesis analyzes the software development process of blockchain-based applications. In particular this work analyzes the following aspects. • Investigating software engineering activities related to ICOs, recognize the ICOs developed using Agile methods and make a comparison between the characteristics of ICOs and those of Agile ICOs. • Evaluating the lean startup approach as a methodology for the implementation of an ICO. • Analizyng smart contracts deployed on the Ethereum blockchain relatively to smart contracts features, their interaction with the blockchain, the role of the development community, and the source code characteristics.

Agile methodologies and blockchain development

IBBA, SIMONA
2019-02-08

Abstract

The blockchain is one of the most interesting technologies developed in recent years. Blockchain is a ledger, a register, a decentralized and public shared database, reachable by accessing a peer-to-peer network. Each unit of the register represents a block. The blocks are linked together in the same order in which they were created and are connected using cryptographic algorithms that make them and the information stored therein not modifiable. Software development needs to be supported by architectural models or blockchain oriented meta-models. The introduction of smart contracts, small computer programs stored inside the Ethereum blockchain, modifies the typical software engineering methodologies. The distributed applications developed on blockchain technologies, can in fact follow rules different from used for the development of the normal centralized applications. The blockchain is instead based on a totally different assumption: the information stored on the blockchain and therefore the smart contracts can not be modified or deleted without compromising the integrity of the blockchain itself. Moreover the smart contracts run in an isolated environment and their results must be the same whatever node they run in. They cannot access the external world that changes with time, but can access and send messages to the blockchain itself that is immutable. Such an innovative context entails new challenges in software engineering. Greater emphasis on specific security and testing practices, new development tools, specific modeling languages and new metrics to evaluate software quality are needed. These new metrics are required to measure complexity, communication, decentralized systems, but also resource consumption (e.g. the so-called gas in the ethereum system). In this scenario Agile methodologies, that are suited to system whose requirements are not completely understood, or tend to change, could be a good strategy of software development for blockchain applications. Some of the characteristics of the Agile methodologies are in fact present in decentralized applications (DApps). One of the most interesting applications based on blockchain are the Initial Coin Offerings (ICOs). An ICO is an innovative way to raise funds and launch a startup. It is also an opportunity to take part in a project, or in a DAO (Decentralized Autonomous Organization). This fund-raising tool contains however some critical issues, such as the use of tokens that have no intrinsic value and do not generate direct liquidity, and the role of investors in the startup’s management. The Lean software development, an approach that maximizes the value given to the customer, and aims to eliminate waste and optimize across organizations, could be helpful to face these critical aspects. The ICOs and, more generally the decentralized applications are based on smart contracts. Considering the technological break through introduced by blockchain it is important to know characteristics and measures and quality parameters of the development process and its phases, as well as metrics to help ensure that the development process is under control to meet the product’s quality goals. This thesis analyzes the software development process of blockchain-based applications. In particular this work analyzes the following aspects. • Investigating software engineering activities related to ICOs, recognize the ICOs developed using Agile methods and make a comparison between the characteristics of ICOs and those of Agile ICOs. • Evaluating the lean startup approach as a methodology for the implementation of an ICO. • Analizyng smart contracts deployed on the Ethereum blockchain relatively to smart contracts features, their interaction with the blockchain, the role of the development community, and the source code characteristics.
8-feb-2019
File in questo prodotto:
File Dimensione Formato  
tesi di dottorato_simona ibba.pdf

accesso aperto

Descrizione: tesi di dottorato
Dimensione 1.26 MB
Formato Adobe PDF
1.26 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11584/260671
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact