一种基于区块链的软件开发外包控制系统及实现方法技术方案

技术编号:29935370 阅读:66 留言:0更新日期:2021-09-04 19:10
本发明专利技术涉及一种基于区块链的软件开发外包控制系统及实现方法。该系统包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;本发明专利技术基于区块链技术去中心化、不可篡改的特性,由所有节点参与任务生成、代码验证以及能力评分,提高了软件开发外包任务的真实性、评估软件质量的公平性以及对开发方软件开发外包完成能力评估的权威性,以此有效激励开发方提高参与度与完成度;利用区块链账本数据可溯源及隐私保护的特性,加密记录用户货币及软件版权的每一次变更,保护了货币资产及软件版权,提高数据可信度。本发明专利技术还公开了一种基于区块链的软件开发外包控制系统的实现方法。实现方法。实现方法。

【技术实现步骤摘要】
一种基于区块链的软件开发外包控制系统及实现方法


[0001]本专利技术涉及软件开发外包控制领域,特别是涉及一种基于区块链的软件开发外包控制系统及实现方法。

技术介绍

[0002]区块链是利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。去中心化的区块链技术,能够给用户提供无需第三方信任的多点交易,并能更高层次上保护用户的隐私。信任体系是区块链网络中重要的一部分,能够让用户放心地将数字资产上链,不可篡改的区块链特性更稳固了信任体系。
[0003]软件开发外包是指企业为了专注核心竞争力业务和降低软件项目成本,将软件项目中的全部或部分工作发包给提供外包服务的企业完成的软件需求活动。传统的软件开发外包系统分为两类,一类为外包公司自建的业务系统,由需求方自主选择软件开发外包公司,提供完整的软件开发技术支持;另一类为第三方的软件开发外包网站,使用传统的信息系统技术,提供软件开发外包任务的发布及获取,多为发布外包基本需求后,自行联系开发,并由双方自主协商软件开发外包任务的完成情况。
[0004]以上系统存在明显的局限性,针对第一类自建的业务系统,其本身的性质仅仅是提供了一个在线业务受理的系统,系统本身无法进行软件开发外包控制;针对第二类传统的软件开发外包网站,由中心化组织进行任务分配及货币支付,缺乏对于开发方能力的评判以及交付软件的质量把控,无法激励开发方去更好地完成外包任务,使得需求方对外包控制力缺乏信任。同时由于交付软件可能需要上传至中心化存储或是直接进行脱离系统的交付,交付软件的权利保护也尤其匮乏。
[0005]近几年来,国内外学术及工业界对区块链给予了高度关注,但将区块链应用与软件开发外包控制的研究较少,特别是利用区块链技术实现外包软件版权归属以及如何利用区块链提高软件开发外包的整体过程和最终交付质量。

技术实现思路

[0006]本专利技术的目的是提供一种基于区块链的软件开发外包控制系统及实现方法,提高了软件开发外包任务的真实性、评估软件质量的公平性以及对开发方软件开发外包完成能力评估的权威性。
[0007]为实现上述目的,本专利技术提供了如下方案:
[0008]一种基于区块链的软件开发外包控制系统,包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;
[0009]所述需求发布模块与所述任务生成模块连接,所述需求发布模块用于接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目
金额的项目基本情况、软件的质量要求和对开发方的开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境;所述开发外包能力评分指对于开发方历史软件开发外包任务完成情况的总体数值;每一次软件开发外包任务的最终交付所花费的开发迭代次数、软件开发外包任务提交时间与任务期望完成时间的差值以及软件开发外包任务运行效率与任务期望运行效率的差值决定了此次任务的外包能力评分;软件开发外包任务的项目金额决定了单次开发外包能力评分加入到总体数值中的权重;
[0010]所述测试用例生成模块与所述区块链系统连接;所述测试用例生成模块用于将所述软件开发外包需求说明书的文字描述自动转化为测试用例描述;
[0011]所述智能合约生成模块与所述区块链系统连接;所述智能合约生成模块用于生成自动化判定所述测试用例的输出是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中;
[0012]所述软件运行沙箱与所述区块链系统连接;所述软件运行沙箱用于分配提供外包软件运行及验证的环境;
[0013]任务生成模块分别与所述测试用例生成模块、智能合约生成模块和所述软件运行沙箱连接;所述任务生成模块用于接收所述测试用例生成模块、所述智能合约生成模块与所述软件运行沙箱的执行结果,并控制开发外包任务创建的过程;
[0014]所述任务确认分配模块与所述区块链系统连接;所述任务确认分配模块用于在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务;
[0015]所述区块链系统用于提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。
[0016]可选地,还包括:任务接收模块、任务提交模块以及智能合约验证模块;
[0017]所述任务接收模块与所述区块链系统连接;所述任务接收模块用于接收开发方承接软件开发外包任务的申请;
[0018]所述任务提交模块与所述智能合约验证模块连接;所述任务提交模块用于接收开发方所承接软件开发外包任务软件产品的上传提交;
[0019]所述智能合约验证模块与所述区块链系统连接;所述智能合约验证模块用于通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。
[0020]可选地,还包括:需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本以及区块链账本;
[0021]所述区块链账本分别与所述需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本和所述区块链系统连接;
[0022]所述需求方历史任务账本用于存储被系统接收的所有需求方发布的软件开发外包需求历史数据;
[0023]所述开发方历史评分账本用于存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况;
[0024]所述用户货币及数字资产账本用于存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况;
[0025]所述区块链账本用于控制区块链系统对所述需求方历史任务账本、所述开发方历史评分账本和所述用户货币及数字资产账本的读写。
[0026]一种基于区块链的软件开发外包控制系统实现方法,包括:
[0027]需求方通过需求发布模块发布文字版软件开发外包需求以及软件的运行环境;
[0028]所述需求发布模块通知任务生成模块确认并在系统中生成需求方发布的软件开发外包需求;
[0029]所述任务生成模块通知测试用例生成模块将文字版软件开发外包需求自动转化成测试用例,并返回测试用例集合给所述任务生成模块;
[0030]所述任务生成模块将测试用例集合发送给智能合约生成模块,通知所述智能合约生成模块自动生成是否符合预期的判定逻辑并进行广播,将执行结果返回给所述任务生成模块;
[0031]所述任务生成模块将需求方发布的软件的运行环境发送给软件运行沙箱,通知所述软件运行沙箱预安装软件运行基本环境变量,并预留运行环境所需硬件资源;
[0032]所述软件运行沙箱将软件开发外包任务发送给区块链系统,并通过区块链账本进行新发布任务的记录,存储至需求方历史任务账本。
[0033]一种基于区块链的软件开发外包控制系统实现方法,包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的软件开发外包控制系统,其特征在于,包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;所述需求发布模块与所述任务生成模块连接,所述需求发布模块用于接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目金额的项目基本情况、软件的质量要求和对开发方的开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境;所述开发外包能力评分指对于开发方历史软件开发外包任务完成情况的总体数值;每一次软件开发外包任务的最终交付所花费的开发迭代次数、软件开发外包任务提交时间与任务期望完成时间的差值以及软件开发外包任务运行效率与任务期望运行效率的差值决定了此次任务的开发外包能力评分;软件开发外包任务的项目金额决定了单次开发外包能力评分加入到总体数值中的权重;所述测试用例生成模块与所述区块链系统连接;所述测试用例生成模块用于将所述软件开发外包需求说明书的文字描述自动转化为测试用例描述;所述智能合约生成模块与所述区块链系统连接;所述智能合约生成模块用于生成自动化判定所述测试用例的输出是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中;所述软件运行沙箱与所述区块链系统连接;所述软件运行沙箱用于分配提供外包软件运行及验证的环境;任务生成模块分别与所述测试用例生成模块、智能合约生成模块和所述软件运行沙箱连接;所述任务生成模块用于接收所述测试用例生成模块、所述智能合约生成模块与所述软件运行沙箱的执行结果,并控制开发外包任务创建的过程;所述任务确认分配模块与所述区块链系统连接;所述任务确认分配模块用于在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务;所述区块链系统用于提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。2.根据权利要求1所述的一种基于区块链的软件开发外包控制系统,其特征在于,还包括:任务接收模块、任务提交模块以及智能合约验证模块;所述任务接收模块与所述区块链系统连接;所述任务接收模块用于接收开发方承接软件开发外包任务的申请;所述任务提交模块与所述智能合约验证模块连接;所述任务提交模块用于接收开发方所承接软件开发外包任务软件产品的上传提交;所述智能合约验证模块与所述区块链系统连接;所述智能合约验证模块用于通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。3.根据权利要求1所述的一种基于区块链的软件开发外包控制系统,其特征在于,还包括:需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本以及区块链账本;所述区块链账本分别与所述需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本和所述区块链系统连接;所述需求方历史任务账本用于存储被系统接收的所有需求方发布的软件开发外包需
求历史数据;所述开发方历史评分账本用于存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况;所述用户货币及数字资产账本用于存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况;所述区块链账本用于控制区块链系统对所述需求方历史任务账本、所述开发方历史评分账本和所述用户货币及数字资产账本的读写。4.一种基于区块链的软件开发外包控制系统实现方法,其特征在于,包括:需...

【专利技术属性】
技术研发人员:蔡立志王超龚家瑜赵毅
申请(专利权)人:上海计算机软件技术开发中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1