CN108509218B - 基于Codepedia众包平台的第三方工具优化方法 - Google Patents

基于Codepedia众包平台的第三方工具优化方法 Download PDF

Info

Publication number
CN108509218B
CN108509218B CN201810177974.5A CN201810177974A CN108509218B CN 108509218 B CN108509218 B CN 108509218B CN 201810177974 A CN201810177974 A CN 201810177974A CN 108509218 B CN108509218 B CN 108509218B
Authority
CN
China
Prior art keywords
platform
tool
party tool
user
party
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.)
Active
Application number
CN201810177974.5A
Other languages
English (en)
Other versions
CN108509218A (zh
Inventor
王涛
於杰
王怀民
尹刚
余跃
张迅晖
范强
曾令斌
张洋
李耀宗
游薪渝
陈明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201810177974.5A priority Critical patent/CN108509218B/zh
Publication of CN108509218A publication Critical patent/CN108509218A/zh
Application granted granted Critical
Publication of CN108509218B publication Critical patent/CN108509218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于Codepedia众包平台的第三方工具优化方法,包括以下步骤:1、开源代码预处理;2、对预处理后的代码进行分析,产生分析结果;3、将分析结果存入问题数据库;4、向用户推送问题;5、用户对问题进行回答,选择答案中自己认为正确的选项,平台记录用户的行为数据,将用户行为存入数据;6、平台对用户行为数据进行判断,若超过一定比例的用户的判断与第三方工具的分析结果不同,则反馈给第三方工具;7、第三方工具开发者对数据分析后对应用进行改进,发布新版本;8、若停止更新,则平台使用改进后新版本的第三方工具,否则,转步骤2。本发明可以低成本、高效率的方式为集成在Codepedia平台的第三方应用进行反馈优化。

Description

基于Codepedia众包平台的第三方工具优化方法
技术领域
本发明属于开源软件领域,具体涉及一种基于Codepedia众包平台对第三方工具反馈优化的方法。
背景技术
目前互联网上存在着大量开源的第三方工具,开发者能够方便快捷的将这些第三方工具搭建在自己的服务器上,与开发者自己所开发的平台集成在一起,从而快速完成平台需要的某些功能。这些开源的第三方工具例如:代码分析工具SonarQube、CodeIt.Right、FxCop、StyleCop、Ada等,项目管理工具Redmine、Teambition等;因为这些开源的第三方工具存在,开发者可以在开发自己项目的时候引入这些开源的第三方工具,实现一些复杂功能,而不需要重复造轮子,提升开发效率,缩短开发周期,降低开发成本;但是这些第三方工具也是一些开发团队去进行开发、维护的,存在功能不够完善的情况,所以一定有许多可以改进的地方,在开发人员有限的情况下,他们无法测试所有案例,获取这些测试数据对工具进行改进。因此,在互联网中存在大量开源第三方软件的条件下,一种能为第三方工具提供大量用户行为数据来反馈优化第三方工具质量的方法是必不可少的,不仅提高第三方工具的质量,也能更好的服务于平台本身。
目前大多数开源第三方工具都是通过开发者自己或专门的测试人员写测试代码,来测试开发者的代码是否能够覆盖某些情况、发现某些bug(缺陷)等任务,然而开发者个人的能力终究有限,开发者无法考虑所有情况,因此这些工具必然存在一些没有发现的问题,例如:如果是一个代码分析工具,那么就需要从分析工具的全面性和准确性两个角度来衡量,因此分析工具覆盖面是否全面,分析结果是否准确就值得商榷;如果是一个bug发现工具,那么一定存在没有被发现的bug,更有甚者,工具一定存在着某些在当前版本没有暴露的bug;而这些情况之所以出现,根本原因一方面在于工具的开发者没有收集到足够多的案例以及用户数据,另一方面是收集数据的成本太高,两种原因综合起来导致有限的开发者无法通过足够的用户数据来分析各种情况。
众包是目前互联网上一种比较流行的机制,这个概念2006年首次提出,指的是一个公司或机构把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的大众网络的做法。众包模式可以最大限度利用大众力量,以更高的效率、更低的成本满足生产及生活服务需求,促进生产方式变革,开拓集智创新的新途径,通过群体的力量,为更广大的群体服务。众包是一种处理大量数据的有效方法,在线学习平台Duolingo通过众包的方式向用户推送合适的语言文本,让用户来帮助翻译,同时让用户对语言及翻译文本进行匹配,既帮助用户提升语言能力,也完成了大量的语料的翻译工作,形成了大量高质量的翻译文本数据并与原始语料形成了关联,两者相互促进、共同发展。
Codepedia是一个基于众包的代码标注平台(http://codepedia.trustie.net/),平台充分利用各种开源的第三方应用,来帮助学生进行代码的阅读、理解、分析,同时通过学生在平台上进行的标注行为,为平台产生一批高质量、高注释率的开源项目。平台会利用包括代码分析工具SonarQube在内的一系列工具;由于平台参与人数众多,因此我们可以收集一系列用户行为数据,更为关键的是,这些用户数据是通过广大的参与者共同产生的,是一批高质量数据,因此我们可以对这些数据分析后进行利用;我们通过SonarQube对代码进行分析,按照一定模式产生一些固定问题,然后让学生回答这些回答,并将结果反馈给SonarQube,从而提高SonarQube的分析质量。由此可见,Codepedia众包平台可以以低成本、高效率的方式收集一批高质量的用户数据。
发明内容
本发明的目的在于充分利用Codepedia众包平台的能力,通过Codepedia众包平台产生的用户数据为第三方工具积累足够的用户数据,以低成本、高效率的方式为集成在Codepedia平台的第三方应用进行反馈优化,达到Codepedia平台与工具相互促进、共同提高的目的。
本发明的技术方案包括以下步骤:
步骤1、建立一个代码数据服务器(Code Data Server),从互联网的主要代码托管平台中采集开源代码,并对开源代码进行预处理;
步骤2、通过第三方工具对预处理后的代码进行分析,产生与代码有关联的分析结果,包括第三方工具分析产生的真实结果;
步骤3、将分析结果存入到问题数据库(Question Database);
步骤4、向用户推送Codepedia平台生成的问题;
步骤5、用户对问题进行回答,选择答案中自己认为正确的选项,平台记录用户的行为数据,将用户行为存入数据;
步骤6、平台对用户行为数据进行判断,若超过一定比例的用户的判断与第三方工具的分析结果不同,则将这部分数据反馈给第三方工具;
步骤7、第三方工具开发者收到平台的反馈后,对数据进行分析,若为用户问题,则告知平台;若为工具问题,则改进工具,并发布新的版本;
步骤8、若停止更新,则平台使用改进后新版本的第三方工具,否则,转步骤2。
作为本发明技术方案的进一步改进:
所述步骤1中采用通用的Web爬虫技术从互联网的主要代码托管平台中采集开源代码。
所述步骤2具体执行步骤:
步骤2.1编写程序删除开源代码中的原始注释;
步骤2.2使用第三方工具处理开源代码,分析开源代码中的Issue数量、严重程度、问题详情;
步骤2.3编写程序将步骤2.2中的分析结果归纳总结。
所述步骤5中记录不同用户对同一个问题的回答,同时记录每种回答占该问题所有回答中的比例。
所述步骤6中超过50%的用户的判断与第三方工具的分析结果不同,则将这部分数据反馈给第三方工具。
本发明的有益效果是:
本发明使Codepedia平台可以通过第三方工具为平台提供一些可供平台使用的分析数据,同时Codepedia平台收集用户针对这些分析结果进行判断的行为数据,并将用户的行为数据反馈给第三方工具的开发者,使工具的开发者能够改进工具本身,并再次应用于平台;以低成本、高效率的方式为集成在Codepedia平台的第三方工具进行反馈优化,从而实现两个平台或应用之间的相互促进、协同发展。
附图说明
图1本发明基于Codepedia众包平台的第三方工具优化方法流程图;
图2本发明步骤2使用第三方工具分析Codepedia平台上包含的开源代码流程图。
具体实施方式
图1是本发明基于Codepedia众包平台的第三方工具优化方法流程图,包括以下步骤:
步骤1、建立一个代码数据服务器(Code Data Server),从互联网的主要代码托管平台中采集开源代码,并对开源代码进行预处理;
步骤2、通过第三方工具对预处理后的代码进行分析,产生与代码有关联的分析结果,包括第三方工具分析产生的真实结果;
步骤3、将分析结果存入到问题数据库(Question Database);
步骤4、向用户推送Codepedia平台生成的问题;
步骤5、用户对问题进行回答,选择答案中自己认为正确的选项,平台记录用户的行为数据,将用户行为存入数据;
步骤6、平台对用户行为数据进行判断,若超过一定比例的用户的判断与第三方工具的分析结果不同,则将这部分数据反馈给第三方工具;
步骤7、第三方工具开发者收到平台的反馈后,对数据进行分析,若为用户问题,则告知平台;若为工具问题,则改进工具,并发布新的版本;
步骤8、若停止更新,则平台使用改进后新版本的第三方工具,否则,转步骤2。
图2是本发明步骤2使用第三方工具分析Codepedia平台上包含的开源代码流程图,具体执行步骤:
步骤2.1编写程序删除开源代码中的原始注释;
步骤2.2使用第三方工具处理开源代码,分析开源代码中的Issue数量、严重程度、问题详情;
步骤2.3编写程序将步骤2.2中的分析结果归纳总结。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (4)

1.基于Codepedia众包平台的第三方工具优化方法,其特征在于,包括以下步骤:
步骤1、建立一个代码数据服务器,从互联网的主要代码托管平台中采集开源代码,并对开源代码进行预处理;
步骤2、通过第三方工具对预处理后的代码进行分析,产生与代码有关联的分析结果;
所述步骤2具体执行步骤:
步骤2.1编写程序删除开源代码中的原始注释;
步骤2.2使用第三方工具处理开源代码,分析开源代码中的Issue数量、严重程度、问题详情;
步骤2.3编写程序将步骤2.2中的分析结果归纳总结;
步骤3、将分析结果存入到问题数据库;
步骤4、向用户推送Codepedia平台生成的问题;
步骤5、用户对问题进行回答,选择答案中自己认为正确的选项,平台记录用户的行为数据,将用户行为数据存入平台;
步骤6、平台对用户行为数据进行判断,若超过预定比例的用户的判断与第三方工具的分析结果不同,则将超过预定比例的用户的判断与第三方工具的分析结果不同的数据反馈给第三方工具;
步骤7、第三方工具开发者收到平台的反馈后,对超过预定比例的用户的判断与第三方工具的分析结果不同的数据进行分析,若为用户问题,则告知平台;若为工具问题,则改进工具,则更新并发布新的工具版本;
步骤8、平台判断是否更新,若第三方工具新的版本停止更新,则平台使用改进后新版本的第三方工具,否则,转步骤2。
2.如权利要求1所述的基于Codepedia众包平台的第三方工具优化方法,其特征在于,所述步骤1中采用通用的Web爬虫技术从互联网的主要代码托管平台中采集开源代码。
3.如权利要求1所述的基于Codepedia众包平台的第三方工具优化方法,其特征在于,所述步骤5中记录不同用户对同一个问题的回答,同时记录每种回答占该问题所有回答中的比例。
4.如权利要求1所述的基于Codepedia众包平台的第三方工具优化方法,其特征在于,所述步骤6中超过50%的用户的判断与第三方工具的分析结果不同,则将超过50%的用户的判断与第三方工具的分析结果不同的数据反馈给第三方工具。
CN201810177974.5A 2018-03-05 2018-03-05 基于Codepedia众包平台的第三方工具优化方法 Active CN108509218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810177974.5A CN108509218B (zh) 2018-03-05 2018-03-05 基于Codepedia众包平台的第三方工具优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810177974.5A CN108509218B (zh) 2018-03-05 2018-03-05 基于Codepedia众包平台的第三方工具优化方法

Publications (2)

Publication Number Publication Date
CN108509218A CN108509218A (zh) 2018-09-07
CN108509218B true CN108509218B (zh) 2021-03-26

Family

ID=63377035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810177974.5A Active CN108509218B (zh) 2018-03-05 2018-03-05 基于Codepedia众包平台的第三方工具优化方法

Country Status (1)

Country Link
CN (1) CN108509218B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818186A (zh) * 2021-01-22 2021-05-18 平安消费金融有限公司 信息跟踪方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874983A (zh) * 2011-10-11 2014-06-18 英特尔公司 用于众包自动数据收集的自动代码产生
CN104615755A (zh) * 2015-02-12 2015-05-13 北京航空航天大学 一种基于众包的新型问答系统
CN107169001A (zh) * 2017-03-31 2017-09-15 华东师范大学 一种基于众包反馈和主动学习的文本分类模型优化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402374B1 (en) * 2009-05-31 2013-03-19 Linkedin Corporation Audience platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874983A (zh) * 2011-10-11 2014-06-18 英特尔公司 用于众包自动数据收集的自动代码产生
CN104615755A (zh) * 2015-02-12 2015-05-13 北京航空航天大学 一种基于众包的新型问答系统
CN107169001A (zh) * 2017-03-31 2017-09-15 华东师范大学 一种基于众包反馈和主动学习的文本分类模型优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"众包竞赛中众包方的反馈策略";葛如一等;《系统管理学报》;20151115;第24卷(第6期);第821-827页 *

Also Published As

Publication number Publication date
CN108509218A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN110941467A (zh) 数据处理方法、装置及系统
van Deursen et al. Adinda: a knowledgeable, browser-based IDE
Yau et al. Is a rigorous agile methodology the best development strategy for small scale tech startups
CN112163420A (zh) 一种基于nlp技术的rpa流程自动生成方法
Tenso et al. Enhancing requirements engineering in agile methodologies by agent-oriented goal models: Two empirical case studies
Wienke et al. Development effort estimation in hpc
CN108647147A (zh) 一种利用图谱分析执行自动化测试机器人及其使用方法
Helming et al. Automatic assignment of work items
CN108509218B (zh) 基于Codepedia众包平台的第三方工具优化方法
CN109101414B (zh) 基于埋点数据的海量ui测试生成方法及其装置
Diamantopoulos et al. Semantically-enriched jira issue tracking data
WO2021164189A1 (zh) 应用场景驱动的Android应用微服务自动生成方法
Haraldsson et al. The use of automatic test data generation for genetic improvement in a live system
Li et al. DoKnowMe: Towards a domain knowledge-driven methodology for performance evaluation
US11562121B2 (en) AI driven content correction built on personas
Tramontana et al. Reverse engineering techniques: From web applications to rich Internet applications
CN113742466A (zh) 一种针对客服机器人未解决问题的自动收集、解答、归档的方法
Kuhrmann et al. Hacking or engineering? Towards an extended entrepreneurial software engineering model
CN113778541A (zh) 一种小程序生成方法、装置、电子设备和存储介质
Mohagheghi An approach for empirical evaluation of model-driven engineering in multiple dimensions
Amanquah et al. Rapid application development for mobile terminals
CN116225441B (zh) 一种在线编码系统的代码托管方法及系统
Nica On the improvement of the mutation score using distinguishing test cases
Fitzgerald et al. A study of the use of agile methods within intel
Ghazi Testing of heterogeneous systems

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