基于区块链的软件工程
首先,让我们对区块链和软件工程有一个大致的了解。
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。在现代社会中,软件应用于多个方面。各个行业几乎都有计算机软件的应用,这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。
正是因为区块链有着一下四个特点:
(1)“不可篡改”的特点,为经济社会发展中的“存证”难题提供了解决方案
(2)“分布式”的特点,可以打通部门间的“数据壁垒”,实现信息和数据共享
(3)“共识机制”的特点,能够解决信息不对称问题,真正实现从“信息互联网”到“信任互联网”的转变
(4)能通过“智能合约”,能够实现多个主体之间的协作信任,从而大大拓展了人类相互合作的范围和深度
因此区块链技术已被广泛应用于银行业和物联网领域。
相信区块链技术不仅仅能够只在目前已有的方面为人们带来便捷,更能在软件工程方面大展身手,是因为区块链在以下几个方面有所帮助:
(1)软件工程基础设施的民主化和专业化
(2)提高已发布的工程质量
例如,Debian使用的就是由开源社区的志愿者维护的包存储库。开源软件的这一核心原则本身并不坏,但是由于维护人员不够活跃,导致大量外围软件包因无人维护而过时。相反,在BAPT中,开放式的软件包市场可以蓬勃发展,每个人都可以参与其中,发布包、验证其他人的工作。参与这一透明和开放流程的报酬以小额付款的形式提供,市场机制可以推动紧急的发布或构建提供更高的费用。
所以区块链为软件工程带来什么呢?
(1)职业化。在软件工程中存在很多细微的工作,它们本身并不困难,但是需要很多人力。例如维护软件包和执行构建。
(2)能够提高质量。除了软件过时之外,软件包也经常在不同的集成环境中崩溃。而在分布式系统中,由于测试人员和设备、环境的多样性,能通验证的发布和构建的质量可以更高。
(3)信任。只要存在垄断就存在信任问题。Left-pad事件表明了Debian的维护系统无法防范恶意行为。使用区块链技术,我们可以用人人可参与的去中心化系统替代集中式系统,同时还可以提供更高的可用性。
正是因为区块链会成为未来的主流,也是为了适应国家社会经济和社会信息化的发展,面向区块链产业对区块链技术人才的需求,因此产生了软件工程(区块链)这一专业。与普通的软件工程专业不同的是,此专业会更注重让学生掌握区块链技术基本理论和区块链项目开发方法,具有区块链系统设计与实现能力、区块链项目管理与实施能力和在企业和社会环境下构思、设计、实施、运行系统的能力;能够在未来成为区块链行业骨干,在区块链项目系统设计开发、区块链项目管理、区块链系统服务等领域发挥创新纽带作用的应用型高级专门人才。