Blockchain: A Software Engineering Perspective
Lawrence Chung · 2019
Blockchain is intended to help enhance the trustworthiness of data and transactions, by chaining and distributing blocks of the same data so that they may become more transparent, traceable, and immutable. With such a great potential, blockchain is increasingly being explored in many applications, especially in the presence of (potential) dis-/mis-/un-trust among organizations and individuals, well beyond its original use, namely, for bitcoin. However, an ad hoc approach to adopting blockchain may lead to not better, but worse, situations and results, and with severe disappointments. In this talk, I will describe Fides - a framework for systematically utilizing blockchain towards enhancing business processes with trustworthiness. Fides takes a goal-oriented, software engineering approach, in which trust-related concerns are explicitly represented as (soft)goals to be achieved, problems for achieving the goals are diagnosed, and then alternatives are explored in terms of business processes for eliminating or alleviating the problems, while at the same time achieving the goals. Finally, a selection is made among the alternatives that best utilize blockchain. In this approach, business processes are modelled, rules are formulated at the requirements level for beneficially transitioning from as-is to to-be, and transformed into smart contracts. At the end, I will describe a couple of applications of Fides, for an initial assessment of its strengths and weaknesses.