《计算机应用》唯一官方网站 ›› 2022, Vol. 42 ›› Issue (2): 557-564.DOI: 10.11772/j.issn.1001-9081.2021020273
收稿日期:2021-02-27
									
				
											修回日期:2021-04-21
									
				
											接受日期:2021-04-28
									
				
											发布日期:2022-02-11
									
				
											出版日期:2022-02-10
									
				
			通讯作者:
					张以文
							作者简介:李炜(1969—),女,安徽合肥人,教授,博士,主要研究方向:软件工程、虚拟现实人机互动、数据挖掘;基金资助:
        
                                                                                                            Wei LI, Qunqun WU, Yiwen ZHANG( )
)
			  
			
			
			
                
        
    
Received:2021-02-27
									
				
											Revised:2021-04-21
									
				
											Accepted:2021-04-28
									
				
											Online:2022-02-11
									
				
											Published:2022-02-10
									
			Contact:
					Yiwen ZHANG   
							About author:LI Wei, born in 1969, Ph. D., professor. Her research interests include software engineering, virtual reality human-computer interaction, data mining.Supported by:摘要:
针对传统开发者推荐方法侧重于分析开发者的专业能力以及与任务的交互信息,而未考虑开发者间协作性的问题,提出一种基于E-CARGO(Environment-Class, Agent, Role, Group, and Object)模型的开发者推荐方法。首先结合协作开发的特点,将开发者协同开发过程描述为基于角色的协作,并使用E-CARGO模型对其进行建模;然后使用模糊层次分析(FAHP)法来建立模糊判断矩阵,从而求得开发者能力指标权重并进行加权求和,进而得到开发者历史综合能力评价集合;最后针对开发者综合能力评价的不确定和动态特性,利用云模型理论对开发者历史综合能力评价集合进行分析,以求得开发者对于每个任务的胜任能力,并利用cplex优化包对开发者推荐问题进行求解。实验结果表明,所提方法能够在可接受的时间范围内求得最优的开发者推荐结果,验证了所提方法的有效性。
中图分类号:
李炜, 吴群群, 张以文. 基于E-CARGO模型的开发者推荐方法[J]. 计算机应用, 2022, 42(2): 557-564.
Wei LI, Qunqun WU, Yiwen ZHANG. Developer recommendation method based on E-CARGO model[J]. Journal of Computer Applications, 2022, 42(2): 557-564.
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {(0.6, 0.5, 0.8, 0.6)} | {(0.8, 0.5, 0.4, 0.8)} | {(0.5, 0.5, 0.9, 0.8)} | 
| Λ2 | {(0.8, 0.5, 0.4, 0.8) (0.6, 0.6, 0.6, 0.8) (0.8, 0.6, 0.6, 0.8)} | {(0.7, 0.5, 0.5, 0.5) (0.6, 0.6, 0.6, 0.6) (0.7, 0.8, 0.5, 0.9)} | {(0.8, 0.7, 0.6, 0.6) (0.8, 0.8, 0.5, 0.7) (0.7, 0.7, 0.8, 0.8) (0.9, 0.7, 0.8, 0.8)} | 
| Λ3 | {(0.8, 0.7, 0.9, 0.8) (0.9, 0.8, 0.9, 0.8) (0.8, 0.8, 0.6, 0.8) (0.7, 0.7, 0.8, 0.8)} | {(0.7, 0.6, 0.9, 0.8) (0.9, 0.7, 0.5, 0.6) (0.8, 0.6, 0.6, 0.7)} | {(0.8, 0.8, 0.9, 0.8) (0.8, 0.8, 0.8, 0.8) (0.8, 0.7, 0.9, 0.8)} | 
| Λ4 | {(0.5, 0.8, 0.8, 0.8) (0.6, 0.7, 0.9, 0.9) (0.7, 0.6, 0.7, 0.8) (0.6, 0.6, 0.8, 0.8)} | {(0.8, 0.6, 0.8, 0.9) (0.8, 0.8, 0.9, 0.8) (0.8, 0.8, 0.6, 0.6) (0.6, 0.7, 0.7, 0.9)} | {(0.7, 0.7, 0.9, 0.9)} | 
| Λ5 | {(0.9, 0.6, 0.8, 0.9) (0.8, 0.7, 0.9, 0.8)} | {(0.6, 0.6, 0.8, 0.8) (0.5, 0.8, 0.9, 0.6)} | {(0.8, 0.9, 0.9, 0.6)} | 
表1 能力指标评价信息
Tab. 1 Ability index evaluation information
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {(0.6, 0.5, 0.8, 0.6)} | {(0.8, 0.5, 0.4, 0.8)} | {(0.5, 0.5, 0.9, 0.8)} | 
| Λ2 | {(0.8, 0.5, 0.4, 0.8) (0.6, 0.6, 0.6, 0.8) (0.8, 0.6, 0.6, 0.8)} | {(0.7, 0.5, 0.5, 0.5) (0.6, 0.6, 0.6, 0.6) (0.7, 0.8, 0.5, 0.9)} | {(0.8, 0.7, 0.6, 0.6) (0.8, 0.8, 0.5, 0.7) (0.7, 0.7, 0.8, 0.8) (0.9, 0.7, 0.8, 0.8)} | 
| Λ3 | {(0.8, 0.7, 0.9, 0.8) (0.9, 0.8, 0.9, 0.8) (0.8, 0.8, 0.6, 0.8) (0.7, 0.7, 0.8, 0.8)} | {(0.7, 0.6, 0.9, 0.8) (0.9, 0.7, 0.5, 0.6) (0.8, 0.6, 0.6, 0.7)} | {(0.8, 0.8, 0.9, 0.8) (0.8, 0.8, 0.8, 0.8) (0.8, 0.7, 0.9, 0.8)} | 
| Λ4 | {(0.5, 0.8, 0.8, 0.8) (0.6, 0.7, 0.9, 0.9) (0.7, 0.6, 0.7, 0.8) (0.6, 0.6, 0.8, 0.8)} | {(0.8, 0.6, 0.8, 0.9) (0.8, 0.8, 0.9, 0.8) (0.8, 0.8, 0.6, 0.6) (0.6, 0.7, 0.7, 0.9)} | {(0.7, 0.7, 0.9, 0.9)} | 
| Λ5 | {(0.9, 0.6, 0.8, 0.9) (0.8, 0.7, 0.9, 0.8)} | {(0.6, 0.6, 0.8, 0.8) (0.5, 0.8, 0.9, 0.6)} | {(0.8, 0.9, 0.9, 0.6)} | 
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {0.627} | {0.63} | {0.672} | 
| Λ2 | {0.63, 0.648, 0.703} | {0.555, 0.6, 0.722} | {0.678, 0.701, 0.749, 0.804} | 
| Λ3 | {0.802, 0.853, 0.75, 0.749} | {0.751, 0.681, 0.679} | {0.825, 0. 8, 0.802} | 
| Λ4 | {0.718, 0.771, 0.701, 0.698} | {0.777, 0.825, 0.702, 0.721} | {0.798} | 
| Λ5 | {0.805, 0.802} | {0.698, 0.694} | {0.8} | 
表2 开发者历史综合能力集合
Tab. 2 Historical comprehensive ability set of developers
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {0.627} | {0.63} | {0.672} | 
| Λ2 | {0.63, 0.648, 0.703} | {0.555, 0.6, 0.722} | {0.678, 0.701, 0.749, 0.804} | 
| Λ3 | {0.802, 0.853, 0.75, 0.749} | {0.751, 0.681, 0.679} | {0.825, 0. 8, 0.802} | 
| Λ4 | {0.718, 0.771, 0.701, 0.698} | {0.777, 0.825, 0.702, 0.721} | {0.798} | 
| Λ5 | {0.805, 0.802} | {0.698, 0.694} | {0.8} | 
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {0.627, 0, 0} | {0.63, 0, 0} | {0.672, 0, 0} | 
| Λ2 | {0.66, 0.036, 0.012} | {0.626, 0.081, 0.03} | {0.733, 0.055, 0.01} | 
| Λ3 | {0.789, 0.049, 0.008} | {0.704, 0.04, 0.009} | {0.809, 0.013, 0.005} | 
| Λ4 | {0.722, 0.031, 0.014} | {0.756, 0.056, 0.005} | {0.798, 0, 0} | 
| Λ5 | {0.804, 0.002, 0.001} | {0.696, 0.003, 0.001} | {0.8, 0, 0} | 
表3 各开发者对各子任务的综合能力云模型
Tab. 3 Comprehensive ability cloud model of developers for different subtasks
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | {0.627, 0, 0} | {0.63, 0, 0} | {0.672, 0, 0} | 
| Λ2 | {0.66, 0.036, 0.012} | {0.626, 0.081, 0.03} | {0.733, 0.055, 0.01} | 
| Λ3 | {0.789, 0.049, 0.008} | {0.704, 0.04, 0.009} | {0.809, 0.013, 0.005} | 
| Λ4 | {0.722, 0.031, 0.014} | {0.756, 0.056, 0.005} | {0.798, 0, 0} | 
| Λ5 | {0.804, 0.002, 0.001} | {0.696, 0.003, 0.001} | {0.8, 0, 0} | 
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | 0 | 1 | 0 | 
| Λ2 | 0 | 0 | 1 | 
| Λ3 | 1 | 0 | 0 | 
| Λ4 | 0 | 1 | 0 | 
| Λ5 | 1 | 0 | 0 | 
表4 开发者推荐矩阵T
Tab. 4 Developer recommendation matrix T
| 开发者 | Ω1 | Ω2 | Ω3 | 
|---|---|---|---|
| Λ1 | 0 | 1 | 0 | 
| Λ2 | 0 | 0 | 1 | 
| Λ3 | 1 | 0 | 0 | 
| Λ4 | 0 | 1 | 0 | 
| Λ5 | 1 | 0 | 0 | 
| 冲突率 | m | n | cplex求解时间/ms | 穷举法求解时间/ms | 贪心法求解时间/ms | cplex> 贪心法的次数 | cplex= 贪心法的次数 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Max | Min | Ave | Max | Min | Ave | Max | Min | Ave | |||||
| 0.1 | 10 | 5 | 184.41 | 5.89 | 11.52 | 780.65 | 75.63 | 86.96 | 1.12 | 0.44 | 0.54 | 85 | 15 | 
| 20 | 10 | 227.44 | 12.14 | 23.42 | N/A | N/A | N/A | 2.61 | 1.56 | 1.80 | 99 | 1 | |
| 40 | 20 | 300.95 | 37.02 | 74.03 | N/A | N/A | N/A | 9.32 | 5.76 | 6.46 | 100 | 0 | |
| 10 | 3 | 178.26 | 5.58 | 11.29 | 215.48 | 6.97 | 23.90 | 0.91 | 0.32 | 0.40 | 67 | 33 | |
| 20 | 6 | 198.77 | 8.38 | 17.31 | N/A | N/A | N/A | 2.28 | 0.99 | 1.17 | 86 | 14 | |
| 40 | 13 | 242.78 | 25.56 | 45.99 | N/A | N/A | N/A | 5.46 | 3.89 | 4.36 | 100 | 0 | |
| 0.2 | 10 | 5 | 193.44 | 5.90 | 13.45 | 4 609.19 | 60.36 | 35.84 | 1.41 | 0.45 | 0.56 | 88 | 11 | 
| 20 | 10 | 231.38 | 12.73 | 28.89 | N/A | N/A | N/A | 2.91 | 1.58 | 1.91 | 94 | 6 | |
| 40 | 20 | 328.72 | 52.08 | 97.78 | N/A | N/A | N/A | 9.34 | 5.77 | 6.49 | 100 | 0 | |
| 10 | 3 | 185.86 | 5.61 | 12.05 | 235.25 | 13.36 | 24.29 | 1.39 | 0.32 | 0.43 | 72 | 26 | |
| 20 | 6 | 212.79 | 9.19 | 19.83 | N/A | N/A | N/A | 1.75 | 0.97 | 1.18 | 90 | 10 | |
| 40 | 13 | 301.46 | 31.45 | 66.72 | N/A | N/A | N/A | 6.59 | 3.90 | 4.34 | 100 | 0 | |
表5 本文方法与穷举法及贪心法求解性能对比
Tab. 5 Solving performance comparison among the proposed method,exhaustive method and greedy method
| 冲突率 | m | n | cplex求解时间/ms | 穷举法求解时间/ms | 贪心法求解时间/ms | cplex> 贪心法的次数 | cplex= 贪心法的次数 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Max | Min | Ave | Max | Min | Ave | Max | Min | Ave | |||||
| 0.1 | 10 | 5 | 184.41 | 5.89 | 11.52 | 780.65 | 75.63 | 86.96 | 1.12 | 0.44 | 0.54 | 85 | 15 | 
| 20 | 10 | 227.44 | 12.14 | 23.42 | N/A | N/A | N/A | 2.61 | 1.56 | 1.80 | 99 | 1 | |
| 40 | 20 | 300.95 | 37.02 | 74.03 | N/A | N/A | N/A | 9.32 | 5.76 | 6.46 | 100 | 0 | |
| 10 | 3 | 178.26 | 5.58 | 11.29 | 215.48 | 6.97 | 23.90 | 0.91 | 0.32 | 0.40 | 67 | 33 | |
| 20 | 6 | 198.77 | 8.38 | 17.31 | N/A | N/A | N/A | 2.28 | 0.99 | 1.17 | 86 | 14 | |
| 40 | 13 | 242.78 | 25.56 | 45.99 | N/A | N/A | N/A | 5.46 | 3.89 | 4.36 | 100 | 0 | |
| 0.2 | 10 | 5 | 193.44 | 5.90 | 13.45 | 4 609.19 | 60.36 | 35.84 | 1.41 | 0.45 | 0.56 | 88 | 11 | 
| 20 | 10 | 231.38 | 12.73 | 28.89 | N/A | N/A | N/A | 2.91 | 1.58 | 1.91 | 94 | 6 | |
| 40 | 20 | 328.72 | 52.08 | 97.78 | N/A | N/A | N/A | 9.34 | 5.77 | 6.49 | 100 | 0 | |
| 10 | 3 | 185.86 | 5.61 | 12.05 | 235.25 | 13.36 | 24.29 | 1.39 | 0.32 | 0.43 | 72 | 26 | |
| 20 | 6 | 212.79 | 9.19 | 19.83 | N/A | N/A | N/A | 1.75 | 0.97 | 1.18 | 90 | 10 | |
| 40 | 13 | 301.46 | 31.45 | 66.72 | N/A | N/A | N/A | 6.59 | 3.90 | 4.34 | 100 | 0 | |
| 1 | 王怀民,尹刚,谢冰,等.基于网络的可信软件大规模协同开发与演化[J].中国科学:信息科学, 2014, 44(1): 1-19. | 
| WANG H M, YIN G, XIE B, et al. Research on network-based large-scale collaborative development and evolution of trustworthy software[J]. SCIENTIA SINICA Informations, 2014, 44(1): 1-19. | |
| 2 | BEGEL A, BOSCH J, STOREY M A. Social networking meets software development: perspectives from GitHub, MSDN, Stack Exchange, and TopCoder[J]. IEEE Software, 2013, 30(1): 52-66. 10.1109/ms.2013.13 | 
| 3 | ŠMITE D, MOE N B, ŠĀBLIS A, et al. Software teams and their knowledge networks in large-scale software development[J]. Information and Software Technology, 2017, 86: 71-86. 10.1016/j.infsof.2017.01.003 | 
| 4 | 刘鹏,张鹏臣,王念新.开源软件社区开发者协作网络结构演化分析——以Cloud Foundry社区为例[J].复杂系统与复杂性科学, 2019, 16(4): 31-43. 10.1007/978-981-15-1209-4_7 | 
| LIU P, ZHANG P C, WANG N X. Structure and evolution of developer collaboration network in Cloud Foundry OSS community[J]. Complex Systems and Complexity Science, 2019, 16(4): 31-43. 10.1007/978-981-15-1209-4_7 | |
| 5 | 刘晓,李兵,何鹏.开源软件社区开发者合作网络的演化分析[J].小型微型计算机系统, 2015, 36(9): 1921-1926. 10.3969/j.issn.1000-1220.2015.09.001 | 
| LIU X, LI B, HE P. Evolution analysis of developer collaboration network in open source software community[J]. Journal of Chinese Computer Systems, 2015, 36(9): 1921-1926. 10.3969/j.issn.1000-1220.2015.09.001 | |
| 6 | ALJEMABI M A, WANG Z J. Empirical study on the evolution of developer social networks[J]. IEEE Access, 2018, 6: 51049-51060. 10.1109/access.2018.2868427 | 
| 7 | MENS T, CATALDO M, DAMIAN D. The social developer: the future of software development [guest editors' introduction][J]. IEEE Software, 2019, 36(1): 11-14. 10.1109/ms.2018.2874316 | 
| 8 | LI G L, WANG J N, ZHENG Y D, et al. Crowdsourced data management: a survey[J]. IEEE Transactions on Knowledge and Data Engineering, 2016, 28(9): 2296-2319. 10.1109/tkde.2016.2535242 | 
| 9 | COSENTINO V, IZQUIERDO J L C, CABOT J. A systematic mapping study of software development with GitHub[J]. IEEE Access, 2017, 5: 7173-7192. 10.1109/access.2017.2682323 | 
| 10 | AHMED F, KILIC K. Fuzzy analytic hierarchy process: a performance analysis of various algorithms[J]. Fuzzy Sets and Systems, 2019, 362: 110-128. 10.1016/j.fss.2018.08.009 | 
| 11 | ZHU H B, ZHOU M C. Role-based collaboration and its kernel mechanisms[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 2006, 36(4): 578-589. 10.1109/tsmcc.2006.875726 | 
| 12 | SUN X B, YANG H, XIA X, et al. Enhancing developer recommendation with supplementary information via mining historical commits[J]. Journal of Systems and Software, 2017, 134: 355-368. 10.1016/j.jss.2017.09.021 | 
| 13 | ZHANG X H, WANG T, YIN G, et al. DevRec: a developer recommendation system for open source repositories [C]// Proceedings of the 2017 International Conference on Software Reuse, LNCS10221. Cham: Springer, 2017: 3-11. 10.1007/978-3-319-56856-0_1 | 
| 14 | HE X N, LIAO L Z, ZHANG H W, et al. Neural collaborative filtering [C]// Proceedings of the 26th International Conference on World Wide Web. Republic and Canton of Geneva: International World Wide Web Conferences Steering Committee, 2017: 173-182. 10.1145/3038912.3052569 | 
| 15 | XIN X, HE X N, ZHANG Y F, et al. Relational collaborative filtering: modeling multiple item relations for recommendation [C]// Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. New York: ACM, 2019: 125-134. 10.1145/3331184.3331188 | 
| 16 | WANG X, HE X N, WANG M, et al. Neural graph collaborative filtering [C]// Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. New York: ACM, 2019: 165-174. 10.1145/3331184.3331267 | 
| 17 | XIE X Q, WANG B, YANG X C. SoftRec: multi-relationship fused software developer recommendation[J]. Applied Sciences, 2020, 10(12): No.4333. 10.3390/app10124333 | 
| 18 | ZHANG Z Y, SUN H L, ZHANG H Y. Developer recommendation for Topcoder through a meta-learning based policy model[J]. Empirical Software Engineering, 2020, 25(1): 859-889. 10.1007/s10664-019-09755-0 | 
| 19 | ZHU H B, ZHOU M C. Roles in information systems: a survey[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 2008, 38(3): 377-396. 10.1109/tsmcc.2008.919168 | 
| 20 | ZHU H B, ZHOU M C, ALKINS R. Group role assignment via a Kuhn-Munkres algorithm-based solution[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part A: Systems and Humans, 2012, 42(3): 739-750. 10.1109/tsmca.2011.2170414 | 
| 21 | ZHU H B. Avoiding conflicts by group role assignment[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2016, 46(4): 535-547. 10.1109/tsmc.2015.2438690 | 
| 22 | ZHU H B, LIU D N, ZHANG S Q, et al. Solving the group multirole assignment problem by improving the ILOG approach[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2017, 47(12): 3418-3424. 10.1109/tsmc.2016.2566680 | 
| 23 | ZHU H B, SHENG Y, ZHOU X Z, et al. Group role assignment with cooperation and conflict factors[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2018, 48(6): 851-863. 10.1109/tsmc.2016.2633244 | 
| 24 | LIU D N, HUANG B Y, ZHU H B. Solving the tree-structured task allocation problem via group multirole assignment[J]. IEEE Transactions on Automation Science and Engineering, 2020, 17(1): 41-55. 10.1109/tase.2019.2908762 | 
| 25 | ZHU H B, ZHU Y. Group role assignment with agents’ preferences [C]// Proceedings of the IEEE 14th International Conference on Networking, Sensing and Control. Piscataway: IEEE, 2017: 605-610. 10.1109/icnsc.2017.8000160 | 
| 26 | ZHU H B. Group multi-role assignment with conflicting roles and agents[J]. IEEE/CAA Journal of Automatica Sinica, 2020, 7(6): 1498-1510. 10.1109/jas.2020.1003354 | 
| 27 | SAATY T L. Modeling unstructured decision problems — the theory of analytical hierarchies[J]. Mathematics and Computers in Simulation, 1978, 20(3): 147-158. 10.1016/0378-4754(78)90064-2 | 
| 28 | WANG G Y, XU C L, LI D Y. Generic normal cloud model[J]. Information Sciences, 2014, 280: 1-15. 10.1016/j.ins.2014.04.051 | 
| 29 | MA H, ZHU H B, LI K Q, et al. Collaborative optimization of service composition for data-intensive applications in a hybrid cloud[J]. IEEE Transactions on Parallel and Distributed Systems, 2019, 30(5): 1022-1035. 10.1109/tpds.2018.2879603 | 
| [1] | 李晓会, 董红斌. 基于E-CARGO模型的共乘出行匹配建模与优化方法[J]. 《计算机应用》唯一官方网站, 2022, 42(3): 778-782. | 
| [2] | 卢志刚 朱文瑾. 基于修正区间模糊Shapley值信息产品供应链利益分配算法[J]. 计算机应用, 2013, 33(10): 2960-2963. | 
| [3] | 胡图 景志宏 张秋林. 基于可拓模糊层次分析的异构网络选择算法[J]. 计算机应用, 2011, 31(09): 2336-2339. | 
| [4] | 周茜 于炯. 云计算下基于信任的防御系统模型[J]. 计算机应用, 2011, 31(06): 1531-1535. | 
| 阅读次数 | ||||||
| 全文 |  | |||||
| 摘要 |  | |||||