Software Engineering for Blockchain Based Software Systems: Foundations, Survey, and Future Directions

Many scientific and practical areas have shown increasing interest in reaping the benefits of blockchain technology to empower software systems. However, the unique characteristics and requirements associated with Blockchain Based Software (BBS) systems raise new challenges across the development lifecycle that entail an extensive improvement of conventional software engineering. This article presents a systematic literature review of the state-of-the-art in BBS engineering research from a software engineering perspective. We characterize BBS engineering from the theoretical foundations, processes, models, and roles and discuss a rich repertoire of key development activities, principles, challenges, and techniques. The focus and depth of this survey not only gives software engineering practitioners and researchers a consolidated body of knowledge about current BBS development but also underpins a starting point for further research in this field.

[1]  Alfonso Fuggetta,et al.  Software process: a roadmap , 2000, ICSE '00.

[2]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[3]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[4]  Fran Casino,et al.  A systematic literature review of blockchain-based applications: Current status, classification and open issues , 2019, Telematics Informatics.

[5]  Shari Lawrence Pfleeger,et al.  Albert Einstein and Empirical Software Engineering , 1999, Computer.

[6]  Anindya Iqbal,et al.  Understanding the motivations, challenges and needs of Blockchain software developers: a survey , 2018, Empirical Software Engineering.

[7]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[8]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[9]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

[10]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[11]  Daniel H. H. Ingalls,et al.  The Smalltalk-76 programming system design and implementation , 1978, POPL.

[12]  Vassilios Peristeras,et al.  Blockchain for Business Applications: A Systematic Literature Review , 2018, BIS.

[13]  Mahdi H. Miraz,et al.  Blockchain Enabled Smart Contract Based Applications: Deficiencies with the Software Development Life Cycle Models , 2020, ArXiv.

[14]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[15]  Maryam Razavian,et al.  A systematic literature review on SOA migration , 2015, J. Softw. Evol. Process..

[16]  N. F. Noy,et al.  Ontology Development 101: A Guide to Creating Your First Ontology , 2001 .

[17]  Marko Vukolic,et al.  Hyperledger fabric: a distributed operating system for permissioned blockchains , 2018, EuroSys.

[18]  Nick Szabo,et al.  Formalizing and Securing Relationships on Public Networks , 1997, First Monday.

[19]  Mahdi Fahmideh,et al.  Cloud Migration Methodologies: Preliminary Findings , 2016, ESOCC Workshops.

[20]  Michele Marchesi,et al.  ABCDE - Agile Block Chain Dapp Engineering , 2019, Blockchain: Research and Applications.

[21]  Melanie Swan,et al.  Blockchain: Blueprint for a New Economy , 2015 .

[22]  Andrea Pinna,et al.  Blockchain-Oriented Software Engineering: Challenges and New Directions , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[23]  Tanja Hueber,et al.  Information Systems Development Methodologies Techniques And Tools , 2016 .

[24]  Magnus C. Ohlsson,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[25]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[26]  Ita Richardson,et al.  Process models for service-based applications: A systematic literature review , 2011, Inf. Softw. Technol..

[27]  Mahdi Fahmideh,et al.  An exploration of IoT platform development , 2020, Inf. Syst..

[28]  Ian Sommerville,et al.  An empirical study of industrial requirements engineering process assessment and improvement , 2005, TSEM.

[29]  Richard F. Paige,et al.  Process-centered review of object oriented software development methodologies , 2008, CSUR.

[30]  Sooyong Park,et al.  Where Is Current Research on Blockchain Technology?—A Systematic Review , 2016, PloS one.

[31]  Mahdi Fahmideh,et al.  Cloud migration process - A survey, evaluation framework, and open challenges , 2016, J. Syst. Softw..

[32]  Bruce McMillin,et al.  Software engineering: What is it? , 2018, 2018 IEEE Aerospace Conference.

[33]  Mahdi Fahmideh,et al.  A generic cloud migration process model , 2018, Eur. J. Inf. Syst..

[34]  Robin Teigland,et al.  Jumping on the Blockchain Bandwagon: Lessons of the Past and Outlook to the Future , 2016, ICIS.

[35]  Kai Spohrer,et al.  A Blockchain Research Framework , 2017, Business & Information Systems Engineering.

[36]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[37]  Brian Henderson-Sellers,et al.  Metamodelling for software engineering , 2008 .

[38]  Zibin Zheng,et al.  Blockchain challenges and opportunities: a survey , 2018, Int. J. Web Grid Serv..

[39]  Colin Atkinson,et al.  Model-Driven Development: A Metamodeling Foundation , 2003, IEEE Softw..

[40]  Sjaak Brinkkemper,et al.  Situational method engineering for informational system project approaches , 1994, Methods and Associated Tools for the Information Systems Life Cycle.

[41]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[42]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[43]  Carlo Ghezzi,et al.  Software processes: a retrospective and a path to the future , 1998, Software Process: Improvement and Practice.

[44]  Michele Marchesi,et al.  Blockchain applications for agile methodologies , 2018, XP Companion.

[45]  F PaigeRichard,et al.  Process-centered review of object oriented software development methodologies , 2008 .

[46]  Fabio Kon,et al.  A Survey of DevOps Concepts and Challenges , 2020, ACM Comput. Surv..

[47]  Antonio Puliafito,et al.  Blockchain and IoT Integration: A Systematic Survey , 2018, Sensors.

[48]  Bhabendu Kumar Mohanta,et al.  Blockchain technology: A survey on applications and security privacy Challenges , 2019, Internet Things.

[49]  Jing Liu,et al.  A Survey on Security Verification of Blockchain Smart Contracts , 2019, IEEE Access.

[50]  Antonio De Nicola,et al.  A software engineering approach to ontology building , 2009, Inf. Syst..

[51]  Angela Greiling Keane,et al.  NO SILVER BULLET , 2003 .

[52]  Anindya Iqbal,et al.  Understanding the software development practices of blockchain projects: a survey , 2018, ESEM.

[53]  Jafar Habibi,et al.  Criteria-Based Evaluation Framework for Service-Oriented Methodologies , 2010, 2010 12th International Conference on Computer Modelling and Simulation.

[54]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[55]  Christopher D. Clack,et al.  Smart Contract Templates: foundations, design landscape and research directions , 2016, ArXiv.

[56]  Peng Jiang,et al.  A Survey on the Security of Blockchain Systems , 2017, Future Gener. Comput. Syst..

[57]  Hannes Schwarz,et al.  Model-Driven Software Development , 2013 .