# Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study
## 4 Results
### Blockchain Uses in Software Engineering Reported in Literature (RQ2)
Additionally, the framework enables the analysis of provenance through services, such as provenance query services that can focus on agents, artifacts or the process, and inference services to uncover non-trivial insights [54]. Finally, the framework provides services that generate composite cryptographic hashes of artifacts as the result of the concatenation of the hashes based on metadata and hashes based on content. These sub-identities uniquely identify artifacts, and their combination generates the composite software identity [55]. * _Advisory Layer._ This layer provides services to alert users in case of non-compliant issues and suggests remedial measures to address such issues. [PERSON] et al. [56] addressed the problem of unauthorized access, modification and transfer of software modules among entities in collaborative software development, by means of blockchain technology. Their proposal relies on access-control policies established in smart contracts. Software module requests and transfers are recorded on the blockchain ledger, ensuring in this way the integrity of the provenance data and accountability. More recently, an evaluation study was carried out by [PERSON] et al. [42] to explore the impact of blockchain on the global software development environment from a management perspective. The authors of this study conducted interviews with academic experts and industry practitioners. Their findings confirmed the positive impact of blockchain in such environments in the following dimensions: visibility, updated task status, secure payment at distributed sites, and accountability of team members. **Software engineering professional practice. **[PERSON] et al. [57] proposed a smart collaboration mechanism where each _collaboration_ is encoded as a transaction message. Changes that collaborators make are appended to the blockchain after consensus from all the parties. Their proposed model consists of three entities: collaborators who perform code commits, administrators who authorize specific actions, and miners who verify transactions. One of the major drawbacks of this system is increased latency, as messages are broadcasted first to administrators and then to miners. [PERSON] and [PERSON] [58] address the issue of _trusted coordination_ in collaborative software development. Each software team is represented by a blockchain node and generates software specifications for each of the SDLC phases, e.g., requirements, implementation and testing, in the form of smart contracts. The smart contract contains teams allowed to participate in the smart contract, and software specifications in (key, value) format. Software specifications are then assessed against the results generated by the other allowed teams. The authors provide a couple of examples to illustrate their approach and plan to analyze the scalability in complex and large-scale software projects. [PERSON] et al. [59] proposed a blockchain-based incentive framework to ensure transparent _incentives to software engineers_ who contribute to any activities throughout the entire software lifecycle: pre-development, development, post-development. The framework captures events and assets' metadata from the distributed software delivery ecosystem and analyzes these events according to incentive policies. In case of adherence, valid participants are incentivized by means of digital tokens. As future work, the authors proposed the incorporation of gamification elements to enhance the incentivization of software engineers.