CN107103419A - 一种群体软件开发过程仿真系统及方法 - Google Patents
一种群体软件开发过程仿真系统及方法 Download PDFInfo
- Publication number
- CN107103419A CN107103419A CN201710259988.7A CN201710259988A CN107103419A CN 107103419 A CN107103419 A CN 107103419A CN 201710259988 A CN201710259988 A CN 201710259988A CN 107103419 A CN107103419 A CN 107103419A
- Authority
- CN
- China
- Prior art keywords
- player
- competition
- match
- contestant
- project
- 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.)
- Pending
Links
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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
-
- 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
- G06Q10/06395—Quality analysis 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
- G06Q10/06398—Performance of employee with respect to a job function
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种群体软件开发过程仿真系统,包括:参赛选手自主决策模块、参赛选手能力评价模块和群体软件项目质量评估模块;建立参赛者自主决策机制,开发群体软件过程辅助仿真工具,帮助项目管理人员进行项目决策和管理,避免资源的浪费,提升群体软件项目完成质量,真正发挥出群体软件开发方法在解决大规模复杂系统时的优势,减少投资成本,以提高群体软件项目完成质量。
Description
技术领域
本发明涉及一种群体软件开发过程仿真系统及方法,属于计算机软件与理论技术领域。
背景技术
随着软件技术的迅猛发展,软件系统的规模日趋庞大、系统结构日益复杂,从时间上讲,大规模复杂系统的开发、部署以及维护的过程相当漫长,而且日趋艰难,从空间上讲,由于其在构造方面的结构复杂性,决定了在程序、数据、人员以及经济等方面持续不断的需求。海量规模的数据服务于广泛的利益相关者,超大规模的运算作业要求系统必须部署在较大数量的机群上,对异构性和分散度提出了更高水平的要求。而群体软件开发方法的出现为构建大规模复杂系统提供了解决方案。大规模复杂系统本身就是一个完整的群体软件开发项目,项目管理人员将项目拆分成若干不同类型的模块,每个模块可视为一场比赛,按照先后次序发布到互联网上,网民以自愿的方式选择是否参与比赛,并获得奖励,这是群体软件开发的核心机制。互联网上广泛的网民既是开发人员,也是比赛的参赛选手。较传统方法,群体软件开发方法以短时间、低成本、高效率的特点得到业内人士的广泛推崇。它的出现使得项目管理者不必局限于特定的开发团队,也不必受限于特定的地理资源,同时,这种新型的开发方法创造了一种新的就业途径,人力资源的潜能得到了更加充分的利用,有利于技术资源的有效发挥。
对于群体软件开发方法,理论方面尚未形成完整的理论研究框架,缺乏统一的标准,导致无法评估群体软件开发项目的完成质量,也无法与其他方法开发出的软件制品进行比较;实践方面,项目管理人员仅仅根据历史经验发布项目,带有很大的盲目性,缺少有效的过程工具辅助管理人员对软件项目进行规划。很多知名企业和机构都尝试过将软件项目或者开发模块发布到群体社区,运用群体智慧找到软件产品的解决方案,然而,由于缺乏统一的评价标准和系统的结构方法,发布者和管理人员无法对完成的软件项目进行客观地评价,往往采取事后补救的方法解决开发时遗留的问题,导致后期不必要的资金投入和时间上的开销,同时由于开发人员的不确定性,后期的修补工作会影响软件系统的延展性和实用性。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种群体软件开发过程仿真系统及方法,作为群体软件生产模拟平台,通过设定环境参数,辅助项目管理人员进行项目决策,减少投资成本,以提高软件项目质量。
本发明技术解决方案:一种群体软件开发过程仿真系统,包括:
参赛选手自主决策模块:每一位参赛选手都有自身的内在属性,通过历史参赛记录确定选手当前的状态,根据选手的类型确定选手的行为模式,当比赛发布后,收集所有参加该比赛选手的信息,利用参赛选手能力评价模块得到选手的获胜概率,选手根据当前状况决定是否参赛,最终的比赛结果又会影响选手的状态。此模块的输入是比赛类型、奖金和难度,以及选手类型、参赛记录、当前比赛的获胜概率,输出是选手的参赛决策,此结果作为软件项目质量评估模块的输入,每场比赛的结果最终会影响整个软件项目的质量。
群体软件项目质量评估模块:利用比赛的基本信息得到比赛难度,结合比赛难度与比赛中出现的最高得分,依次评估单场比赛、单个开发阶段和整个软件项目的完成质量,建立完整的群体软件质量评估体系,结合项目整体的信息对参赛选手的比赛得分进行预测,完善质量评估模型。此模块的输入包括软件项目下比赛的基本信息及参赛选手的信息,输出是整个软件项目的完成质量,每场比赛的赛后结果作为参数输入到参赛选手能力评价模块中,用以更新选手的能力值。项目管理人员通过分析软件项目的完成质量,进行项目决策。
参赛选手能力评价模块:参赛选手每参赛一次,其能力值和稳定性参数就会被更新。根据选手的能力值、稳定性参数及比赛中对手的能力值,可以得出竞争因子和相对获胜概率,再经过一系列运算,最终计算出参赛选手新的能力值和稳定性参数,此过程用于仿真系统中更新参赛选手能力的模块。此模块的输入是参赛选手当前的能力值、稳定性参数,当前比赛中其他选手的能力值及各个选手的实际排名,利用相对获胜概率可以得到选手在比赛中的获胜概率,将获胜概率作为该模块的输出,输入到参赛选手自主决策模块中。
所述参赛选手自主决策模块实现过程:
(1)定义选手参赛时的状态,分别为非常空闲、空闲、一般、忙碌和非常忙碌,通过对所有参赛选手的参赛信息进行分析,利用马尔科夫模型得到每位参赛选手的行为模式,找到具有相似参赛行为的参赛选手,集合为一类,聚类中心的状态转移矩阵和观测概率矩阵表示该类型选手的参赛行为模式,根据每位参赛选手的历史参赛行为,运行维特比算法得到当前状态;
(2)对于每个类型的选手,计算他们处于各个状态下,参加不同类型、不同难度比赛期望收益的均值和标准差,进而得到选手在参赛时的最小期望收益和最大期望收益,针对特定的比赛,当期望收益处于该范围内时,选手参加比赛,反之,放弃参加;
(3)项目管理人员发布比赛后,通过比赛奖金和选手获胜概率得到选手参加该场比赛的期望收益,进而判断选手的是否参与比赛。
所述群体软件项目质量评估模块实现过程:
(1)项目管理人员发布比赛的时候,根据比赛的奖金和、说明文档长度、说明文档内链接数、技术种类和比赛持续时间,利用高斯混合模型生成比赛难度;
(2)选手决定参赛后,将比赛的信息包括比赛类型、奖金、难度、持续时间和参赛选手信息包括选手能力、对手能力和先前阶段完成质量输入到多元线性回归模型中,计算出参赛选手的得分;
(3)从参赛的所有选手中选出最高分,作为该模块的最终解决方案,结合比赛难度得到单场比赛的完成质量,比赛难度与最高得分的系数通过赛后发布的Bug Hunt比赛确定。软件开发的每个阶段有若干场比赛组成,当该阶段的比赛全部结束时,通过每场比赛的完成质量得到阶段的完成质量,进而得到整个软件项目的完成质量。
所述参赛选手能力评价模块实现过程如下:
(1)在选手没有任何参赛记录的时候,被暂时分配一个随机数作为初始能力值,稳定项参数默认值是340;
(2)根据比赛中的参赛人数及其他选手的能力值计算该选手的竞争因子。对参赛选手进行两两比较,得到每两位参赛选手之间的相对获胜概率,通过相对获胜概率得到选手的期望名次,通过期望名次可以得到相对期望实力,根据选手在比赛中的实际名次,计算产生相对真实实力;
(3)结合选手的当前的能力值、竞争因子、相对期望实力、相对真实实力,得到选手的绝对真实实力,同时利用选手的历史参赛次数得到选手的能力值更新权重。利用当前选手的能力值、更新权重及绝对真实实力生成新的能力值和稳定性参数;
(4)针对同一场比赛中的参赛选手,汇总其相对于其他选手的获胜概率进而得到该选手在本场比赛中的获胜概率,这一概率值将用于参赛选手的决策行为中。
一种群体软件开发过程仿真系统的具体步骤如下:
(1)系统根据选手的参赛记录预置选手的能力值、稳定性参数、状态,通过对每一位选手行为模式进行聚类,得到选手类型用于能力评价模块,同时项目管理人员设置软件项目下每场比赛的类型、奖金、说明文档、技术种类要求、发布时间、持续时间,系统会根据项目每场比赛的信息得到整个项目的奖金总额、比赛总数、开始时间和结束时间,项目管理人员通过观察项目整体的信息,对项目下的比赛进行调整;
(2)当比赛的发布日期到来时,系统发布比赛,调用选手自主决策模块,参赛选手根据比赛类型、难度、奖金和自身状态,结合比赛奖金和获胜概率得到期望收益,进而决定是否参赛;
(3)系统调用群体软件质量评估模块,首先利用比赛的奖金和、说明文档长度、说明文档内链接数、技术种类和持续时间,得到每场比赛的难度。当选手选择参与比赛时,结合选手的能力值、对手的能力值及项目先前阶段的完成质量得到选手的得分;
(4)在比赛结束后,根据比赛的最终结果,给相应的选手颁布奖金,将赛后选手的真实排名传递到能力评价模块,更新所有参与比赛选手的能力值和稳定性参数,选取比赛中的最高得分与比赛难度相结合,得到单场比赛的完成质量;
(5)当项目中的比赛全部结束时,计算出整个软件项目的完成质量。项目管理人员通过观察和分析实验结果,调整项目计划,达到减少项目成本,提升项目质量的目标。
本发明与现有技术相比的优点在于:
(1)定义选手状态作为隐藏变量,在不同状态下采取不同的参赛决策,精细地描述选手的自主决策过程,选手状态反映其自身内部条件,又受到比赛结果的影响,可以更准确地解释选手的参赛行为,更有效地做出预测,达到还原真实场景的目的;
(2)将所有选手根据其参赛行为进行分类,不同类型的参赛选手行为模式差异明显,同一类内部的选手具有相似的参赛行为。对每一位选手的参赛行为进行建模并且逐一生成的方法不仅计算量大,迭代过程难以收敛,而且极易使仿真过程受个体因素的影响,影响仿真整体效果。本发明对具有相似参赛行为的同一类型选手进行分析,缩小了模型的规模,减少了运算量,同时避免了个体主观因素对仿真实验的影响,有利于得到更为普遍的结论用于指导和辅助管理人员决策。
(3)原始数据没有直接给出比赛难度,而比赛难度对于项目质量评估工作有举足轻重的意义。本发明根据比赛的基本信息,利用高斯混合模型计算产生相应的难度值。由于难度值未知,意味着没有训练样本数据,不可能通过监督学习的方法建立回归模型,只能从非监督学习的角度出发,而高斯混合模型作为聚类算法的一种实现,非常适合用于此类情况,且在样本容量较大时,高斯混合模型模型可以更快地收敛;比赛难度呈现连续分布而非离散分布,将其完全划分到某一聚类中心对应的难度等级是不合理的,而应当考虑样本与所有聚类中心之间的关系,这一点可以通过高斯混合模型的软分类实现。利用比赛的最高分、平均分及通过注册比对难度定义进行验证,此三项指标应与难度呈现负相关性,与利用传统K-means算法得到难度的方法进行比较如下表2,可以看出使用高斯混合模型的分类效果更好;
表2不同聚类算法计算难度值的相关性验证比较
(4)在对参赛选手得分进行预测时,现有的技术没有分析比赛类型、难度、对手能力以及先前阶段比赛的平均得分,本发明对不同类型的比赛分别讨论,同时考虑了比赛难度、对手能力以及先前阶段比赛的平均得分对选手得分的影响,与现有技术的比较如下表3,可以看到本发明的回归效果更好;
表3本发明与现有技术模型的回归效果比较
(5)软件质量的好坏取决于软件制品中defect的数量和规模,现有技术很难直接得到群体软件开发项目中defect信息,而项目管理人员会发布Bug Hunt比赛寻找项目中的defect,因此该类型比赛的规模直接反映了群体软件项目的完成质量。另外,现有的技术仅仅利用比赛中的最高分描述比赛的完成质量,一方面,比赛只是软件项目下某一阶段的子模块,对单场比赛的质量评估并不能从宏观上分析整个项目的完成质量,管理人员仍然无法对项目整体做出规划,另一方面,单场比赛的最高成绩受参赛选手的能力及其他因素的影响,仅仅用比赛中出现的最高分衡量比赛的完成质量带有很大的主观性。本发明采用最高分与难度相结合的方法,通过赛后Bug Hunt比赛的信息得到两者的系数,更加可靠,通过难度值加成的方法也广泛应用于锦标赛式的竞争活动中,充分证明了其合理性;从单场比赛完成质量到开发阶段完成质量,再到项目整体完成质量,按照此顺序评估软件质量符合软件开发过程的一般逻辑,同时每个阶段独立评估质量,有利于管理人员对项目进程做出及时调整,有效避免资金的浪费,提升整体完成质量。现有技术采用求取每场比赛最高得分的平均值得到项目的质量,将现有技术与本发明所使用方法得到的质量与Bug Hunt比赛的奖金和、持续时间、说明文档长度三项指标做相关性分析如下表4,可以看出,项目质量与Bug Hunt比赛三项指标的相关性更为明显,本发明使用的方法更能如实反映项目的完成质量。
表4本发明与现有的质量评估方法相关性比较
(6)在更新选手的能力时,考虑选手历史参赛次数,参赛次数较少的选手有较大的更新权重,有利于快速趋近选手的真实能力水平,而在选手多次参加的比赛后,其更新权重会减小,使选手的能力趋于稳定,从而大大减弱了失误或者超水平发挥等意外情况对选手能力评价的影响,这样得到的能力值更为客观,且更具有参考价值;
(7)设置稳定性参数用于反映选手能力发挥的波动情况,更精确地描述选手在比赛中的表现,稳定性参数直接作用于竞争因子和相对获胜概率,进而考虑选手真实情况与期望结果的偏差,从而计算选手在比赛中的真实实力,更符合逻辑,也更切合实际情况。
附图说明
图1为本发明的组成框图;
图2为图1中参赛选手自主决策模块的实现流程图;
图3为图1中群体软件项目质量评估模块的实现流程图;
图4为图1中参赛选手能力评价模块流程图。
具体实施方式
如图1所示,本发明包括参赛选手自主决策模块、群体软件项目质量评估模块、参赛选手能力评价模块。
如图2所示,本发明中参赛选手自主决策模块具体实现如下:
(1)从参赛选手的历史数据来看,参赛者主要关注某一种类型或者几种类型的比赛,对其他的类型则不甚关心。针对每一位参赛选手,提取其感兴趣的比赛类型,将这些类型下的所有比赛按照开始时间的先后顺序排序,标记参赛者参加过的比赛,得到参赛者的参赛记录。选手是否参加比赛跟自身状态有密切关系,定义选手的状态作为支配其参赛行为的隐藏变量。当选手空闲时,有充分的精力和时间参与比赛,而在选手忙碌的情况下,空余的精力和时间相对较少。定义状态集合为Q={非常空闲,空闲,一般,忙碌,非常忙碌},R=5,选手参与比赛的观测集合定义为V={参加,缺席},M=2;
(2)I是长度为T的状态序列,由i1~iT组成,O是对应的观测序列,由o1~oT组成,P用于表示状态或者观测的概率,
I={i1,i2,i3,…,iT},O={o1,o2,o3,…,oT}
式中:it是选手在t时刻的状态,ot是t时刻观测到选手的行为,1≤t≤T。
A是由aij构成的状态转移矩阵,aij表示在时刻t处于状态it,并在时刻t+1处于状态it+1的概率:
A=[αij]R×R
式中:aij=P(it+1|it),i=1,2,…,R;j=1,2,…,R且
B是由bj(k)构成的观测概率矩阵,bj(k)表示在时刻t处于状态it的条件下,生成观测ot的概率:
B=[bj(k)]R×M
式中:bj(k)=P(ot|it),k=1,2,…,M;j=1,2,…,R且
π是由πi构成的初始状态概率向量,πi表示在时刻t=1处于状态i1的概率:
π=(πi)
式中:πi=P(i1),i=1,2,…,R且
(3)更新参数A,B,π;
式中:λ是A,B,π的集合,表示整个模型,记是对λ的估计值,是在估计下产生观测序列O的条件概率,是在估计下初始状态为i的概率,是在估计下t时刻处于状态i,t+1时刻处于状态j的概率,是在估计下t时刻处于状态i的概率,是在估计下t时刻处于状态j的概率,I(ot)是在t时刻生成观测ot的概率,1≤t≤T;
(4)重复执行(3),直至不再变化,将每一位参赛选手的状态转移矩阵和观测概率矩阵作为一个样本x,选取Nc个初始聚类中心设置阈值:K是预期聚类中心数,θN是每一类的样本数目下限,θS是类中样本的标准差上限,θc是聚类中心间的最小距离,L是迭代中合并操作的最大次数,W是迭代次数的上限;
(5)将所有样本分配给最近的类,记作Sj,设表示x到Sj的距离最小,则x∈Sj;
(6)如果Sj中的样本数|Sj|<θN,则删除该类,Nc减1;
(7)修正各聚类中心,j=1,2,…,Nc,Nj是第j类的样本数量;
(8)计算每个类中样本与聚类中心的平均距离;
(9)计算全部样本的总平均距离
(10)分裂与合并,若迭代次数超过I,令θc=0,转至(11),若转至(8),若迭代次数为偶数或者Nc>2K,转至(11),否则转至(8);
(11)计算每个类中样本距离的标准差,σj=(σ1j,σ2j,…σnj)T;
(12)计算每个标准差中的最大分量σjmax=max{σj,j=1,2,…Nc};
(13)在任一最大分量集合中,同时满足:
则将该类分解为两个类,重新计算各自聚类中心,转至(2),否则继续;
(14)计算全部聚类中心的距离,Dij=||zi-zj||,i=1,2,…Nc-1,j=1,2,…Nc。将Dij按距离递增排列;
(15)将距离为Dij且Dij<θc的聚类中心Zi和Zj合并,得到新的聚类中心,标记为第i类,
式中:Nj是第j类的样本数量;
(16)若为最后一次迭代,转至(17),否则转至(5);
(17)用聚类中心点的状态转移矩阵和观测概率矩阵表示该类型参赛选手的行为模式;
(18)对具有相同行为模式的参赛选手,分别计算他们在不同状态时,参加不同类型、不同难度比赛时的期望收益,选手i参加比赛j的期望收益Gij为:
Gij=WP′iwj
式中:WP′i是选手参赛的获胜概率,wj是比赛j的奖金和;
(19)计算Gij的均值和方差,得到关于期望收益的取值区间,当比赛对于参赛选手的期望收益在区间内时,选手选择参加比赛,反之放弃比赛。
如图3所示,本发明中群体软件项目质量评估模块具体实现如下:
利用比赛奖金和、说明文档长度、说明文档内链接数、技术种类和比赛持续时间五个指标来定义比赛难度,这些指标均与难度呈现正相关,例如可以认为开发时间越长的比赛,其难度也越大,构造高斯混合模型,生成比赛难度。
(1)对每场比赛的各项数据做零均值标准化处理,M是高斯模型的个数,N是比赛总数,N(uj,Cj)表示以uj为均值,Cj为方差的高斯函数,1≤j≤M;
(2)协方差矩阵Cj设为单位矩阵,每个模型比例的权重αj=1/M,均值uj设为随机数;
(3)令βij代表样本i属于第j个高斯模型的概率;
式中:Nj(xi;uj,Cj)是样本xi在高斯函数N(uj,Cj)中的分布概率;
(4)更新每个模型的权重α、均值向量u、协方差矩阵C;
(5)不断迭代步骤(3)、(4),直到每个模型的权重、均值向量、协方差矩阵不再变化;
(6)将每个模型中均值向量的各属性值相加求和,并依据和的数值大小进行排序,确定每个高斯模型的难度等级,规定和最小的u所在的高斯模型难度等级为1,次小的难度等级为2,以此类推,和最大的高斯模型难度等级为5;
(7)结合高斯混合模型软分类的性质,得到比赛难度,
式中:Ej是比赛j的难度值,βij是比赛j由第i个高斯模型生成的概率,Ei是第i个高斯模型对应的难度等级;
(8)选取比赛类型、奖金和、难度、持续时间及选手能力、对手能力和先前阶段的比赛平均分建立回归模型如下表,利用此回归模型预测选手得分;
表1各阶段选手得分预测回归模型
附注1:**表示0.01水平上显著相关,*表示0.05水平上显著相关,-----表示空值。
(9)单场比赛的完成质量定义为:
Qc=x*Sc+y*Ec,α>0
式中:Qc是比赛的完成质量,Sc是比赛中的最高得分,Ec是比赛难度,
x和y为系数,通常x=0.86,y=2.8,满足:
(10)通过设置γ值,得出软件项目的完成质量,对软件质量和该项目下Bug Hunt比赛的奖金做Pearson相关性分析。每设置一次γ的值,都对应一个相关系数,设为λ,把γ作为自变量,λ作为因变量,通过多次实验绘制若干散点。运用二次曲线拟合函数以表示γ与λ之间的映射关系,设二次曲线的函数表达形式为λ=aγ2+bγ+c(a≠0),给定模型:
λ=f(γ,β)
式中:β为待定系数a、b、c的集合;
(11)更新β:
式中:Jf是f(γ,β)对β的雅可比矩阵;
(12)迭代执行(13),直到a、b、c的取值不再变化,取二次曲线在极小值点处取值作为γ的取值;
(13)将软件质量与Bug Hunt比赛的文档长度、持续时间做同样处理,分别得到二次曲线在极小值处的γ取值,最终γ取为三项指标对应γ的平均数;
(14)各阶段完成质量为:
式中:QP是特定阶段的完成质量,此阶段一共包含n场比赛,Qi是该阶段内比赛i的完成质量;
(15)整个软件项目完成质量为:
式中:QProject是整个软件项目的完成质量,项目分为m个阶段,Qpj是第j个阶段的完成质量,wpj是第j个阶段所有比赛的奖金总额。
如图4所示,本发明中参赛选手能力评价模块具体实现如下:
评估选手能力的初始参数见下表,
表5评估选手能力的主要参数
因素 | 描述 |
OldRating | 选手参加上同类型的上场比赛时的能力值 |
Volatility | 选手表现的稳定性参数 |
Count | 选手参赛次数 |
(1)在选手没有任何参赛记录的时候,被暂时分配一个能力值作为初始值,计算平均能力值,
式中:n是比赛的参赛人数,Ratingi是选手i的能力值;
(2)计算竞赛因子,
式中:Volatilityi是选手i的稳定性参数;
(3)参赛选手i相对于参赛选手j的竞争力为:
误差函数erf有如下形式:
(4)选手i在比赛中的期望名次为
(5)选手i的相对期望实力为
式中:Φ是标准正态分布的逆函数。
(6)选手i的相对真实实力为
式中:ARanki是选手i在比赛中的真实名次,如果两位选手打成平手,名次取平均值;(7)选手i的绝对真实实力为:
PerfAsi=OldRatingi+CFi*(APerfi-EPerfi)
(8)本次比赛对参赛选手能力值的更新权重为:
式中:Counti是选手i的参赛次数;
(9)更新选手i的能力值:
(10)更新选手i的稳定性参数:
(11)在某一场比赛中,选手i相对于所有其他参赛选手的获胜概率为:
对所有选手的获胜概率做归一化处理,选手在比赛中的获胜概率WP′i计算如下:
总之,利用群体软件开发方法解决大规模复杂系统所带来的软件危机,本发明提出完整的群体软件质量评估方法,建立参赛者自主决策机制,开发群体软件过程辅助仿真工具,帮助项目管理人员进行项目决策和管理,避免资源的浪费,提升群体软件项目完成质量,真正发挥出群体软件开发方法在解决大规模复杂系统时的优势,减少投资成本,以提高群体软件项目完成质量。
Claims (5)
1.一种群体软件开发过程仿真系统,其特征在于包括:参赛选手自主决策模块、参赛选手能力评价模块和群体软件项目质量评估模块;其中:
参赛选手自主决策模块:定义选手参赛时的隐状态,此状态决定选手是否参与比赛;根据选手的历史参赛信息,得到选手感兴趣的比赛类型,同时得到选手对感兴趣类型比赛的参赛记录,通过选手的参赛记录及定义的状态,得到选手在不同状态之间的转移概率和在不同状态下参赛概率;通过这两个概率得到选手的当前状态,再对具有相似转移概率和参赛概率的参赛选手进行聚类,找到具有相同参赛行为的选手在不同状态时,参加不同类型、不同难度比赛时的期望收益,结合选手当前状态,将选手的期望收益与发布比赛的收益比较,如果比赛对于选手的收益在期望范围内,则选择参加比赛,否则,放弃参加比赛,最后输出选手的参赛决策;
参赛选手能力评价模块:初始状态时,选手被随机分配一个能力值,当选手参赛时,根据比赛中的参赛人数及其他选手的能力值计算该选手的竞争因子;对参赛选手进行两两比较,得到每两位参赛选手之间的相对获胜概率,针对同一场比赛中的参赛选手,汇总该选手相对于其他选手的获胜概率进而得到该选手在本场比赛中的获胜概率,这一概率值将用于参赛选手的决策行为中,通过相对获胜概率得到选手的期望名次,通过期望名次可以得到相对期望实力,根据群体软件项目质量评估模块的结果得到选手在比赛中的实际名次,计算产生相对真实实力;结合选手当前的能力值、竞争因子、相对期望实力、相对真实实力,得到选手的绝对真实实力,同时利用选手的历史参赛次数得到选手的能力值更新权重,利用当前选手的能力值、更新权重及绝对真实实力生成新的能力值和稳定性参数,新的能力值作为最终结果输出;
群体软件项目质量评估模块:通过比赛的奖金和、说明文档长度、说明文档内链接数、技术种类和比赛持续时间得到比赛难度。根据参赛选手自主决策模块的输出确定选手是否参赛,当选手选择参加比赛时,通过参赛选手能力评价模块得到的能力值,并结合比赛类型、奖金、难度、持续时间、对手能力和先前阶段完成质量,计算选手的得分,从中选出最高分,作为该模块的最终解决方案,结合比赛难度得到单场比赛的完成质量,比赛难度与最高得分的系数通过赛后发布的Bug Hunt比赛确定;软件开发的每个阶段有若干场比赛组成,当该阶段的比赛全部结束时,通过每场比赛的完成质量得到阶段的完成质量,最终得到整个软件项目的完成质量和比赛结果作为该模块的输出到参赛选手能力评价模块用于更新选手的能力值。
2.根据权利要求1所述的群体软件开发过程仿真系统,其特征在于:所述参赛选手自主决策模块实现过程:
(1)定义选手参赛时的状态,分别为非常空闲、空闲、一般、忙碌和非常忙碌,选手的状态影响参赛决策;通过对选手的参赛信息进行整理,得到选手感兴趣的参赛类型,通过列举所有该类型的比赛,结合选手的历史信息,得到选手参加该比赛的参赛记录,利用马尔科夫模型得到每位参赛选手的行为模式,即参赛选手在不同状态之间的转移概率及在不同状态下的参赛概率;
(2)根据状态转移概率和每种状态下的参赛概率找到具有相似参赛行为的选手,聚合为一类,聚类中心的状态转移矩阵和观测概率矩阵表示该类型选手的参赛行为模式,根据每位参赛选手的历史参赛行为,运行维特比算法得到当前状态;
(3)对于每个类型的选手,计算他们处于各个状态下,参加不同类型、不同难度比赛期望收益的均值和标准差,进而得到选手在参赛时的最小期望收益和最大期望收益,针对特定的比赛,当期望收益处于该范围内时,选手参加比赛,反之,放弃参加。
3.根据权利要求1所述的群体软件开发过程仿真系统,其特征在于:所述参赛选手能力评价模块实现过程如下:
(1)在选手没有任何参赛记录的时候,被暂时分配一个随机数作为初始能力值,稳定性参数默认值是340;
(2)根据比赛中的参赛人数及其他选手的能力值计算该选手的竞争因子。对参赛选手进行两两比较,得到每两位参赛选手之间的相对获胜概率,通过相对获胜概率得到选手的期望名次,针对同一场比赛中的参赛选手,汇总该选手相对于其他选手的获胜概率进而得到该选手在本场比赛中的获胜概率,这一概率值将用于参赛选手的决策行为中;
(3)通过期望名次可以得到相对期望实力,根据选手在比赛中的实际名次,计算产生相对真实实力,结合选手的当前的能力值、竞争因子、相对期望实力、相对真实实力,得到选手的绝对真实实力,同时利用选手的历史参赛次数得到选手的能力值更新权重,利用当前选手的能力值、更新权重及绝对真实实力生成新的能力值和稳定性参数。
4.根据权利要求1所述的群体软件开发过程仿真系统,其特征在于:所述群体软件项目质量评估模块实现过程:
(1)根据比赛的奖金和、说明文档长度、说明文档内链接数、技术种类和比赛持续时间,利用高斯混合模型计算比赛的难度;
(2)根据参赛选手自主决策模块的输出确定选手是否参赛,选手决定参赛后,通过参赛选手能力评价模块得到的能力值,将比赛的信息包括比赛类型、奖金、难度、持续时间和参赛选手信息包括选手能力、对手能力和先前阶段完成质量输入到多元线性回归模型中,计算出参赛选手的得分;
(3)从参赛的所有选手中选出最高分,作为该模块的最终解决方案,结合比赛难度得到单场比赛的完成质量,比赛难度与最高得分的系数通过赛后发布的Bug Hunt比赛确定;软件开发的每个阶段有若干场比赛组成,当该阶段的比赛全部结束时,通过每场比赛的完成质量得到阶段的完成质量,进而得到整个软件项目的完成质量,同时输出比赛的结果用于下一次更新选手的能力值。
5.一种群体软件开发过程仿真方法,其步骤如下:
(1)根据选手的参赛记录预置选手的能力值、稳定性参数、状态,通过对每一位选手行为模式进行聚类,得到选手类型用于能力评价模块,同时项目管理人员设置软件项目下每场比赛的类型、奖金、说明文档、技术种类要求、发布时间、持续时间,系统会根据项目每场比赛的信息得到整个项目的奖金总额、比赛总数、开始时间和结束时间,项目管理人员通过观察项目整体的信息,对项目下的比赛进行调整;
(2)当比赛的发布日期到来时,系统发布比赛,调用选手自主决策模块,参赛选手根据比赛类型、难度、奖金和自身状态,结合比赛奖金和获胜概率得到期望收益,进而决定是否参赛;
(3)调用群体软件质量评估模块,首先利用比赛的奖金和、说明文档长度、说明文档内链接数、技术种类和持续时间,得到每场比赛的难度;当选手选择参与比赛时,结合选手的能力值、对手的能力值及项目先前阶段的完成质量得到选手的得分;
(4)在比赛结束后,选取比赛中的最高得分与比赛难度相结合,得到单场比赛的完成质量,同时输出参赛选手的真实名次,用于更新选手的能力值和稳定性参数;
(5)当项目中的比赛全部结束时,计算出整个软件项目的完成质量,项目管理人员通过观察和分析实验结果,调整项目计划,达到减少项目成本,提升项目质量的目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710259988.7A CN107103419A (zh) | 2017-04-20 | 2017-04-20 | 一种群体软件开发过程仿真系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710259988.7A CN107103419A (zh) | 2017-04-20 | 2017-04-20 | 一种群体软件开发过程仿真系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107103419A true CN107103419A (zh) | 2017-08-29 |
Family
ID=59657133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710259988.7A Pending CN107103419A (zh) | 2017-04-20 | 2017-04-20 | 一种群体软件开发过程仿真系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107103419A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062783A (zh) * | 2018-07-02 | 2018-12-21 | 北京航空航天大学 | 一种面向TopCoder的群体软件质量的评价系统与方法 |
CN109447402A (zh) * | 2018-09-19 | 2019-03-08 | 语联网(武汉)信息技术有限公司 | 稿件基因的选取方法、装置与电子设备 |
WO2019056502A1 (zh) * | 2017-09-25 | 2019-03-28 | 平安科技(深圳)有限公司 | 综艺比赛结果预测方法、装置及存储介质 |
CN111932108A (zh) * | 2020-08-06 | 2020-11-13 | 北京航空航天大学杭州创新研究院 | 一种面向群体软件过程的开发人员推荐方法 |
CN112035337A (zh) * | 2020-05-29 | 2020-12-04 | 广州番禺职业技术学院 | 一种软件开发能力与测试能力分析方法及装置 |
CN113792187A (zh) * | 2021-09-30 | 2021-12-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献质量评估方法、装置、设备及介质 |
-
2017
- 2017-04-20 CN CN201710259988.7A patent/CN107103419A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019056502A1 (zh) * | 2017-09-25 | 2019-03-28 | 平安科技(深圳)有限公司 | 综艺比赛结果预测方法、装置及存储介质 |
CN109062783A (zh) * | 2018-07-02 | 2018-12-21 | 北京航空航天大学 | 一种面向TopCoder的群体软件质量的评价系统与方法 |
CN109447402A (zh) * | 2018-09-19 | 2019-03-08 | 语联网(武汉)信息技术有限公司 | 稿件基因的选取方法、装置与电子设备 |
CN109447402B (zh) * | 2018-09-19 | 2022-02-22 | 语联网(武汉)信息技术有限公司 | 稿件基因的选取方法、装置与电子设备 |
CN112035337A (zh) * | 2020-05-29 | 2020-12-04 | 广州番禺职业技术学院 | 一种软件开发能力与测试能力分析方法及装置 |
CN111932108A (zh) * | 2020-08-06 | 2020-11-13 | 北京航空航天大学杭州创新研究院 | 一种面向群体软件过程的开发人员推荐方法 |
CN111932108B (zh) * | 2020-08-06 | 2022-07-19 | 北京航空航天大学杭州创新研究院 | 一种面向群体软件过程的开发人员推荐方法 |
CN113792187A (zh) * | 2021-09-30 | 2021-12-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献质量评估方法、装置、设备及介质 |
CN113792187B (zh) * | 2021-09-30 | 2024-05-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献质量评估方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103419A (zh) | 一种群体软件开发过程仿真系统及方法 | |
Perez-Nieves et al. | Modelling behavioural diversity for learning in open-ended games | |
Iamratanakul et al. | Project portfolio selection: From past to present | |
CN106971240A (zh) | 一种变量选择与高斯过程回归的短期负荷预测方法 | |
CN109872061A (zh) | 一种电网基建改进、提升决策方法 | |
CN107909262A (zh) | 一种众包代价复杂度的获取方法 | |
Keshtkar Langaroudi et al. | Sports result prediction based on machine learning and computational intelligence approaches: A survey | |
Ho et al. | A Bayesian level-k model in n-person games | |
CN111292124A (zh) | 一种基于优化组合神经网络的需水预测方法 | |
Więckowski et al. | Application of multi-criteria decision analysis to identify global and local importance weights of decision criteria | |
CN112818525A (zh) | 一种水电机组状态评价方法及其系统 | |
Haruvy et al. | Modeling and testing for heterogeneity in observed strategic behavior | |
Hervert-Escobar et al. | Prediction learning model for soccer matches outcomes | |
Chen et al. | A new method for fuzzy forecasting based on two-factors high-order fuzzy-trend logical relationship groups and particle swarm optimization techniques | |
Şimşek | Bounded rationality for artificial intelligence | |
Zhang et al. | A curriculum learning based multi-agent reinforcement learning method for realtime strategy game | |
Hervert-Escobar et al. | Bayesian based approach learning for outcome prediction of soccer matches | |
Zhao et al. | Prediction model of sports results base on knowledge discovery in data-base | |
Cinalli et al. | Integrating collective intelligence into evolutionary multi-objective algorithms: Interactive preferences | |
Xia et al. | Application of Optimized Fuzzy Decision Tree Algorithm in Sports Video Analysis | |
Su et al. | Machine learning based wordle difficulty analysis | |
Wang et al. | Use the combination of the decision tree and the artificial neural networks to predict the outcome of table tennis matches | |
Voloshin et al. | The System of Quality Prediction on the Basis of a Fuzzy Data and Psychografphy of the Experts | |
Harman et al. | Simple rules outperform Machine Learning in the 3rd annual SIOP ML competition. | |
Zhao | Research on Artificial Intelligence Assisted Decision Making System in Higher Level Sports Training |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170829 |