CN113344535A - 一种基于区块链的软件开发外包控制系统及实现方法 - Google Patents
一种基于区块链的软件开发外包控制系统及实现方法 Download PDFInfo
- Publication number
- CN113344535A CN113344535A CN202110686228.0A CN202110686228A CN113344535A CN 113344535 A CN113344535 A CN 113344535A CN 202110686228 A CN202110686228 A CN 202110686228A CN 113344535 A CN113344535 A CN 113344535A
- Authority
- CN
- China
- Prior art keywords
- task
- software
- module
- block chain
- outsourcing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Game Theory and Decision Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于区块链的软件开发外包控制系统及实现方法。该系统包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;本发明基于区块链技术去中心化、不可篡改的特性,由所有节点参与任务生成、代码验证以及能力评分,提高了软件开发外包任务的真实性、评估软件质量的公平性以及对开发方软件开发外包完成能力评估的权威性,以此有效激励开发方提高参与度与完成度;利用区块链账本数据可溯源及隐私保护的特性,加密记录用户货币及软件版权的每一次变更,保护了货币资产及软件版权,提高数据可信度。本发明还公开了一种基于区块链的软件开发外包控制系统的实现方法。
Description
技术领域
本发明涉及软件开发外包控制领域,特别是涉及一种基于区块链的软件开发外包控制系统及实现方法。
背景技术
区块链是利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。去中心化的区块链技术,能够给用户提供无需第三方信任的多点交易,并能更高层次上保护用户的隐私。信任体系是区块链网络中重要的一部分,能够让用户放心地将数字资产上链,不可篡改的区块链特性更稳固了信任体系。
软件开发外包是指企业为了专注核心竞争力业务和降低软件项目成本,将软件项目中的全部或部分工作发包给提供外包服务的企业完成的软件需求活动。传统的软件开发外包系统分为两类,一类为外包公司自建的业务系统,由需求方自主选择软件开发外包公司,提供完整的软件开发技术支持;另一类为第三方的软件开发外包网站,使用传统的信息系统技术,提供软件开发外包任务的发布及获取,多为发布外包基本需求后,自行联系开发,并由双方自主协商软件开发外包任务的完成情况。
以上系统存在明显的局限性,针对第一类自建的业务系统,其本身的性质仅仅是提供了一个在线业务受理的系统,系统本身无法进行软件开发外包控制;针对第二类传统的软件开发外包网站,由中心化组织进行任务分配及货币支付,缺乏对于开发方能力的评判以及交付软件的质量把控,无法激励开发方去更好地完成外包任务,使得需求方对外包控制力缺乏信任。同时由于交付软件可能需要上传至中心化存储或是直接进行脱离系统的交付,交付软件的权利保护也尤其匮乏。
近几年来,国内外学术及工业界对区块链给予了高度关注,但将区块链应用与软件开发外包控制的研究较少,特别是利用区块链技术实现外包软件版权归属以及如何利用区块链提高软件开发外包的整体过程和最终交付质量。
发明内容
本发明的目的是提供一种基于区块链的软件开发外包控制系统及实现方法,提高了软件开发外包任务的真实性、评估软件质量的公平性以及对开发方软件开发外包完成能力评估的权威性。
为实现上述目的,本发明提供了如下方案:
一种基于区块链的软件开发外包控制系统,包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;
所述需求发布模块与所述任务生成模块连接,所述需求发布模块用于接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目金额的项目基本情况、软件的质量要求和对开发方的开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境;所述开发外包能力评分指对于开发方历史软件开发外包任务完成情况的总体数值;每一次软件开发外包任务的最终交付所花费的开发迭代次数、软件开发外包任务提交时间与任务期望完成时间的差值以及软件开发外包任务运行效率与任务期望运行效率的差值决定了此次任务的外包能力评分;软件开发外包任务的项目金额决定了单次开发外包能力评分加入到总体数值中的权重;
所述测试用例生成模块与所述区块链系统连接;所述测试用例生成模块用于将所述软件开发外包需求说明书的文字描述自动转化为测试用例描述;
所述智能合约生成模块与所述区块链系统连接;所述智能合约生成模块用于生成自动化判定所述测试用例的输出是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中;
所述软件运行沙箱与所述区块链系统连接;所述软件运行沙箱用于分配提供外包软件运行及验证的环境;
任务生成模块分别与所述测试用例生成模块、智能合约生成模块和所述软件运行沙箱连接;所述任务生成模块用于接收所述测试用例生成模块、所述智能合约生成模块与所述软件运行沙箱的执行结果,并控制开发外包任务创建的过程;
所述任务确认分配模块与所述区块链系统连接;所述任务确认分配模块用于在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务;
所述区块链系统用于提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。
可选地,还包括:任务接收模块、任务提交模块以及智能合约验证模块;
所述任务接收模块与所述区块链系统连接;所述任务接收模块用于接收开发方承接软件开发外包任务的申请;
所述任务提交模块与所述智能合约验证模块连接;所述任务提交模块用于接收开发方所承接软件开发外包任务软件产品的上传提交;
所述智能合约验证模块与所述区块链系统连接;所述智能合约验证模块用于通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。
可选地,还包括:需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本以及区块链账本;
所述区块链账本分别与所述需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本和所述区块链系统连接;
所述需求方历史任务账本用于存储被系统接收的所有需求方发布的软件开发外包需求历史数据;
所述开发方历史评分账本用于存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况;
所述用户货币及数字资产账本用于存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况;
所述区块链账本用于控制区块链系统对所述需求方历史任务账本、所述开发方历史评分账本和所述用户货币及数字资产账本的读写。
一种基于区块链的软件开发外包控制系统实现方法,包括:
需求方通过需求发布模块发布文字版软件开发外包需求以及软件的运行环境;
所述需求发布模块通知任务生成模块确认并在系统中生成需求方发布的软件开发外包需求;
所述任务生成模块通知测试用例生成模块将文字版软件开发外包需求自动转化成测试用例,并返回测试用例集合给所述任务生成模块;
所述任务生成模块将测试用例集合发送给智能合约生成模块,通知所述智能合约生成模块自动生成是否符合预期的判定逻辑并进行广播,将执行结果返回给所述任务生成模块;
所述任务生成模块将需求方发布的软件的运行环境发送给软件运行沙箱,通知所述软件运行沙箱预安装软件运行基本环境变量,并预留运行环境所需硬件资源;
所述软件运行沙箱将软件开发外包任务发送给区块链系统,并通过区块链账本进行新发布任务的记录,存储至需求方历史任务账本。
一种基于区块链的软件开发外包控制系统实现方法,包括:
开发方通过任务接收模块申请接收需求方发布的软件开发外包任务;
需求方通过任务确认分配模块查看申请任务的开发方是否符合软件开发外包的能力要求,特别是评判开发方历史评分是否满足要求;若不满足,则结束此次开发方的任务申请;若满足,则进行任务分配;此后,开发方根据任务需求开发软件,通过任务提交模块提交软件源代码;
任务提交模块将开发方提交的软件源代码发送给智能合约验证模块,判定软件源代码是否符合要求;
若不符合要求,则智能合约验证模块根据软件源代码不符合程度,降低对应开发方能力评分,将修改后的能力评分数值发送给区块链系统,并通过区块链账本进行开发方总体能力评分和本次任务评分的记录,存储至开发方历史评分账本;通过任务提交模块通知开发方进行软件源代码开发迭代并等待重新提交;
若符合要求,则述智能合约验证模块根据软件源代码开发迭代次数,提高对应开发方能力评分,将修改后的能力评分数值发送给所述区块链系统,并通过区块链账本进行开发方总体能力评分和本次任务评分的记录,存储至开发方历史评分账本;
智能合约验证模块将符合要求的软件源代码发送给区块链系统,并通过区块链账本进行软件原始权利拥有者和软件现有权利拥有者的记录,存储至用户货币及数字资产账本中的数字资产账本中;软件原始权利拥有者为开发方;现有软件现有权利拥有者为需求方;
区块链系统获取需求方历史任务账本中本次任务对应的应支付货币,从本次任务需求方的货币总数中扣除对应的货币数量,并在本次任务开发方的货币总数中增加对应的货币数量,通过区块链账本进行货币修改的记录,存储至用户货币及数字资产账本中用户货币账本中。
可选地,所述任务提交模块将开发方提交的软件源代码发送给智能合约验证模块,判定软件源代码是否符合要求,具体包括:
智能合约验证模块通过区块链系统将软件源代码分发给所有参与软件开发外包最终软件质量评估的节点;
每个接收到软件源代码的验证节点通过区块链系统自动将软件编译并部署于软件运行沙箱;
验证节点将测试用例输入到待验证软件,并接收软件在当前环境下的测试用例所得出的实际结果;
验证节点通过是否符合预期的判定逻辑,自动比对预期输出与实际输出,得出测试用例通过率;比对需求方所提出的软件开发外包质量要求,若符合则在验证通过结果中进行签名,若不符合则不进行签名;
智能合约验证模块接收来自所有验证节点的验证通过结果,若签名数量在所有验证节点数量中的占比高于预期值,给出软件源代码符合要求的最终判定。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种基于区块链的软件开发外包控制系统及实现方法,通过利用区块链技术,设计实现了一种软件开发外包控制系统,该系统的优点是:提高了开发外包软件的版权保护、通过多方评价提高外包双方可信度、提高了软件开发外包的整体过程和交付软件质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种基于区块链的软件开发外包控制系统结构示意图;
图2为本发明所提供的一种基于区块链的软件开发外包控制系统结构示意图;
图3为本发明所提供的一种基于区块链的软件开发外包控制系统的需求方软件开发外包需求发布工作流程图;
图4为本发明所提供的一种基于区块链的软件开发外包控制系统的开发方接收任务及交付软件工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于区块链的软件开发外包控制系统及实现方法,提高了软件开发外包任务的真实性、评估软件质量的公平性以及对开发方软件开发外包完成能力评估的权威性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1和图2所示,本发明所提供的一种基于区块链的软件开发外包控制系统,包括:需求发布模块1、测试用例生成模块3、智能合约生成模块4、软件运行沙箱9、任务生成模块2、任务确认分配模块5以及区块链系统10。
所述需求发布模块1与所述任务生成模块2连接,所述需求发布模块1用于接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目金额的项目基本情况、软件的质量要求和对开发方的开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境;所述开发外包能力评分指对于开发方历史软件开发外包任务完成情况的总体数值;每一次软件开发外包任务的最终交付所花费的开发迭代次数、软件开发外包任务提交时间与任务期望完成时间的差值以及软件开发外包任务运行效率与任务期望运行效率的差值决定了此次任务的开发能力评分;软件开发外包任务的项目金额决定了开发外包能力评分加入到总体数值中的权重。
所述测试用例生成模块3与所述区块链系统10连接;所述测试用例生成模块3用于将所述软件开发外包需求说明书的文字描述自动转化为测试用例描述。
所述智能合约生成模块4与所述区块链系统10连接;所述智能合约生成模块4用于生成自动化判定所述测试用例的输出是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中;判定逻辑将会在生成后自动分配给所有参与到软件开发外包控制验证的节点,并以此作为依据评判与控制开发方所提交的软件总体质量。
所述软件运行沙箱9与所述区块链系统10连接;所述软件运行沙箱9用于分配提供外包软件运行及验证的环境。
任务生成模块2分别与所述测试用例生成模块3、智能合约生成模块4和所述软件运行沙箱9连接;所述任务生成模块2用于接收所述测试用例生成模块3、所述智能合约生成模块4与所述软件运行沙箱9的执行结果,并控制开发外包任务创建的过程。
所述任务确认分配模块5与所述区块链系统10连接;所述任务确认分配模块5用于在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务。
所述区块链系统10用于提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。
本发明所提供的一种基于区块链的软件开发外包控制系统,还包括:任务接收模块6、任务提交模块7以及智能合约验证模块8。
所述任务接收模块6与所述区块链系统10连接;所述任务接收模块6用于接收开发方承接软件开发外包任务的申请。
所述任务提交模块7与所述智能合约验证模块8连接;所述任务提交模块7用于接收开发方所承接软件开发外包任务软件产品的上传提交。
所述智能合约验证模块8与所述区块链系统10连接;所述智能合约验证模块8用于通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。
本发明所提供的一种基于区块链的软件开发外包控制系统,还包括:需求方历史任务账本12、开发方历史评分账本13、用户货币及数字资产账本14以及区块链账本11。
所述区块链账本11分别与所述需求方历史任务账本12、开发方历史评分账本13、用户货币及数字资产账本14和所述区块链系统10连接。
所述需求方历史任务账本12用于存储被系统接收的所有需求方发布的软件开发外包需求历史数据。
所述开发方历史评分账本13用于存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况。
所述用户货币及数字资产账本14用于存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况。
所述区块链账本11用于控制区块链系统10对所述需求方历史任务账本12、所述开发方历史评分账本13和所述用户货币及数字资产账本14的读写。
需求发布模块1的作用是:接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目金额的项目基本情况、软件的质量要求和对开发方开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境。
任务生成模块2的作用是:收测试用例生成模块3、智能合约生成模块4与软件运行沙箱9的执行结果,并控制开发外包任务创建的过程。
测试用例生成模块3的作用是:将软件开发外包中需求说明书的文字描述自动转化为测试用例描述的形式。
智能合约生成模块4的作用是:生成自动化判定测试用例输出结果是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中。
任务确认分配模块5的作用是:在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务。
任务接收模块6的作用是:接收开发方承接软件开发外包任务的申请。
任务提交模块7的作用是:接收开发方所承接软件开发外包任务软件产品的上传提交。
智能合约验证模块8的作用是:通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。
软件运行沙箱9的作用是:分配提供外包软件运行及验证的环境。
区块链系统10的作用是:提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。
区块链账本11的作用是:控制区块链系统对需求方历史任务账本12、开发方历史评分账本13和用户货币及数字资产账本14的读写。
需求方历史任务账本12的作用是:存储被系统接收的所有需求方发布的软件开发外包需求历史数据。
开发方历史评分账本13的作用是:存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况。
用户货币及数字资产账本14的作用是:存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况。
如图3所示,本发明的基于区块链的软件开发外包控制系统的实现方法,需求方软件开发外包需求发布过程包括:
步骤一S1:需求方通过需求发布模块1发布文字版软件开发外包需求以及软件的运行环境。
步骤二S2:需求发布模块1通知任务生成模块2确认并在系统中生成需求方发布的软件开发外包需求。
步骤三S3:任务生成模块2通知测试用例生成模块3将文字版软件开发外包需求自动转化成测试用例,并返回测试用例集合给任务生成模块2。
步骤四S4:任务生成模块2将测试用例集合发送给智能合约生成模块4,通知智能合约生成模块4自动生成是否符合预期的判定逻辑并进行广播,将执行结果返回给任务生成模块2。
步骤五S5:任务生成模块2将需求方发布的软件的运行环境发送给软件运行沙箱9,通知软件运行沙箱9预安装软件运行基本环境变量,并预留运行环境所需硬件资源。
步骤六S6:软件运行沙箱9将软件开发外包任务发送给区块链系统10,并通过区块链账本11进行新发布任务的记录,存储至需求方历史任务账本12。
如图4所示,本发明的基于区块链的软件开发外包控制系统的实现方法,开发方接收任务及交付软件过程包括:
步骤一S1:开发方通过任务接收模块6申请接收需求方发布的软件开发外包任务。
步骤二S2:需求方通过任务确认分配模块5查看申请任务的开发方是否符合软件开发外包的能力要求,特别是评判开发方历史评分是否满足要求。如果满足,则执行步骤三;如果不满足,则结束此次开发方的任务申请。
步骤三S3:开发方根据任务需求开发软件,通过任务提交模块7提交软件源代码。
步骤四S4:任务提交模块7将开发方提交的软件源代码发送给智能合约验证模块8,判定软件源代码是否符合要求。如果符合要求,则跳转至步骤七;如果不符合要求,则跳转至步骤五。
步骤五S5:智能合约验证模块8根据软件源代码不符合程度,降低对应开发方能力评分,将修改后的能力评分数值发送给区块链系统10,并通过区块链账本11进行开发方总体能力评分和本次任务能力评分的记录,存储至开发方历史评分账本13。
步骤六S6:通过任务提交模块7,通知开发方进行软件源代码修改并等待重新提交。
步骤七S7:智能合约验证模块8根据软件源代码开发迭代次数,提高对应开发方能力评分,将修改后的能力评分数值发送给区块链系统10,并通过区块链账本11进行开发方总体能力评分和本次任务评分的记录,存储至开发方历史评分账本13。
步骤八S8:智能合约验证模块8将符合要求的软件源代码发送给区块链系统10,并通过区块链账本11进行软件原始权利拥有者(即开发方)和现有软件现有权利拥有者(即需求方)的记录,存储至用户货币及数字资产账本14中的数字资产账本中。
步骤九S9:区块链系统10获取需求方历史任务账本中本次任务对应的应支付货币,从本次任务需求方的货币总数中扣除对应的货币数量,并在本次任务开发方的货币总数中增加对应的货币数量,通过区块链账本11,进行货币修改的记录,存储至用户货币及数字资产账本14中用户货币账本中。
步骤四中,判定软件源代码是否符合要求的操作包括以下步骤:
步骤A1:智能合约验证模块8通过区块链系统10将软件源代码分发给所有参与软件开发外包最终软件质量评估的节点。
步骤A2:每个接收到软件源代码的验证节点通过区块链系统10自动将软件编译并部署于软件运行沙箱9。
步骤A3:验证节点将测试用例输入到待验证软件,并接收软件在当前环境下的测试用例所得出的实际结果。
步骤A4:验证节点通过是否符合预期的判定逻辑,自动比对预期输出与实际输出,得出测试用例通过率。比对需求方所提出的软件开发外包质量要求,若符合则在验证通过结果中进行签名,若不符合则不进行签名。
步骤A5:智能合约验证模块8接收来自所有验证节点的验证通过结果,若签名数量在所有验证节点数量中的占比高于预期值,给出软件源代码符合要求的最终判定。
实施例1:需求方发布软件开发外包需求
企业C1需要通过软件开发外包的形式,外包一个校验上传文件类型及大小的功能模块。企业C1编写文字需求RW1“使用JAVA语言,功能模块实现上传文件类型及大小的校验,仅支持上传图片格式的文件,文件最大为100MB,校验通过返回True,校验不通过返回False”。通过需求发布模块1提交文字需求,并同时填写提交该外包功能模块的项目金额100货币、截止完成时间D1、开发方能力评分需要大于95以及质量要求:所有节点判定通过率需达到100%,最后给出功能模块方法“public boolean checkMineType(File file){returntrue;}”。需求发布模块1通知任务生成模块2初始化企业C1提交的软件开发外包需求,生成初始任务集合R1={需求方名称=C1,任务金额=100,需求说明书=RW1,截止时间=D1,测试通过率=100%,运行环境=JDK所有版本,测试用例=TC1,智能合约=SC1,任务状态=生成}。任务生成模块2通知测试用例生成模块3根据需求说明书RW1自动化生成测试用例TC1,将TC1结果返回并更新至初始任务集合R1。任务生成模块2通知智能合约生成模块根据测试用例TC1集合的测试输入与输出,自动化生成是否符合预期输出的智能合约SC1,将SC1结果返回并更新至初始任务集合R1,同时将智能合约SC1分发并安装在所有参与开发外包控制的节点上。任务生成模块2通知软件运行沙箱9预先安装运行环境JDK1.8,返回安装成功结果给区块链系统10,并将初始任务集合R1中的任务状态更新为发布。区块链系统10通知区块链账本11执行历史任务账本写入操作,将R1存储于需求历史任务账本。至此,需求方发布软件开发外包需求结束。
实施例2:开发方接收任务及交付软件
企业C2希望承接实施例1中企业C1发布的校验上传文件类型及大小的功能模块,通过任务接收模块6申请接收软件开发外包任务。任务接收模块6通过区块链系统10,从开发方历史评分账本中获取企业C2的历史评分集合(假设所有承接历史任务的项目金额权重相同)H2={总体外包能力评分=97,历史外包能力评分={100,95,94,97,96,99,98}},并将历史评分集合H2发送给任务确认分配模块5,企业C1通过任务确认分配模块5查看评分,认可C2能力确认将需求R1任务分配给企业C2,区块链系统10将任务集合R1中的任务状态更新为开发。企业C2在截止时间D1前开发完成后,通过任务提交模块7提交软件源代码CC1。任务提交模块7通知智能合约验证模块8生成软件源代码CC1数字资产集合DS1={软件源代码=CC1,开发者=C2,所有者=C2},并广播软件源代码以及判定源代码是否符合要求工作任务,所有区块链系统网络中参与判定的节点将软件源代码CC1部署于随机选择JDK版本的软件运行沙箱,自动执行任务R1中的智能合约SC1。最终所有参与判定源代码是否符合要求的节点都得出通过结果,并在判定结果中签名,返回给区块链系统10。区块链系统10通过评分规则得出此次C2在软件开发外包任务R1中的得分为100,通过区块链账本11更新企业C2的历史评分集合H2={总体外包能力评分=97.375,历史外包能力评分={100,100,95,94,97,96,99,98}},并存储至开发方历史评分账本13。区块链系统10通过区块链账本11更新数字资产集合DS1={软件源代码=CC1,开发者=C2,所有者=C1},并存储至数字资产账本14,同时将软件源代码CC1发送给企业C1。区块链系统10通过区块链账本11,读取企业C1的用户货币量1000,减去任务R1中的任务金额100,将用户货币量900更新到C1对应的用户货币账本中;同时读取企业C2的用户货币量200,加上任务R1中的任务金额100,将用户货币量300更新到C1对应的用户货币账本中。最终区块链系统10将任务集合R1中的任务状态更新为结束。至此开发方接收任务及交付软件结束。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于区块链的软件开发外包控制系统,其特征在于,包括:需求发布模块、测试用例生成模块、智能合约生成模块、软件运行沙箱、任务生成模块、任务确认分配模块以及区块链系统;
所述需求发布模块与所述任务生成模块连接,所述需求发布模块用于接收需求方创建及发布软件开发外包需求说明书,同时录入及提交待开发外包软件的项目时间与项目金额的项目基本情况、软件的质量要求和对开发方的开发外包能力评分的要求,并申请开发外包软件运行及验证所需的运行环境;所述开发外包能力评分指对于开发方历史软件开发外包任务完成情况的总体数值;每一次软件开发外包任务的最终交付所花费的开发迭代次数、软件开发外包任务提交时间与任务期望完成时间的差值以及软件开发外包任务运行效率与任务期望运行效率的差值决定了此次任务的开发外包能力评分;软件开发外包任务的项目金额决定了单次开发外包能力评分加入到总体数值中的权重;
所述测试用例生成模块与所述区块链系统连接;所述测试用例生成模块用于将所述软件开发外包需求说明书的文字描述自动转化为测试用例描述;
所述智能合约生成模块与所述区块链系统连接;所述智能合约生成模块用于生成自动化判定所述测试用例的输出是否符合预期的判定逻辑,并将判定逻辑以智能合约的形式分配到区块链网络中所有参与验证软件开发外包质量的成员节点中;
所述软件运行沙箱与所述区块链系统连接;所述软件运行沙箱用于分配提供外包软件运行及验证的环境;
任务生成模块分别与所述测试用例生成模块、智能合约生成模块和所述软件运行沙箱连接;所述任务生成模块用于接收所述测试用例生成模块、所述智能合约生成模块与所述软件运行沙箱的执行结果,并控制开发外包任务创建的过程;
所述任务确认分配模块与所述区块链系统连接;所述任务确认分配模块用于在开发方承接软件开发外包任务后,需求方执行最终确认分配该任务;
所述区块链系统用于提供软件开发外包控制系统应用层、网络层以及分布式账本交互的系统底层架构。
2.根据权利要求1所述的一种基于区块链的软件开发外包控制系统,其特征在于,还包括:任务接收模块、任务提交模块以及智能合约验证模块;
所述任务接收模块与所述区块链系统连接;所述任务接收模块用于接收开发方承接软件开发外包任务的申请;
所述任务提交模块与所述智能合约验证模块连接;所述任务提交模块用于接收开发方所承接软件开发外包任务软件产品的上传提交;
所述智能合约验证模块与所述区块链系统连接;所述智能合约验证模块用于通知区块链网络中所有参与验证软件开发外包质量的成员节点进行控制检验。
3.根据权利要求1所述的一种基于区块链的软件开发外包控制系统,其特征在于,还包括:需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本以及区块链账本;
所述区块链账本分别与所述需求方历史任务账本、开发方历史评分账本、用户货币及数字资产账本和所述区块链系统连接;
所述需求方历史任务账本用于存储被系统接收的所有需求方发布的软件开发外包需求历史数据;
所述开发方历史评分账本用于存储系统中开发方当前能力评分及能力评分在不同软件开发外包任务完成过程的变化情况;
所述用户货币及数字资产账本用于存储系统中所有用户当前货币持有量,以及需求方作为数字资产的软件产品的版权拥有情况;
所述区块链账本用于控制区块链系统对所述需求方历史任务账本、所述开发方历史评分账本和所述用户货币及数字资产账本的读写。
4.一种基于区块链的软件开发外包控制系统实现方法,其特征在于,包括:
需求方通过需求发布模块发布文字版软件开发外包需求以及软件的运行环境;
所述需求发布模块通知任务生成模块确认并在系统中生成需求方发布的软件开发外包需求;
所述任务生成模块通知测试用例生成模块将文字版软件开发外包需求自动转化成测试用例,并返回测试用例集合给所述任务生成模块;
所述任务生成模块将测试用例集合发送给智能合约生成模块,通知所述智能合约生成模块自动生成是否符合预期的判定逻辑并进行广播,将执行结果返回给所述任务生成模块;
所述任务生成模块将需求方发布的软件的运行环境发送给软件运行沙箱,通知所述软件运行沙箱预安装软件运行基本环境变量,并预留运行环境所需硬件资源;
所述软件运行沙箱将软件开发外包任务发送给区块链系统,并通过区块链账本进行新发布任务的记录,存储至需求方历史任务账本。
5.一种基于区块链的软件开发外包控制系统实现方法,其特征在于,包括:
开发方通过任务接收模块申请接收需求方发布的软件开发外包任务;
需求方通过任务确认分配模块查看申请任务的开发方是否符合软件开发外包的能力要求,特别是评判开发方历史评分是否满足要求;若不满足,则结束此次开发方的任务申请;若满足,则进行任务分配;此后,开发方根据任务需求开发软件,通过任务提交模块提交软件源代码;
任务提交模块将开发方提交的软件源代码发送给智能合约验证模块,判定软件源代码是否符合要求;
若不符合要求,则智能合约验证模块根据软件源代码不符合程度,降低对应开发方能力评分,将修改后的能力评分数值发送给区块链系统,并通过区块链账本进行开发方总体能力评分和本次任务评分的记录,存储至开发方历史评分账本;通过任务提交模块通知开发方进行软件源代码开发迭代并等待重新提交;
若符合要求,则述智能合约验证模块根据软件源代码开发迭代次数,提高对应开发方能力评分,将修改后的能力评分数值发送给所述区块链系统,并通过区块链账本进行开发方总体能力评分和本次任务评分的记录,存储至开发方历史评分账本;
智能合约验证模块将符合要求的软件源代码发送给区块链系统,并通过区块链账本进行软件原始权利拥有者和软件现有权利拥有者的记录,存储至用户货币及数字资产账本中的数字资产账本中;软件原始权利拥有者为开发方;现有软件现有权利拥有者为需求方;
区块链系统获取需求方历史任务账本中本次任务对应的应支付货币,从本次任务需求方的货币总数中扣除对应的货币数量,并在本次任务开发方的货币总数中增加对应的货币数量,通过区块链账本进行货币修改的记录,存储至用户货币及数字资产账本中用户货币账本中。
6.根据权利要求5所述的一种基于区块链的软件开发外包控制实现方法,其特征在于,所述任务提交模块将开发方提交的软件源代码发送给智能合约验证模块,判定软件源代码是否符合要求,具体包括:
智能合约验证模块通过区块链系统将软件源代码分发给所有参与软件开发外包最终软件质量评估的节点;
每个接收到软件源代码的验证节点通过区块链系统自动将软件编译并部署于软件运行沙箱;
验证节点将测试用例输入到待验证软件,并接收软件在当前环境下的测试用例所得出的实际结果;
验证节点通过是否符合预期的判定逻辑,自动比对预期输出与实际输出,得出测试用例通过率;比对需求方所提出的软件开发外包质量要求,若符合则在验证通过结果中进行签名,若不符合则不进行签名;
智能合约验证模块接收来自所有验证节点的验证通过结果,若签名数量在所有验证节点数量中的占比高于预期值,给出软件源代码符合要求的最终判定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110686228.0A CN113344535B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的软件开发外包控制系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110686228.0A CN113344535B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的软件开发外包控制系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113344535A true CN113344535A (zh) | 2021-09-03 |
CN113344535B CN113344535B (zh) | 2023-02-28 |
Family
ID=77477841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110686228.0A Active CN113344535B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的软件开发外包控制系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113344535B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115220707A (zh) * | 2022-06-21 | 2022-10-21 | 深圳市马博士网络科技有限公司 | 一种基于区块链的软件开发管理方法及系统 |
CN116185878A (zh) * | 2023-04-23 | 2023-05-30 | 深圳市一航网络信息技术有限公司 | 基于区块链技术的软件认证测试技术平台 |
GB2619324A (en) * | 2022-05-31 | 2023-12-06 | The Court Of Edinburgh Napier Univ | Software management system |
CN117952477A (zh) * | 2024-02-23 | 2024-04-30 | 寰讯科技(深圳)有限公司 | 基于软件成熟度的离岸技术服务方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180247258A1 (en) * | 2017-02-28 | 2018-08-30 | Dais Technology, Inc. | Operating system for on-demand economy |
CN108923932A (zh) * | 2018-07-10 | 2018-11-30 | 东北大学 | 一种去中心化协同验证模型及验证算法 |
CN109146413A (zh) * | 2018-08-02 | 2019-01-04 | 珠海宏桥高科技有限公司 | 一种基于区块链的智能合约的构建方法 |
CN109783372A (zh) * | 2018-12-26 | 2019-05-21 | 中链科技有限公司 | 基于区块链的软件测试方法、装置、电子设备及存储介质 |
CN109829296A (zh) * | 2019-01-29 | 2019-05-31 | 中化能源科技有限公司 | 基于联盟链的智能合约的沙箱实现方法 |
CN110517020A (zh) * | 2019-08-27 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 基于区块链网络的项目开发方法及区块链网络的节点 |
CN112035889A (zh) * | 2020-09-03 | 2020-12-04 | 平安壹钱包电子商务有限公司 | 计算外包的区块链隐私验证方法、装置及计算机设备 |
CN112100232A (zh) * | 2020-07-27 | 2020-12-18 | 深圳东方大唐信息技术有限公司 | 基于区块链联盟链的科技外包管理系统 |
CN112507387A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的分布式数据和模型的计算方法及装置 |
-
2021
- 2021-06-21 CN CN202110686228.0A patent/CN113344535B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180247258A1 (en) * | 2017-02-28 | 2018-08-30 | Dais Technology, Inc. | Operating system for on-demand economy |
CN108923932A (zh) * | 2018-07-10 | 2018-11-30 | 东北大学 | 一种去中心化协同验证模型及验证算法 |
CN109146413A (zh) * | 2018-08-02 | 2019-01-04 | 珠海宏桥高科技有限公司 | 一种基于区块链的智能合约的构建方法 |
CN109783372A (zh) * | 2018-12-26 | 2019-05-21 | 中链科技有限公司 | 基于区块链的软件测试方法、装置、电子设备及存储介质 |
CN109829296A (zh) * | 2019-01-29 | 2019-05-31 | 中化能源科技有限公司 | 基于联盟链的智能合约的沙箱实现方法 |
CN110517020A (zh) * | 2019-08-27 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 基于区块链网络的项目开发方法及区块链网络的节点 |
CN112100232A (zh) * | 2020-07-27 | 2020-12-18 | 深圳东方大唐信息技术有限公司 | 基于区块链联盟链的科技外包管理系统 |
CN112035889A (zh) * | 2020-09-03 | 2020-12-04 | 平安壹钱包电子商务有限公司 | 计算外包的区块链隐私验证方法、装置及计算机设备 |
CN112507387A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的分布式数据和模型的计算方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2619324A (en) * | 2022-05-31 | 2023-12-06 | The Court Of Edinburgh Napier Univ | Software management system |
WO2023233146A1 (en) * | 2022-05-31 | 2023-12-07 | The Court Of Edinburgh Napier University | Software management system |
CN115220707A (zh) * | 2022-06-21 | 2022-10-21 | 深圳市马博士网络科技有限公司 | 一种基于区块链的软件开发管理方法及系统 |
CN115220707B (zh) * | 2022-06-21 | 2023-02-28 | 深圳市马博士网络科技有限公司 | 一种基于区块链的软件开发管理方法及系统 |
CN116185878A (zh) * | 2023-04-23 | 2023-05-30 | 深圳市一航网络信息技术有限公司 | 基于区块链技术的软件认证测试技术平台 |
CN117952477A (zh) * | 2024-02-23 | 2024-04-30 | 寰讯科技(深圳)有限公司 | 基于软件成熟度的离岸技术服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113344535B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113344535B (zh) | 一种基于区块链的软件开发外包控制系统及实现方法 | |
US20230254168A1 (en) | System and method for controlling asset-related actions via a block chain | |
Pasdar et al. | Connect API with blockchain: A survey on blockchain oracle implementation | |
Wright et al. | Sustainable blockchain-enabled services: Smart contracts | |
Debe et al. | Monetization of services provided by public fog nodes using blockchain and smart contracts | |
CN110443701A (zh) | 一种通证管理方法、供应链金融系统以及电子设备 | |
CN110458700A (zh) | 一种通证生成方法、供应链金融系统以及电子设备 | |
Dzobo et al. | Proposed framework for blockchain technology in a decentralised energy network | |
KR102206026B1 (ko) | 블록체인 기반의 작업 요청 및 결과물의 거래 방법 및 시스템 | |
CN110599348B (zh) | 股权激励的方法、装置、设备及存储介质 | |
CN112200567A (zh) | 基于区块链的资源管理方法、装置及电子设备 | |
Evermann et al. | Workflow management on proof-of-work blockchains: Implications and recommendations | |
CN116643722A (zh) | 一种开放式协同软件开发平台 | |
CN112200570A (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
Haarmann | Estimating the Duration of Blockchain-Based Business Processes Using Simulation. | |
Gourisetti et al. | Blockchain smart contracts for transactive energy systems | |
Kramer et al. | A blockchain-based micro economy platform for distributed infrastructure initiatives | |
Boerger et al. | Enabling short-term energy flexibility markets through blockchain | |
Cai et al. | Advanced Blockchain Technology: Frameworks and Enterprise-Level Practices | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 | |
Zumkeller | Using Smart Contracts for Digital Services: A Feasibility Study Based on Service Level Agreements | |
Xu et al. | Existing Blockchain Platforms | |
Kleebinder | Time-travelling State Machines for Verifiable BPM | |
CN113259131B (zh) | 区块链节点、系统和区块链构建方法 | |
KR20200095201A (ko) | 정부 지원금 관리 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |