当前位置:主页 > 管理论文 > 移动网络论文 >

面向Git的代码评审系统的设计与实现

发布时间:2020-08-17 11:50
【摘要】:代码评审是软件工程中保证软件质量的有效手段。它常以多种方式进行。近年来,基于变更的代码评审方式成为主流。基于变更的代码评审通常借助工具完成。现有的代码评审工具的可定制性不足,且不具备评审人推荐功能,易用性不佳。针对现有代码评审工具的不足,本文将实现一套面向Git的代码评审系统,旨在为互联网企业提供一种轻量、便捷的代码评审工具,注重评审系统的通用性和可定制性,并提供推荐评审人的功能,为企业优化整个代码评审流程。为了实现上述功能,本文将整个系统划分为评审任务管理模块、评论管理模块和缺陷管理模块。其中,评审任务管理模块为系统最核心的模块,涵盖了评审任务配置和评审人推荐等重要功能。本文将评审任务配置分成附属信息配置、前置任务配置和评审规则配置三个部分。评审规则由条件和操作两部分组成。条件为对评审任务的某些属性的限制。系统提供了多种属性、限制和操作,用户可以按需配置,定制最合适的评审规则。另外,对于评审人推荐功能的实现,本文提出了一种基于变更文件关联词的评审人推荐算法Revtoken,并将其与已有的基于变更文件路径的评审人推荐算法Revfinder进行对比,证明Revtoken算法具有较好的评审人推荐效果,且十分高效,适用于代码评审系统。此外,系统实现了评论管理模块和缺陷管理模块分别对评审过程中的评论和缺陷进行管理,以便用户顺利高效地完成评审任务。在进行了需求分析和关键问题研究后,本文给出了该系统各个功能模块详细的设计与实现。之后设计了测试用例并对各个模块进行测试。测试结果证明该系统的设计与实现符合要求,最后进行了全文总结。
【学位授予单位】:北京邮电大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP311.52;TP393.09
【图文】:

实例图,实例,开发者,原理图


这种非侵入式的响应式系统将开发者从繁琐的DOM操作中解放出来,逡逑使得大多数情况下开发者仅需维护好数据模型。理解Vue的响应式原理,可以帮逡逑助开发者更好地搭建应用。图2-1展示了邋Vue的响应式实现细节。逡逑Trigger逡逑Component逦rerender逡逑Render逦^逦逡逑Function逦v逡逑''逡逑i逦f逦1逡逑i邋render邋-?、逦{逡逑、逦Collect邋/逡逑^逦as邋Dependency邋/逦,邋Notify逡逑‘‘一”、、、、/逡逑Virtual邋DOM邋Tree逡逑图2-1响应式原理图[17]逡逑如图2-1所示,在生成一个Vue实例时,Vue会检查开发者传给实例的data逡逑选项,通常data选项为一个普通的JavaScript对象。Vue会遍历这个对象的所有逡逑属性,并使用Object.defmeProperty方法给各个属性添加getter和setter函数,逡逑getter函数会在读取属性时被调用,setter函数会在写入属性时被调用。每个组件逡逑实例都对应一个的watcher实例,它会在组件渲染的过程中记录依赖项。当依赖逡逑项的setter被调用时,会通知watchei?重新计算,触发组件再次渲染。组

组件图,组件,页面,关系图


组件化是Vue中另一个重要的特性。组件是一种抽象,它提供了一种健壮的逡逑模型使得用户可以用一个个更小更简单的封装好的组件来搭建复杂的应用程序。逡逑几乎所有的应用界面都可以抽象成一个组件树,图2-2展示了一个界面与其对应逡逑的组件树的关系。逡逑K—-邋m\i邋M逡逑图2-2页面与组件树的关系图晸逡逑如图2-2所示,左边整个界面对应右边的整个组件树。左边页面可分成三部逡逑分,分别为上部分、左下部分和右下部分,分别对应右边组件树根元素下的三个逡逑子节点。左下部分的页面又包含深灰色标识的两部分,它们分别对应右边组件树逡逑的根元素的第二个子节点的两个子节点。同样右下部分的页面包含深灰色标识的逡逑三个部分,它们分别对应的右边组件树根元素的第三个子节点下的三个子节点。逡逑虽然Web组件规范中也有自定义元素,它和Vue组件非常类似,但Vue组逡逑件具备一些特有的功能,比如跨组件数据流、自定义事件通信等。Vue的这些特逡逑性都让前端开发变得更简单,代码的复用和维护也更加便捷。逡逑本文的面向Git的代码评审系统选择了邋Vue框架搭配Element_

任务管理,任务配置,任务模块,流程管理


[程操作记逡逑图3-2评审任务模块用例图逡逑如图3-2所示,评审任务管理被分成三个功能用例,分别为评审任务管理、逡逑任务配置管理和流程管理。逡逑评审任务管理是在任务层面上对评审任务进行管理,主要包含任务信息管理、逡逑任务状态管理、任务列表管理和评审人推荐。以下将依次对这些子功能用例进行逡逑需求分析:逡逑1)任务信息管理,任务信息包括评审任务本身的属性,例如评审名称、描逡逑述、评审内容等。这些信息一部分来自于用户在网页上的简单输入,另逡逑一部分,比如评审内容中的变更的文件列表,代码的差异视图等数据,逡逑则由服务端通过克隆仓库,执行Git命令行操作,解析操作结果得到。逡逑需要为用户提供这些信息的录入、修改与展示的功能。逡逑2)任务状态管理,任务从创建到结束,会经历几个阶段:1)待评审;2)逡逑评审中;3)等待新的Patch邋;邋4)已完成;5)关闭。这些状态会根据流逡逑程的推动而变化。系统需要根据评审流程的推动修改任务的状态,并将逡逑这个状态展示给用户

【相似文献】

相关期刊论文 前10条

1 张小鹏;赵逢禹;刘亚;;效力优化的代码评审者推荐模型[J];小型微型计算机系统;2018年11期

2 刘殷;软件代码评审的一种新方法[J];计算机与通信;1999年09期

3 王琨月;;谁的软件更安全[J];每周电脑报;2004年09期

4 朱振兴;;迷失在Scrum[J];软件世界;2009年10期

5 卢松;杨达;胡军;张潇;;基于时间和影响力因子的Github Pull Request评审人推荐[J];计算机系统应用;2016年12期

6 张战成;陆卫忠;任建平;付保川;;结合缺陷预防的软件测试教学改革探索[J];无锡职业技术学院学报;2014年06期

7 金戈;;代码重构的作用和时机[J];现代计算机(专业版);2015年02期

8 程振林,方金云,唐志敏;基于C++的软件编码阶段的质量保证方法和工具[J];计算机工程与应用;2005年16期

9 刘羚;;敏捷项目管理成绩斐然[J];软件和信息服务;2012年10期

10 冯大辉;;架构师接龙 邝宇恒VS.侯震宇[J];程序员;2010年10期

相关硕士学位论文 前7条

1 尤璐洁;面向Git的代码评审系统的设计与实现[D];北京邮电大学;2019年

2 李燕;软件质量保证方法的研究及在同行评审改进项目的应用[D];北京邮电大学;2011年

3 孙伟文;基于外包软件开发项目质量预测模型的设计与实现[D];复旦大学;2012年

4 李磊;产品监管系统开发中的软件测试[D];山东大学;2007年

5 高远;基于模型的代码自动化评审[D];南京大学;2012年

6 杨毅;过程驱动的软件配置管理平台的设计与实现[D];北京邮电大学;2012年

7 何剑涛;基于设计的代码自动评审方法[D];南京大学;2014年



本文编号:2795283

资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2795283.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户2fdbb***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com