CN102254250A - 一种开源软件开发过程中开发者贡献度的度量方法 - Google Patents
一种开源软件开发过程中开发者贡献度的度量方法 Download PDFInfo
- Publication number
- CN102254250A CN102254250A CN2011101956451A CN201110195645A CN102254250A CN 102254250 A CN102254250 A CN 102254250A CN 2011101956451 A CN2011101956451 A CN 2011101956451A CN 201110195645 A CN201110195645 A CN 201110195645A CN 102254250 A CN102254250 A CN 102254250A
- Authority
- CN
- China
- Prior art keywords
- developer
- data
- degree
- contribution degree
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种开源软件开发过程中开发者贡献度的度量方法,它包括以下步骤:S11:选择开源项目,下载开源项目中的全部版本控制信息;S12:整理数据,建立数据表SvnInformation;S13:构建开发者网络;S14:计算开发者的度;S15:计算开发者的文件提交次数;S16:计算开发者的聚类系数;S17:计算开发者的贡献度。本发明为项目管理者提供了一个实用的管理方法,以网络为基础,能够对开发项目的状况,开发者的贡献程度进行积极有效的数字化管理。
Description
技术领域
本发明涉及互联网信息处理领域,特别是涉及一种利用网络信息综合评的方法。
背景技术
在开源环境下,开发者可能来自不同国家的不同组织,他们以各种方式参与到项目开发当中,其中既包括源代码的编写、变更与调试,也包括缺陷的报告和修订,项目管理者一般是通过项目管理工具(如SVN)来了解项目进度和开发者的开发状况,在软件项目开发过程中,如何对开发人员的贡献度进行度量一直是项目管理者所关注的问题。
社会网络是指社会个体成员之间因为互动而形成的相对稳定的关系体系,社会网络关注的是人们之间的互动和联系,社会互动会影响人们的社会行为。社会网络的直观形式是一组点、点与点之间的连线所构成的图形。社会网络分析方法是由社会学家根据数学方法﹑图论等发展起来的定量分析方法,近年来,该方法在互联网、软件开发等领域广泛应用,社会网络分析有度分析、聚集系数分析等常用方法。
开发者网络是从软件开发过程管理工具中所提取出来的能反映开发者之间关系的社会网络,它是通过将开发过程信息整理后,以统一格式存入数据库中,通过一定方式处理后,形成的以开发者为结点,若开发者共同提交过文件,则两个开发者之间存在边的一种社会网络图。按照图形理论,聚集系数是表示一个图形中节点聚集程度的系数,证据显示,在现实中的网络中,尤其是在特定的网络中,由于相对高密度连接点的关系,节点总是趋向于建立一组严密的组织关系。
最初的开发人员对项目贡献的度量方法是通过工作单元中的单词量来评价,在面向对象开发中,又以开发的类、函数以及构件等来度量开发者的贡献程度,这些度量方法主要是针对最终产品的度量,在项目未结束之前无法准确得到度量结果。
最初的开发人员对项目贡献的度量方法是通过工作单元中的单词量来评价,在面向对象开发中,又以开发的类、函数以及构件等来度量开发者的贡献程度,这些度量方法主要是针对最终产品的度量,在项目未结束之前无法准确得到度量结果。
针对以上问题,Gousios, G.等人在measuring developer contribution from software repository data 中提出了一种度量开发者的方法,该方法基于软件过程信息进行度量,但该方法不仅与项目进展的具体阶段有关,且与评价者的主观感受有关,基于该模型提出的评价方法极易造成评价的不准确。
参考文献
Measuring developer contribution from software repository data
Gousios, G., E. Kalliamvakou, and D. Spinellis
MSR '08: Proceedings of the 2008 international working conference on Mining software repositories。
发明内容
本发明要解决的问题是提供一种能有效评估开源软件中开发者贡献程度大小的方法,以克服现有方法中开发者的度量与开发进度和评价者主观印象相关而导致的度量不够准确的问题。
为达到上述目的,本发明提供一种基于开发过程信息,构建了软件开发者网络,并提出了开发者贡献度的综合评价方法,包括以下步骤
1、从开源软件项目网站中下载该项目的全部开发过程信息,具体包括开发者姓名、开发者提交的文件名、提交文件的时间、提交文件时该项目的版本号;
2、将上述开发过程信息整理后存入数据库;
3、在数据库中,通过如下步骤建立开发者网络图;
3.1、每个开发者是一个节点,节点名称为开发者姓名;
3.2、逐条检索数据库内容,如果发现某个开发者提交的文件另一个开发者也提交过,则这2个开发者之间画一条边,边的权值为1,如果这2个开发者同时修改了多个文件,则这2个开发者之间的边得权值为总共合作过的文件的个数;
3.3、重复上条,直至检索到数据库最后一条数据;
3.4、至此,开发者网络图形成;
4、通过数代表开发者的节点的邻边数计算开发者网络中各个开发者的度;
5、计算各个开发者在整个开发过程中提交的文件总数;
6、通过以下步骤计算开发者的聚集系数;
6.1、计算结点i的邻居结点数ki;
6.2、计算结点i的边数Ei;
6.3、根据公式 2 Ei / ( ki ( ki - 1)) 计算结点i的聚类系数;
7、通过以下方法计算开发者的贡献度:
contri = a* degreei + b*clusteri +c*commiti
其中contri代表的是开发者i在项目中的贡献程度,
degreei代表的是开发者的度标准化处理后的值,
clusteri代表的是在开发者网络中的聚类系数标准化处理后的值,
commiti在整个开发过程之中的文件提交次数标准化处理后的值,
a、b、c代表的是用来平衡各影响因素间的系数,本发明中认为三个参数对开发者的贡献度的计算同等重要,均取1/3。
根据计算出的各个开发者的贡献度,按从大到小进行排序,排序靠前的可以认定其在整个项目开发过程中贡献程度大。
本发明为项目管理者提供了一个实用的管理方法,以网络为基础,能够对开发项目的状况,开发者的贡献程度进行积极有效的数字化管理。
附图说明
图1是开源软件开发过程中开发者贡献度的度量方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
下面结合sourceforge.net上的一个开源软件Spring Framework给出详细的实现方法。
1、选择一个开源软件,并找到其项目所在网站,本实施例所在网站地址为:http://sourceforge.net/projects/springframework/;
2、获取开发过程全部信息,springframework的SVN信息获取地址为:
svn co https://springframework.svn.sourceforge.net/svnroot/springframework springframework;
3、数据整理
建立数据表SvnInformation,各字段如下:
Date:时间格式YYYY-MM-DD HH:MM:SS,例如2010-09-10 01:24:59
Author:开发者姓名,字符串格式,如dsyer
Message:开发者提交文件时的说明,字符串格式,如:add fixes for Felix platform (change fragment exception to warning)
File:开发者提交文件的路径,字符串格式,如:/spring-osgi/trunk/integration-tests/tests/src/test/java/org/springframework/osgi/iandt/BaseIntegrationTest.java
Revision:提交文件时该项目的子版本号,字符串格式,如:14912;
4、每条数据按如上格式整理后存入数据表;
5、构建开发者网络;
新建数据表DevNetwork,各字段如下:
Author1:字符串型,表示开发者名
Author2:字符串型,表示开发者名
Count:Author1 和Author2之间的边权
每个开发者作为一个节点,节点名称为开发者姓名,选择第一条数据,取出该条数据中的Author和File,分别定义为Author1和File1,
依次检索该条数据后面的其他数据项,取出该条数据中的Author和File,分别定义为Author2和File2,
如果File2与File1相等,则在Author2和Author1之间连一条边,边权增1;
选择第二条数据,重复上2步直到最后一条数据,至此,开发者网络图形成;
6、计算结点的度
选择该结点,查看与其有边权不为0的结点的数量,即为该结点的度;
7、计算开发者文件提交次数
在表SvnInformation中,选择Author,查看其记录条数,即为该开发者的文件提交次数;
8、计算结点聚类系数
计算结点i的邻居结点数ki ,计算结点i的边数Ei,
根据公式 2 Ei / ( ki ( ki - 1)) 计算结点i的聚类系数
9、计算开发者贡献度
根据公式contri = a* degreei + b*clusteri +c*commiti 计算每个结点的贡献度,其中:
contri代表的是开发者i在项目中的贡献程度。
degreei代表的是开发者的度标准化处理后的值。
clusteri代表的是在开发者网络中的聚类系数标准化处理后的值。
commiti在整个开发过程之中的文件提交次数标准化处理后的值。
a、b、c代表的是用来平衡各影响因素间的系数,本发明中认为三个参数对开发者的贡献度的计算同等重要,均取1/3。
Claims (3)
1.一种开源软件开发过程中开发者贡献度的度量方法,其特征在于,包括以下步骤:
S11:选择开源项目,下载开源项目中的全部版本控制信息,
S12:整理数据,建立数据表SvnInformation,
S13:构建开发者网络,
S14:计算开发者的度,
S15:计算开发者的文件提交次数,
S16:计算开发者的聚类系数,
S17:计算开发者的贡献度。
2.一种开源软件开发过程中开发者贡献度的度量方法,其特征在于,在步骤S13中开发者网络的构建包括如下步骤:
S131: 每个开发者作为一个节点,节点名称为开发者姓名,开发者之间无边,边权为0,
S132:选择数据表SvnInformation第一条数据,取出该条数据中的Author和File,分别定义为Author1和File1,
S133:依次检索该条数据之后的所有数据项,取出每条数据中的Author和File,分别定义为Author2和File2,
S134:比较File2与File1,如果File2与File1相等,则在Author2和Author1之间连一条边,且边权增1,
S135:选择第二条数据,重复步骤S133和S134,
S136:依次处理第三至最后一条数据,
S137:至此,开发者网络图形成。
3.一种开源软件开发过程中开发者贡献度的度量方法,其特征在于,在步骤S17中开发者开发者的贡献度的计算方法为:
contri = a* degreei + b*clusteri +c*commiti
其中
contri代表的是开发者i在项目中的贡献程度,
degreei代表的是开发者的度标准化处理后的值,
clusteri代表的是在开发者网络中的聚类系数标准化处理后的值,
commiti在整个开发过程之中的文件提交次数标准化处理后的值,
a、b、c代表的是用来平衡各影响因素间的系数,本发明中认为三个参数对开发者的贡献度的计算同等重要,均取1/3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101956451A CN102254250A (zh) | 2011-07-13 | 2011-07-13 | 一种开源软件开发过程中开发者贡献度的度量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101956451A CN102254250A (zh) | 2011-07-13 | 2011-07-13 | 一种开源软件开发过程中开发者贡献度的度量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102254250A true CN102254250A (zh) | 2011-11-23 |
Family
ID=44981497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101956451A Pending CN102254250A (zh) | 2011-07-13 | 2011-07-13 | 一种开源软件开发过程中开发者贡献度的度量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102254250A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529562A (zh) * | 2016-09-09 | 2017-03-22 | 浙江工业大学 | 一种基于Email网络的开源软件项目开发者预测方法 |
CN107247664A (zh) * | 2017-05-15 | 2017-10-13 | 杭州电子科技大学 | 一种面向开源软件的协同行为测度方法 |
CN107967292A (zh) * | 2017-10-16 | 2018-04-27 | 西安交通大学医学院第附属医院 | 一种用于定量表示对论文贡献程度的方法和系统 |
CN108876031A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种软件开发者贡献值预测方法 |
CN108932198A (zh) * | 2018-07-06 | 2018-12-04 | 深圳源码智能科技有限公司 | 计算源代码贡献度的方法和装置 |
CN113379271A (zh) * | 2021-06-22 | 2021-09-10 | 中国人民解放军国防科技大学 | 面向开源平台的遗弃贡献接管者推荐方法、装置和设备 |
CN115033265A (zh) * | 2022-08-09 | 2022-09-09 | 北京创新乐知网络技术有限公司 | 一种开源软件贡献者数据处理方法及装置 |
-
2011
- 2011-07-13 CN CN2011101956451A patent/CN102254250A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529562A (zh) * | 2016-09-09 | 2017-03-22 | 浙江工业大学 | 一种基于Email网络的开源软件项目开发者预测方法 |
CN107247664A (zh) * | 2017-05-15 | 2017-10-13 | 杭州电子科技大学 | 一种面向开源软件的协同行为测度方法 |
CN107247664B (zh) * | 2017-05-15 | 2020-09-22 | 杭州电子科技大学 | 一种面向开源软件的协同行为测度方法 |
CN107967292A (zh) * | 2017-10-16 | 2018-04-27 | 西安交通大学医学院第附属医院 | 一种用于定量表示对论文贡献程度的方法和系统 |
CN108876031A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种软件开发者贡献值预测方法 |
CN108932198A (zh) * | 2018-07-06 | 2018-12-04 | 深圳源码智能科技有限公司 | 计算源代码贡献度的方法和装置 |
CN113379271A (zh) * | 2021-06-22 | 2021-09-10 | 中国人民解放军国防科技大学 | 面向开源平台的遗弃贡献接管者推荐方法、装置和设备 |
CN115033265A (zh) * | 2022-08-09 | 2022-09-09 | 北京创新乐知网络技术有限公司 | 一种开源软件贡献者数据处理方法及装置 |
CN115033265B (zh) * | 2022-08-09 | 2023-01-03 | 北京创新乐知网络技术有限公司 | 一种开源软件贡献者数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wienand et al. | Detecting incorrect numerical data in dbpedia | |
CN102254250A (zh) | 一种开源软件开发过程中开发者贡献度的度量方法 | |
Qiu et al. | A causality mining and knowledge graph based method of root cause diagnosis for performance anomaly in cloud applications | |
Van Antwerp et al. | The importance of social network structure in the open source software developer community | |
JP5306360B2 (ja) | データ記録を一致させるシステムの分析のための方法およびシステム | |
Li et al. | Architectural technical debt identification based on architecture decisions and change scenarios | |
US10013336B2 (en) | Information technology testing and testing data management | |
CN110196814B (zh) | 一种软件质量评价方法 | |
US8930918B2 (en) | System and method for SQL performance assurance services | |
US9189579B2 (en) | Techniques to automatically generate simulated information | |
CN107077413A (zh) | 数据驱动的测试框架 | |
CN106803799B (zh) | 一种性能测试方法和装置 | |
CN111611458A (zh) | 大数据治理中基于元数据和数据分析技术实现系统数据架构梳理的方法 | |
McNamara et al. | Design, development and validation of software for modelling dietary exposure to food chemicals and nutrients | |
Zaplotnik et al. | Simulation of the COVID-19 epidemic on the social network of Slovenia: Estimating the intrinsic forecast uncertainty | |
Peltomäki et al. | Correlations in bipartite collaboration networks | |
Kazman et al. | Evaluating the effects of architectural documentation: A case study of a large scale open source project | |
Conklin et al. | Collaboration using OSSmole: A repository of FLOSS data and analyses | |
CN104050197A (zh) | 一种信息检索系统评测方法和装置 | |
EP3717997A1 (en) | Cardinality estimation in databases | |
Galli et al. | Quality properties of execution tracing, an empirical study | |
Rauber et al. | Precisely and persistently identifying and citing arbitrary subsets of dynamic data | |
Boose et al. | Ensuring reliable datasets for environmental models and forecasts | |
Huisman et al. | StOCNET: Software for the statistical analysis of social networks | |
Gkatziaki et al. | easIE: Easy-to-use information extraction for constructing CSR databases from the web |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111123 |