diff --git a/class_topic_relation_tree.html b/class_topic_relation_tree.html
index bb537eb..a51a1c7 100644
--- a/class_topic_relation_tree.html
+++ b/class_topic_relation_tree.html
@@ -1,5 +1,5 @@
@@ -37,59 +37,50 @@ var option;
-myChart.showLoading();
-$(function(){
- data = {"name": "code clone", "papers": 1253, "level": 0, "description": "代码克隆相关子研究领域分析", "children": [{"name": "benchmark", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "benchmark evaluation", "description": "评估相关工作生成的benchmark是否有效", "level": 2, "papers": 2}, {"name": "dataset creation", "description": "1. 生成代码克隆的数据集,又可以称为benchmark creation\n2. 用于代码克隆检测算法的使用;辅助质量评估等\n3. 其他相关研究:研究benchmark生成时不同类型的rater对数据集构造的影响", "level": 2, "children": [{"name": "bug related clone dataset creation", "description": "构建可以引入bug的代码克隆,介绍形成数据库所使用到的各种方法", "level": 3, "papers": 1}], "papers": 16}, {"name": "clone benchmark", "description": "克隆的数据集,区别于dataset creation,这里没有创建过程", "level": 2, "papers": 3}], "papers": 21}, {"name": "clone analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "accidental clone", "description": "偶然克隆的相关分析文章,包括跨项目偶然克隆问题", "level": 2, "papers": 1}, {"name": "clone analysis in specific language", "description": "对一种编程语言的克隆分析,并不包括提出新方法这部分,提出新方法通过clone detection technique来表示", "level": 2, "papers": 4}, {"name": "analysis based on technique", "description": "1. 利用现有的克隆检测技术,进行分析,并没有提出新的改进的方法\n2. 例如:对开源软件师姐代码克隆检测的占比进行分析;对不同克隆检测方法的性能、适用范围进行对比分析(非文献综述);对手机应用中代码克隆情况进行分析;代码克隆与开发者行为关系;学生的抄袭模式;克隆覆盖率;工业软件使用代码克隆的负面影响;web应用克隆模式的研究;不同克隆检测粒度的对比;对不同Eclipse版本情况进行克隆分析;方阵系统的领域分析;中小企业的软件克隆分析", "level": 2, "children": [{"name": "discuss simple clones detection can help detect structural clones", "description": "套路了利用简单克隆辅助结构化克隆检测的可行性", "level": 3, "papers": 1}, {"name": "analysis of clone for healthcare software system - a case study", "description": "利用克隆检测技术分析医疗系统的代码重用性", "level": 3, "papers": 1}], "papers": 85}, {"name": "analysis buggy and non-buggy clone characteristics", "description": "分析有错误和没有错误的克隆的区别,以及对应的出错克隆的特征", "level": 2, "papers": 1}, {"name": "relationship analysis between clone stability and bug-proneness", "description": "研究克隆稳定性和易错性之间的关系", "level": 2, "papers": 1}, {"name": "clone and non-clone code", "description": "克隆代码和非克隆代码的对比分析;分析克隆代码是好是坏,使用各种指标度量其影响等;研究克隆与非克隆代码的分散性", "level": 2, "papers": 16}, {"name": "stackoverflow and github code reuse", "description": "分析了github中代码复用stackoverflow的情况,可以归为analysis based on technique", "level": 2, "papers": 1}, {"name": "different country student comparison", "description": "不同国家学生抄袭情况对比", "level": 2, "papers": 1}, {"name": "analyze the impace of cloned applications on the original authors", "description": "研究由于克隆软件导致原始开发者的收入有多少的降低", "level": 2, "papers": 1}, {"name": "analysis the landscape of cloned applications", "description": "对克隆应用在各个市场下的整体分析情况", "level": 2, "papers": 1}, {"name": "difference between source and compiled code clone detection", "description": "利用一个工具,研究在不同类型的代码上进行克隆检测,得到的结果会有什么不同", "level": 2, "papers": 1}, {"name": "bug and clone relation", "description": "研究bug和代码克隆之间是否存在相关性", "level": 2, "papers": 3}, {"name": "quality related clone analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 2, "children": [{"name": "technical debt analysis", "description": "克隆代码对软件技术债的影响", "level": 3, "papers": 1}, {"name": "analysis clone characteristic and software maintainability correlation", "description": "研究克隆特征与软件维护性之间的关系,软件维护可以分为5个子特征,克隆也可以分为if、for等特征,通过回归分析研究相关性", "level": 3, "papers": 2}, {"name": "clone influence on developer's bug fix task", "description": "通过调研,研究克隆信息对开发者修复bug速度、效率等方面有何影响", "level": 3, "papers": 1}, {"name": "anti-pattern and clone and asynchrony change pattern", "description": "研究三种坏气味的组合对软件错误的影响,与anti-pattern and clone类似", "level": 3, "papers": 1}, {"name": "anti-pattern and clone", "description": "研究两种坏气味对软件错误的影响,反模式和代码克隆", "level": 3, "papers": 1}, {"name": "bug analysis", "description": "1. 文章主要介绍不同类型的代码引入bug会有怎样的区别(例如:克隆代码比非克隆代码更容易引入bug;代码克隆引入的bug复现问题;克隆的什么特征和bug是相关的;小的克隆与正常规模的克隆在引入bug上的对比分析)\n2. 提示:该标签可能属于analysis based on technique,后续可能会进行标签的合并", "level": 3, "papers": 9}, {"name": "clone effect on software modularity", "description": "研究代码克隆对软件模块化的影响", "level": 3, "papers": 1}, {"name": "fault density analysis", "description": "代码克隆对软件错误密度的影响", "level": 3, "papers": 1}, {"name": "quantify interface clones and evaluate impact on interface design quality", "description": "研究接口克隆的存在情况,并评估接口克隆对接口质量的影响", "level": 3, "papers": 1}], "papers": 18}, {"name": "cross repository clone analysis", "description": "对跨项目的克隆情况进行研究分析", "level": 2, "papers": 2}, {"name": "test clone analysis", "description": "对软件中测试代码克隆进行实证研究,并得出一些结论,这可以划分到analysis based on technique", "level": 2, "papers": 1}, {"name": "analysis of causes of clone", "description": "研究学生抄袭的原因,分析出好的目的比较多", "level": 2, "papers": 1}, {"name": "code style influence on clone detection", "description": "研究编程风格对代码克隆的影响", "level": 2, "papers": 2}, {"name": "relationship analysis between domain-based coupling and clone", "description": "研究代码克隆与领域耦合之间的关系,其中领域耦合指的是领域级软件构件之间的相关性", "level": 2, "papers": 1}, {"name": "apply clone technique on real-world software system", "description": "将代码克隆技术应用到现实的软件系统中,并将得到的结果进行分析", "level": 2, "papers": 1}, {"name": "clone's impact on software maintenance", "description": "研究克隆对软件维护的影响,使用了9种克隆检测方法,为了规避单一检测方法所带来的问题,可以归属到analysis based on technique中", "level": 2, "papers": 2}, {"name": "software clone law", "description": "1. 研究各国法律对软件克隆的约束情况\n2. 对比各国法律在这一方面的不同之处", "level": 2, "papers": 1}, {"name": "interface similarity and clone relationship", "description": "分析研究接口相似性与代码克隆之间的相关性", "level": 2, "papers": 1}, {"name": "benefits and drawbacks of clone detection", "description": "研究克隆检测,例如学生抄袭检测的优缺点", "level": 2, "papers": 1}, {"name": "analysis of security-discordant clones", "description": "找到不安全的代码克隆后,分析此类代码克隆的特点以及存在的普遍性", "level": 2, "papers": 1}, {"name": "project context's influence on clone", "description": "项目上下文对克隆的影响,包括commit大小、数量以及开发者数量对clone的影响", "level": 2, "papers": 1}, {"name": "preprocessor annotation influence on clone", "description": "研究预处理指令,例如:#ifdef,对代码克隆的影响", "level": 2, "papers": 1}, {"name": "difference of clones", "description": "给出已经检测到的克隆之间的差异", "level": 2, "papers": 3}, {"name": "clone and developer difference", "description": "1. 研究可复用代码创建者的区别以及进行代码克隆操作的开发者之间的区别", "level": 2, "papers": 1}, {"name": "analysis of code clone in posts", "description": "研究克隆片段在post代码中的出现情况(以stackoverflow中对官方文档的克隆情况为例),并分析克隆代码随时间的演化情况", "level": 2, "papers": 1}, {"name": "comparison of different vectorization algorithms", "description": "比较不同向量化方法对构建代码克隆检测方法有什么影响", "level": 2, "papers": 1}, {"name": "syntactic difference of functional clones", "description": "研究功能型克隆在句法上有何不同", "level": 2, "papers": 1}, {"name": "influence of obfuscation on clone detection", "description": "研究混淆对克隆检测技术的影响,对比分析什么样的检测方法更具有鲁棒性", "level": 2, "papers": 3}, {"name": "different languages influence on code clone", "description": "研究不同编程语言下,代码克隆之间有什么区别", "level": 2, "papers": 1}, {"name": "clone in patches", "description": "分析补丁中的克隆情况", "level": 2, "papers": 1}, {"name": "practical impact of clone detection", "description": "1. 调研克隆检测在实际开发中的实际影响\n2. 包括:通过问卷调查的形式发现工业界中克隆检测对开发的影响", "level": 2, "papers": 1}, {"name": "structural clone vs simple clone", "description": "分析结构化克隆与单纯的代码片段克隆的区别", "level": 2, "papers": 2}, {"name": "research direction explanation", "description": "只是通过分析的方式对基于代码克隆结果的后续研究工作做了分析和展望,提出了可能的研究方向", "level": 2, "papers": 1}, {"name": "identifier similarity for cross-platform clone detection", "description": "分析通过标识符相似性进行跨平台代码克隆相似性检验的可行性", "level": 2, "papers": 1}, {"name": "parameter importance for LSA method in clone detection", "description": "研究克隆检测领域,潜在语意分析方法参数的设置对算法性能的影响,评估方法的有效性", "level": 2, "papers": 1}, {"name": "software metrics and clone correlation", "description": "评估软件中克隆是否存在,例如验证某些因素是否和软件中代码克隆的存在相关", "level": 2, "papers": 1}, {"name": "apply clone technique on industry application", "description": "将克隆检测技术应用到工业软件系统中,case study", "level": 2, "papers": 1}, {"name": "clone metrics comparison analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 2, "children": [{"name": "similarity metrics evaluation", "description": "评估度量代码克隆的各种方法,包括各种距离计算方式", "level": 3, "papers": 1}, {"name": "comparison of different distance measurement methods", "description": "比较不同距离计算方法对代码克隆刻画的区别", "level": 3, "papers": 2}], "papers": 3}, {"name": "influence of rearrange statement order on clone detection", "description": "修改代码中声明的顺序对于克隆检测的影响", "level": 2, "papers": 1}, {"name": "effect on software quality", "description": "研究代码克隆对软件质量的影响", "level": 2, "papers": 1}, {"name": "clone and developer intent", "description": "1. 文章对执行克隆的开发者的意图进行了分析;调研开发者对不同代码克隆方面的看法\n2. 采用的方法包括:采访、问卷调查等\n3. 其他:学生角度调研对代码抄袭的看法;stackoverflow中开发者对代码克隆的关注点", "level": 2, "children": [{"name": "clone categorization", "description": "例如:对有用和有害克隆的分类方法,根据用户的克隆目标进行分类,只是给出了分类标准taxonomy,通过对开发者的interview实现的", "level": 3, "papers": 1}, {"name": "clone usefulness", "description": "判断克隆是否为开发者关心的克隆,进而对克隆进行筛选", "level": 3, "papers": 1}], "papers": 14}, {"name": "challenge in clone detection", "description": "介绍一种克隆检测类型的现状和存在的问题,并没有给出明确的解决方案,因此区别于clone detection technique", "level": 2, "papers": 2}, {"name": "introduction and comparison of code clone and model clone", "description": "介绍并对比了代码克隆与模型克隆的区别", "level": 2, "papers": 1}, {"name": "cost of software maintainability", "description": "代码克隆带来的软件维护成本评估", "level": 2, "papers": 2}], "papers": 182}, {"name": "clone detection technique", "description": "1. 文章新创建了克隆检测技术;提出了对现有算法的改进;检索克隆来加速克隆检测;相似设计模式的检测;非连续性克隆的检测技术;android layout相似性检测;用于intermediate语言克隆检测的方法;有益克隆检测-beneficial clone detection\n2. 通过一些代码表示等手段提升了克隆检测效果\n3. 代码的中间表示形式:Source Code Concepts and Idioms", "level": 1, "children": [{"name": "buggy clone detection", "description": "检测系统中存在bug的克隆,与bug detection based on clone不同,这里是代码克隆检测技术的一个分支", "level": 2, "papers": 1}, {"name": "software similarity detection method", "description": "软件相似性的计算方法", "level": 2, "papers": 1}, {"name": "ontology representation of clone", "description": "利用克隆的本体表示方法,减少克隆检测的时间,可以算作一种辅助提升克隆检测技术的方法", "level": 2, "papers": 2}, {"name": "pattern mining", "description": "疑惑:代码克隆的模式具体指的是什么?((1) changing comments; (2) adding blank space lines; (3) renaming identifiers; (4) reordering statements; (5) inserting statements; and (6) control replacement (for example, substitute while with for). )", "level": 2, "papers": 1}, {"name": "collaborative pattern detection", "description": "利用代码克隆检测技术,检测协作实体的重复配置,是一种更高级别的克隆,可以算作克隆检测算法的一种", "level": 2, "papers": 1}, {"name": "metrics selection for clone", "description": "总结了相关工作中提到的各种度量问题,给出一种选择度量的方法,解决代码克隆检测问题", "level": 2, "papers": 1}, {"name": "software classification", "description": "对相似功能的软件进行分类,是否可以算作代码克隆?", "level": 2, "papers": 1}, {"name": "optimize clone technique configuration", "description": "1. 文章专注于如何找到最好的克隆检测工具或方法的参数配置信息", "level": 2, "papers": 3}, {"name": "code relative detection", "description": "具有相似运行时表现的代码片段", "level": 2, "papers": 1}, {"name": "code removal for clone detection", "description": "在进行代码克隆检测,如学生抄袭的时候,什么样的代码克隆片段需要被删除", "level": 2, "papers": 1}, {"name": "clone detection workbench", "description": "提出了自己的克隆检测流程,并与其他的克隆检测方法进行了对比", "level": 2, "papers": 1}, {"name": "clone clustering for optimizing clone detection results", "description": "通过克隆聚类的方式优化代码克隆检测结果", "level": 2, "papers": 2}, {"name": "clone clustering", "description": "1. 对克隆代码片段或文件进行聚类,clone set的聚类\n2. 形成clone聚类的报告,辅助克隆分析,研究克隆不同group之间的关联关系,辅助克隆管理", "level": 2, "papers": 1}, {"name": "clone filtering", "description": "对克隆进行过滤,按照用户的需求,对检测到的不必要的克隆进行过滤。", "level": 2, "papers": 1}], "papers": 727}, {"name": "clone evaluation", "description": "1. 提出方法或者框架对克隆检测工具进行测试\n2. 例如:基于big clone bench,有相关研究提出了测试框架,辅助计算各种类型下的召回率;评估学生复用代码的质量", "level": 1, "children": [{"name": "clone detection metrics", "description": "1. 文章介绍了代码克隆检测涉及到的各种度量\n2. 包括:准确率、召回率、如何计算相似度距离等", "level": 2, "papers": 2}, {"name": "code clone quality prediction", "description": "通过一些算法评估代码克隆的质量,质量包括很多维度", "level": 2, "papers": 1}], "papers": 28}, {"name": "clone evolution", "description": "1. 研究克隆随着软件版本的迭代有怎样的变化\n2. 相关的关键词有:geneology、evolution、propagation等\n3. 提示:该领域可能涉及到evolution pattern,进而研究不同pattern下是否会引入bug;克隆生命周期长短的研究;clone group mapping也是其中一个研究领域(Clone group mapping reflect how an clone group evolve from a previous version to the current version, is the core technology in the evolution of code clone across versions)", "level": 1, "children": [{"name": "code change inconsistency", "description": "1. 区别于clone evolution,这里表示一次修改检测到的不一致变化,并没有多个版本的演化问题;研究影响克隆一致性变更的因素;不一致的克隆变更与bug之间的关系\n2. 后续可以考虑是否合并到clone evolution", "level": 2, "papers": 8}, {"name": "predict consistency maintenance", "description": "预测代码克隆是否需要一致性维护;预测是否是一致变更的代码克隆", "level": 2, "papers": 6}, {"name": "clone stability", "description": "1. 克隆的稳定性,可以算作代码演化的子研究领域\n2. 表示不同种类的克隆代码其变化的频度以及保持不变的时间等\n3. 后续可能将这一部分合并到clone evolution中", "level": 2, "papers": 9}, {"name": "bug clone prediction", "description": "预测克隆中未来会引入bug的克隆,其实和genealogy有关系", "level": 2, "children": [{"name": "harmfulness prediction", "description": "在进行代码复用的同时预测代码的危害,帮助判断是否可以在该位置进行代码复用", "level": 3, "papers": 1}, {"name": "optimize training dataset of harmfulness clone prediction", "description": "在进行克隆危害预测时,通过一定的手段,优化需要进行训练的数据集,使数据集达到平衡状态", "level": 3, "papers": 1}], "papers": 3}, {"name": "evaluate clone detection tools's performance for co-change clone detection", "description": "评估传统克隆检测工具对共同变更的代码克隆的检测性能", "level": 2, "papers": 1}, {"name": "context bug analysis", "description": "代码克隆出现bug可能是因为没有复用到正确的上下文中,因此实际上这种文章也和clone evolution相关", "level": 2, "papers": 1}, {"name": "clone provenance", "description": "1. 构建克隆起源,溯源相关的文章\n2. 例如:构建不同仓库中克隆代码的链接;代码克隆的归属问题等", "level": 2, "children": [{"name": "link of clone", "description": "不同于clone provenance,这里并没有提到溯源的问题,只是在克隆之间建立关联关系,方便提示代码提供者和复用者", "level": 3, "papers": 1}], "papers": 5}], "papers": 134}, {"name": "clone management", "description": "1. 克隆管理相对与clone refactoring、clone visualization来说是更宏观的层面\n2. 根据文章694e3b049182d7fba448ee7c0ffff3d0的介绍,clone management其实包含了:clone rectoring、clone search、clone annotation、copy-paste support等\n3. 因此只有宏观介绍的文章才能属于clone management", "level": 1, "children": [{"name": "clone variant management", "description": "提出了克隆产品变体的管理框架,与软件产品线相关,唯一一篇文章是和软件变体管理有关的", "level": 2, "papers": 1}, {"name": "clone representation to manage clones", "description": "利用一种中间的优化表示形式方便进行克隆的管理", "level": 2, "papers": 2}, {"name": "clone mutation management mechanism", "description": "提出了一种克隆管理机制,可以将克隆与模型分开管理,使用VCL中间表示管理克隆突变", "level": 2, "papers": 1}, {"name": "clone model standardization", "description": "克隆模型的标准化,以及标准化存在的困难和限制", "level": 2, "children": [{"name": "conceptual framework for clone analysis", "description": "提出了克隆的概念框架,如何对克隆进行分析,在进行克隆的时候需要考虑哪些问题,从而帮助软件发展和软件复用", "level": 3, "papers": 1}, {"name": "common conceptual model based on user cases", "description": "利用wiki搜集利益相关者关注点,生成一个统一的代码克隆概念模型,包括:a shared decomposition of the problem domain, a standardized language for discussing code clone detection results, a well defined model to be used to generate a concrete exchange language, and a central model for which existing data formats can be documented relative to.为了更好地复现结果,互通结果。", "level": 3, "papers": 1}], "papers": 3}], "papers": 13}, {"name": "clone refactoring", "description": "1. 文章最终目标是对克隆进行重构(实现软件质量的提升等);什么样的克隆更容易引入bug;有文章将克隆片段中非克隆的statement拿出形成独立于克隆片段的代码语句;解决克隆重构的最优调度问题;评估重构需要的effort;克隆重构带来多少的代码减少分析\n2. 例如:克隆的删除方法、提出模板来重构克隆片段(形成aspect等)\n3. 对克隆提取相同的表示,进而对克隆代码进行改造,例如提取并构造相同的函数", "level": 1, "children": [{"name": "clone refactoring's influence on unit test case size", "description": "研究重构对单元测试用例大小的影响", "level": 2, "papers": 1}, {"name": "clone prioritization", "description": "为了加快软件维护,方便克隆管理,提出了基于各种指标下的克隆优先处理顺序的排序", "level": 2, "papers": 2}], "papers": 107}, {"name": "other fields based on clone detection technique", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "logging statement prediction", "description": "基于代码克隆方法的日志语句预测", "level": 2, "papers": 1}, {"name": "code recommendation", "description": "1. 文章可能利用了代码克隆技术找到了克隆代码,但最终是为了将代码推荐给开发者或使用者,帮助他们完成代码的复用;测试代码推荐\n2. 提示:代码推荐主要是针对复用,当然可能存在为克隆重构或修复提出的代码推荐方法,但那种文章的最终目的是克隆重构或修复", "level": 2, "papers": 6}, {"name": "component ranking", "description": "与应用排名不同,这里利用克隆检测技术进行组件的排名", "level": 2, "papers": 2}, {"name": "cyber attack detection", "description": "1. 网络攻击检测\n2. 例如:利用代码克隆检测技术生成相似程序,通过差异对比进行网络攻击检测", "level": 2, "papers": 1}, {"name": "application ranking", "description": "1. 利用代码克隆技术进行应用程序的排名", "level": 2, "papers": 1}, {"name": "vulnerability detection", "description": "1. 利用克隆技术对漏洞代码的检测,这里区别于恶意代码、恶意软件", "level": 2, "papers": 10}, {"name": "runtime complexity measurement", "description": "利用代码克隆对方法级别的运行时复杂性进行评估,算作代码克隆的应用", "level": 2, "papers": 1}, {"name": "bug localization", "description": "利用代码克隆技术对代码中的错误进行定位", "level": 2, "papers": 1}, {"name": "automatic comment generation", "description": "利用代码克隆技术,自动生成注释信息", "level": 2, "papers": 1}, {"name": "web service similarity detection", "description": "1. 使用代码克隆技术去检测web服务的相似性\n2. 例如:用nicad去检测web service description language的相似性,又名contextual clone", "level": 2, "papers": 1}, {"name": "evaluation of code translation", "description": "利用克隆检测技术来评估代码翻译的有效性", "level": 2, "papers": 1}, {"name": "software authorship", "description": "基于克隆检测的软件所属证明,算代码克隆的其他应用", "level": 2, "papers": 1}, {"name": "malware detection", "description": "1. 文章关于利用代码克隆检测技术对恶意软件或恶意软件代码进行检测\n2. 不同于代码克隆检测技术,该领域主要涉及恶意代码和软件,即通过已知的恶意代码片段去匹配目标看是否存在相同的恶意代码\n3. obfuscated code也属于恶意代码的一种,因此混淆代码的检测也是恶意代码的检测", "level": 2, "papers": 13}, {"name": "software defect prediction", "description": "使用软件相似性进行软件错误预测,其中软件相似性是基于代码克隆算法的,这可以作为克隆的应用", "level": 2, "papers": 1}, {"name": "software quality evaluation", "description": "利用一些指标评估软件质量,指标之一为代码克隆,因此算作代码克隆在其他领域的应用", "level": 2, "papers": 1}, {"name": "license violation detection", "description": "利用克隆检测对违反开源许可证的行为进行检测", "level": 2, "papers": 2}, {"name": "model pattern and anti-pattern detection", "description": "利用代码克隆技术识别模型模式和反模式", "level": 2, "papers": 1}, {"name": "code size estimation", "description": "利用代码克隆检测技术,理论上移除所有相似代码,通过函数调用形式替代,最终计算代码的实际大小", "level": 2, "papers": 1}, {"name": "program repair ingredients ranking", "description": "利用代码克隆技术,对程序修复的补丁进行排序,从而优化程序自动修复", "level": 2, "papers": 1}, {"name": "domain analysis", "description": "利用代码克隆技术进行领域分析:包括仿真系统", "level": 2, "papers": 1}, {"name": "code search", "description": "1. 文章可能利用了代码克隆检测方法或技术,但最终目的是为了解决代码搜索的问题", "level": 2, "papers": 19}, {"name": "fault prediction", "description": "代码克隆指标对于错误预测的影响研究;易错模块预测模型间的对比分析", "level": 2, "papers": 2}, {"name": "code quality", "description": "代码克隆一个度量指标,用来评估相关代码的质量", "level": 2, "papers": 2}, {"name": "clone based bug detection", "description": "通过相似的错误代码,并结合代码克隆检测技术,找到待检测代码中是否有相同的bug;或者研究如何提高基于克隆检测的bug识别方法的有效性和可用性", "level": 2, "papers": 2}, {"name": "ontology alignment", "description": "利用代码克隆技术,对代码的本体表示进行对齐", "level": 2, "papers": 1}, {"name": "model anti-pattern detection", "description": "利用模型克隆检测方法识别simlink中模型的反模式坏气味", "level": 2, "papers": 1}, {"name": "re-implementation detection", "description": "重新实现检测,猜测是接口的多次实现检测问题", "level": 2, "papers": 1}, {"name": "variability of mainstream and subsystems", "description": "利用代码克隆技术分析主版本库与子系统的移植变更问题,发现主版本中bug fix在子系统中没有被修复,这种问题普遍存在。关键词:reverse engineering variability", "level": 2, "papers": 1}, {"name": "repeat bug fix analysis based on clone detection", "description": "利用代码克隆检测识别重复的bug修复,并分析重复bug修复的特征", "level": 2, "papers": 1}, {"name": "software architecture quality evaluation", "description": "利用模型克隆检测评估软件体系结构质量", "level": 2, "papers": 1}, {"name": "code obfuscation technique", "description": "基于代码克隆技术的混淆代码技术,通过增加代码混淆,提升代码的安全性", "level": 2, "papers": 1}, {"name": "infer repository file structure modification history based on clone technique", "description": "利用克隆检测技术,推断代码仓库文件系统的历史变更情况", "level": 2, "papers": 2}, {"name": "link between discussion and code", "description": "利用代码克隆技术,及代码搜索的支撑技术,将issue中代码的讨论与项目中的源代码进行关联", "level": 2, "papers": 1}, {"name": "clone and own", "description": "软件生产产品线相关,表示利用克隆技术进行复用的方法", "level": 2, "papers": 2}, {"name": "code transplantation", "description": "利用代码克隆技术对代码进行移植,例如:测试用例的移植等", "level": 2, "papers": 2}, {"name": "application porting", "description": "应用程序的移植,利用代码克隆检测的方法,将程序移植到新的环境中", "level": 2, "papers": 1}, {"name": "legacy software reuse", "description": "旧版软件重用方法模型,利用代码克隆检测技术,对之前的软件进行复用", "level": 2, "papers": 1}, {"name": "clone avoidance", "description": "有文章通过copy-paste-modify的方法实现为ide的插件,让人在编程的时候就进行修改", "level": 2, "papers": 1}], "papers": 87}, {"name": "survey and tutorial", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "technical report", "description": "1. 是对之前相关文章的总结性分析研究\n2. 不是对克隆检测工具的对比研究(这一部分属于analysis based on technique)\n3. 没有严格遵循文献综述的基本规范和要求,并且自己没有声明是文献综述", "level": 2, "children": [{"name": "paper review", "description": "the literature review for code clone", "level": 3, "papers": 19}], "papers": 64}, {"name": "literature review", "description": "1. 文献综述的文章\n2. 提示:严格遵循文献综述的流程 或 在标题等地方明确描述该文章为文献综述(literature review)\n3. 包括工具类、克隆可视化、克隆演化、克隆重构、克隆管理、介绍抄袭检测中存在的问题", "level": 2, "papers": 19}], "papers": 83}, {"name": "clone visualization", "description": "1. 文章提到了自己创建的代码克隆相关可视化技术\n2. 提示:这里的可视化是文章的主要贡献,该可视化工具或技术可能解决不同的问题,包括:代码克隆演化分析、代码克隆重构等。但文章的主要贡献还是仅限于可视化工具而已\n3. 包括:用户关系的use case是什么并如何可视化这些use case", "level": 1, "papers": 51}]}
- myChart.hideLoading();
+var data = {"name": "code clone", "papers": 1253, "level": 0, "description": "代码克隆相关子研究领域分析", "children": [{"name": "benchmark", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "benchmark evaluation", "description": "评估相关工作生成的benchmark是否有效", "level": 2, "papers": 2}, {"name": "dataset creation", "description": "1. 生成代码克隆的数据集,又可以称为benchmark creation\n2. 用于代码克隆检测算法的使用;辅助质量评估等\n3. 其他相关研究:研究benchmark生成时不同类型的rater对数据集构造的影响", "level": 2, "children": [{"name": "bug related clone dataset creation", "description": "构建可以引入bug的代码克隆,介绍形成数据库所使用到的各种方法", "level": 3, "papers": 1}], "papers": 16}, {"name": "clone benchmark", "description": "克隆的数据集,区别于dataset creation,这里没有创建过程", "level": 2, "papers": 3}], "papers": 21}, {"name": "clone analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "accidental clone", "description": "偶然克隆的相关分析文章,包括跨项目偶然克隆问题", "level": 2, "papers": 1}, {"name": "clone analysis in specific language", "description": "对一种编程语言的克隆分析,并不包括提出新方法这部分,提出新方法通过clone detection technique来表示", "level": 2, "papers": 4}, {"name": "analysis based on technique", "description": "1. 利用现有的克隆检测技术,进行分析,并没有提出新的改进的方法\n2. 例如:对开源软件师姐代码克隆检测的占比进行分析;对不同克隆检测方法的性能、适用范围进行对比分析(非文献综述);对手机应用中代码克隆情况进行分析;代码克隆与开发者行为关系;学生的抄袭模式;克隆覆盖率;工业软件使用代码克隆的负面影响;web应用克隆模式的研究;不同克隆检测粒度的对比;对不同Eclipse版本情况进行克隆分析;方阵系统的领域分析;中小企业的软件克隆分析", "level": 2, "children": [{"name": "discuss simple clones detection can help detect structural clones", "description": "套路了利用简单克隆辅助结构化克隆检测的可行性", "level": 3, "papers": 1}, {"name": "analysis of clone for healthcare software system - a case study", "description": "利用克隆检测技术分析医疗系统的代码重用性", "level": 3, "papers": 1}], "papers": 85}, {"name": "analysis buggy and non-buggy clone characteristics", "description": "分析有错误和没有错误的克隆的区别,以及对应的出错克隆的特征", "level": 2, "papers": 1}, {"name": "relationship analysis between clone stability and bug-proneness", "description": "研究克隆稳定性和易错性之间的关系", "level": 2, "papers": 1}, {"name": "clone and non-clone code", "description": "克隆代码和非克隆代码的对比分析;分析克隆代码是好是坏,使用各种指标度量其影响等;研究克隆与非克隆代码的分散性", "level": 2, "papers": 16}, {"name": "stackoverflow and github code reuse", "description": "分析了github中代码复用stackoverflow的情况,可以归为analysis based on technique", "level": 2, "papers": 1}, {"name": "different country student comparison", "description": "不同国家学生抄袭情况对比", "level": 2, "papers": 1}, {"name": "analyze the impace of cloned applications on the original authors", "description": "研究由于克隆软件导致原始开发者的收入有多少的降低", "level": 2, "papers": 1}, {"name": "analysis the landscape of cloned applications", "description": "对克隆应用在各个市场下的整体分析情况", "level": 2, "papers": 1}, {"name": "difference between source and compiled code clone detection", "description": "利用一个工具,研究在不同类型的代码上进行克隆检测,得到的结果会有什么不同", "level": 2, "papers": 1}, {"name": "bug and clone relation", "description": "研究bug和代码克隆之间是否存在相关性", "level": 2, "papers": 3}, {"name": "quality related clone analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 2, "children": [{"name": "technical debt analysis", "description": "克隆代码对软件技术债的影响", "level": 3, "papers": 1}, {"name": "analysis clone characteristic and software maintainability correlation", "description": "研究克隆特征与软件维护性之间的关系,软件维护可以分为5个子特征,克隆也可以分为if、for等特征,通过回归分析研究相关性", "level": 3, "papers": 2}, {"name": "clone influence on developer's bug fix task", "description": "通过调研,研究克隆信息对开发者修复bug速度、效率等方面有何影响", "level": 3, "papers": 1}, {"name": "anti-pattern and clone and asynchrony change pattern", "description": "研究三种坏气味的组合对软件错误的影响,与anti-pattern and clone类似", "level": 3, "papers": 1}, {"name": "anti-pattern and clone", "description": "研究两种坏气味对软件错误的影响,反模式和代码克隆", "level": 3, "papers": 1}, {"name": "bug analysis", "description": "1. 文章主要介绍不同类型的代码引入bug会有怎样的区别(例如:克隆代码比非克隆代码更容易引入bug;代码克隆引入的bug复现问题;克隆的什么特征和bug是相关的;小的克隆与正常规模的克隆在引入bug上的对比分析)\n2. 提示:该标签可能属于analysis based on technique,后续可能会进行标签的合并", "level": 3, "papers": 9}, {"name": "clone effect on software modularity", "description": "研究代码克隆对软件模块化的影响", "level": 3, "papers": 1}, {"name": "fault density analysis", "description": "代码克隆对软件错误密度的影响", "level": 3, "papers": 1}, {"name": "quantify interface clones and evaluate impact on interface design quality", "description": "研究接口克隆的存在情况,并评估接口克隆对接口质量的影响", "level": 3, "papers": 1}], "papers": 18}, {"name": "cross repository clone analysis", "description": "对跨项目的克隆情况进行研究分析", "level": 2, "papers": 2}, {"name": "test clone analysis", "description": "对软件中测试代码克隆进行实证研究,并得出一些结论,这可以划分到analysis based on technique", "level": 2, "papers": 1}, {"name": "analysis of causes of clone", "description": "研究学生抄袭的原因,分析出好的目的比较多", "level": 2, "papers": 1}, {"name": "code style influence on clone detection", "description": "研究编程风格对代码克隆的影响", "level": 2, "papers": 2}, {"name": "relationship analysis between domain-based coupling and clone", "description": "研究代码克隆与领域耦合之间的关系,其中领域耦合指的是领域级软件构件之间的相关性", "level": 2, "papers": 1}, {"name": "apply clone technique on real-world software system", "description": "将代码克隆技术应用到现实的软件系统中,并将得到的结果进行分析", "level": 2, "papers": 1}, {"name": "clone's impact on software maintenance", "description": "研究克隆对软件维护的影响,使用了9种克隆检测方法,为了规避单一检测方法所带来的问题,可以归属到analysis based on technique中", "level": 2, "papers": 2}, {"name": "software clone law", "description": "1. 研究各国法律对软件克隆的约束情况\n2. 对比各国法律在这一方面的不同之处", "level": 2, "papers": 1}, {"name": "interface similarity and clone relationship", "description": "分析研究接口相似性与代码克隆之间的相关性", "level": 2, "papers": 1}, {"name": "benefits and drawbacks of clone detection", "description": "研究克隆检测,例如学生抄袭检测的优缺点", "level": 2, "papers": 1}, {"name": "analysis of security-discordant clones", "description": "找到不安全的代码克隆后,分析此类代码克隆的特点以及存在的普遍性", "level": 2, "papers": 1}, {"name": "project context's influence on clone", "description": "项目上下文对克隆的影响,包括commit大小、数量以及开发者数量对clone的影响", "level": 2, "papers": 1}, {"name": "preprocessor annotation influence on clone", "description": "研究预处理指令,例如:#ifdef,对代码克隆的影响", "level": 2, "papers": 1}, {"name": "difference of clones", "description": "给出已经检测到的克隆之间的差异", "level": 2, "papers": 3}, {"name": "clone and developer difference", "description": "1. 研究可复用代码创建者的区别以及进行代码克隆操作的开发者之间的区别", "level": 2, "papers": 1}, {"name": "analysis of code clone in posts", "description": "研究克隆片段在post代码中的出现情况(以stackoverflow中对官方文档的克隆情况为例),并分析克隆代码随时间的演化情况", "level": 2, "papers": 1}, {"name": "comparison of different vectorization algorithms", "description": "比较不同向量化方法对构建代码克隆检测方法有什么影响", "level": 2, "papers": 1}, {"name": "syntactic difference of functional clones", "description": "研究功能型克隆在句法上有何不同", "level": 2, "papers": 1}, {"name": "influence of obfuscation on clone detection", "description": "研究混淆对克隆检测技术的影响,对比分析什么样的检测方法更具有鲁棒性", "level": 2, "papers": 3}, {"name": "different languages influence on code clone", "description": "研究不同编程语言下,代码克隆之间有什么区别", "level": 2, "papers": 1}, {"name": "clone in patches", "description": "分析补丁中的克隆情况", "level": 2, "papers": 1}, {"name": "practical impact of clone detection", "description": "1. 调研克隆检测在实际开发中的实际影响\n2. 包括:通过问卷调查的形式发现工业界中克隆检测对开发的影响", "level": 2, "papers": 1}, {"name": "structural clone vs simple clone", "description": "分析结构化克隆与单纯的代码片段克隆的区别", "level": 2, "papers": 2}, {"name": "research direction explanation", "description": "只是通过分析的方式对基于代码克隆结果的后续研究工作做了分析和展望,提出了可能的研究方向", "level": 2, "papers": 1}, {"name": "identifier similarity for cross-platform clone detection", "description": "分析通过标识符相似性进行跨平台代码克隆相似性检验的可行性", "level": 2, "papers": 1}, {"name": "parameter importance for LSA method in clone detection", "description": "研究克隆检测领域,潜在语意分析方法参数的设置对算法性能的影响,评估方法的有效性", "level": 2, "papers": 1}, {"name": "software metrics and clone correlation", "description": "评估软件中克隆是否存在,例如验证某些因素是否和软件中代码克隆的存在相关", "level": 2, "papers": 1}, {"name": "apply clone technique on industry application", "description": "将克隆检测技术应用到工业软件系统中,case study", "level": 2, "papers": 1}, {"name": "clone metrics comparison analysis", "description": "卡片分类中通过子卡片整合的类别", "level": 2, "children": [{"name": "similarity metrics evaluation", "description": "评估度量代码克隆的各种方法,包括各种距离计算方式", "level": 3, "papers": 1}, {"name": "comparison of different distance measurement methods", "description": "比较不同距离计算方法对代码克隆刻画的区别", "level": 3, "papers": 2}], "papers": 3}, {"name": "influence of rearrange statement order on clone detection", "description": "修改代码中声明的顺序对于克隆检测的影响", "level": 2, "papers": 1}, {"name": "effect on software quality", "description": "研究代码克隆对软件质量的影响", "level": 2, "papers": 1}, {"name": "clone and developer intent", "description": "1. 文章对执行克隆的开发者的意图进行了分析;调研开发者对不同代码克隆方面的看法\n2. 采用的方法包括:采访、问卷调查等\n3. 其他:学生角度调研对代码抄袭的看法;stackoverflow中开发者对代码克隆的关注点", "level": 2, "children": [{"name": "clone categorization", "description": "例如:对有用和有害克隆的分类方法,根据用户的克隆目标进行分类,只是给出了分类标准taxonomy,通过对开发者的interview实现的", "level": 3, "papers": 1}, {"name": "clone usefulness", "description": "判断克隆是否为开发者关心的克隆,进而对克隆进行筛选", "level": 3, "papers": 1}], "papers": 14}, {"name": "challenge in clone detection", "description": "介绍一种克隆检测类型的现状和存在的问题,并没有给出明确的解决方案,因此区别于clone detection technique", "level": 2, "papers": 2}, {"name": "introduction and comparison of code clone and model clone", "description": "介绍并对比了代码克隆与模型克隆的区别", "level": 2, "papers": 1}, {"name": "cost of software maintainability", "description": "代码克隆带来的软件维护成本评估", "level": 2, "papers": 2}], "papers": 182}, {"name": "clone detection technique", "description": "1. 文章新创建了克隆检测技术;提出了对现有算法的改进;检索克隆来加速克隆检测;相似设计模式的检测;非连续性克隆的检测技术;android layout相似性检测;用于intermediate语言克隆检测的方法;有益克隆检测-beneficial clone detection\n2. 通过一些代码表示等手段提升了克隆检测效果\n3. 代码的中间表示形式:Source Code Concepts and Idioms", "level": 1, "children": [{"name": "buggy clone detection", "description": "检测系统中存在bug的克隆,与bug detection based on clone不同,这里是代码克隆检测技术的一个分支", "level": 2, "papers": 1}, {"name": "software similarity detection method", "description": "软件相似性的计算方法", "level": 2, "papers": 1}, {"name": "ontology representation of clone", "description": "利用克隆的本体表示方法,减少克隆检测的时间,可以算作一种辅助提升克隆检测技术的方法", "level": 2, "papers": 2}, {"name": "pattern mining", "description": "疑惑:代码克隆的模式具体指的是什么?((1) changing comments; (2) adding blank space lines; (3) renaming identifiers; (4) reordering statements; (5) inserting statements; and (6) control replacement (for example, substitute while with for). )", "level": 2, "papers": 1}, {"name": "collaborative pattern detection", "description": "利用代码克隆检测技术,检测协作实体的重复配置,是一种更高级别的克隆,可以算作克隆检测算法的一种", "level": 2, "papers": 1}, {"name": "metrics selection for clone", "description": "总结了相关工作中提到的各种度量问题,给出一种选择度量的方法,解决代码克隆检测问题", "level": 2, "papers": 1}, {"name": "software classification", "description": "对相似功能的软件进行分类,是否可以算作代码克隆?", "level": 2, "papers": 1}, {"name": "optimize clone technique configuration", "description": "1. 文章专注于如何找到最好的克隆检测工具或方法的参数配置信息", "level": 2, "papers": 3}, {"name": "code relative detection", "description": "具有相似运行时表现的代码片段", "level": 2, "papers": 1}, {"name": "code removal for clone detection", "description": "在进行代码克隆检测,如学生抄袭的时候,什么样的代码克隆片段需要被删除", "level": 2, "papers": 1}, {"name": "clone detection workbench", "description": "提出了自己的克隆检测流程,并与其他的克隆检测方法进行了对比", "level": 2, "papers": 1}, {"name": "clone clustering for optimizing clone detection results", "description": "通过克隆聚类的方式优化代码克隆检测结果", "level": 2, "papers": 2}, {"name": "clone clustering", "description": "1. 对克隆代码片段或文件进行聚类,clone set的聚类\n2. 形成clone聚类的报告,辅助克隆分析,研究克隆不同group之间的关联关系,辅助克隆管理", "level": 2, "papers": 1}, {"name": "clone filtering", "description": "对克隆进行过滤,按照用户的需求,对检测到的不必要的克隆进行过滤。", "level": 2, "papers": 1}], "papers": 727}, {"name": "clone evaluation", "description": "1. 提出方法或者框架对克隆检测工具进行测试\n2. 例如:基于big clone bench,有相关研究提出了测试框架,辅助计算各种类型下的召回率;评估学生复用代码的质量", "level": 1, "children": [{"name": "clone detection metrics", "description": "1. 文章介绍了代码克隆检测涉及到的各种度量\n2. 包括:准确率、召回率、如何计算相似度距离等", "level": 2, "papers": 2}, {"name": "code clone quality prediction", "description": "通过一些算法评估代码克隆的质量,质量包括很多维度", "level": 2, "papers": 1}], "papers": 28}, {"name": "clone evolution", "description": "1. 研究克隆随着软件版本的迭代有怎样的变化\n2. 相关的关键词有:geneology、evolution、propagation等\n3. 提示:该领域可能涉及到evolution pattern,进而研究不同pattern下是否会引入bug;克隆生命周期长短的研究;clone group mapping也是其中一个研究领域(Clone group mapping reflect how an clone group evolve from a previous version to the current version, is the core technology in the evolution of code clone across versions)", "level": 1, "children": [{"name": "code change inconsistency", "description": "1. 区别于clone evolution,这里表示一次修改检测到的不一致变化,并没有多个版本的演化问题;研究影响克隆一致性变更的因素;不一致的克隆变更与bug之间的关系\n2. 后续可以考虑是否合并到clone evolution", "level": 2, "papers": 8}, {"name": "predict consistency maintenance", "description": "预测代码克隆是否需要一致性维护;预测是否是一致变更的代码克隆", "level": 2, "papers": 6}, {"name": "clone stability", "description": "1. 克隆的稳定性,可以算作代码演化的子研究领域\n2. 表示不同种类的克隆代码其变化的频度以及保持不变的时间等\n3. 后续可能将这一部分合并到clone evolution中", "level": 2, "papers": 9}, {"name": "bug clone prediction", "description": "预测克隆中未来会引入bug的克隆,其实和genealogy有关系", "level": 2, "children": [{"name": "harmfulness prediction", "description": "在进行代码复用的同时预测代码的危害,帮助判断是否可以在该位置进行代码复用", "level": 3, "papers": 1}, {"name": "optimize training dataset of harmfulness clone prediction", "description": "在进行克隆危害预测时,通过一定的手段,优化需要进行训练的数据集,使数据集达到平衡状态", "level": 3, "papers": 1}], "papers": 3}, {"name": "evaluate clone detection tools's performance for co-change clone detection", "description": "评估传统克隆检测工具对共同变更的代码克隆的检测性能", "level": 2, "papers": 1}, {"name": "context bug analysis", "description": "代码克隆出现bug可能是因为没有复用到正确的上下文中,因此实际上这种文章也和clone evolution相关", "level": 2, "papers": 1}, {"name": "clone provenance", "description": "1. 构建克隆起源,溯源相关的文章\n2. 例如:构建不同仓库中克隆代码的链接;代码克隆的归属问题等", "level": 2, "children": [{"name": "link of clone", "description": "不同于clone provenance,这里并没有提到溯源的问题,只是在克隆之间建立关联关系,方便提示代码提供者和复用者", "level": 3, "papers": 1}], "papers": 5}], "papers": 134}, {"name": "clone management", "description": "1. 克隆管理相对与clone refactoring、clone visualization来说是更宏观的层面\n2. 根据文章694e3b049182d7fba448ee7c0ffff3d0的介绍,clone management其实包含了:clone rectoring、clone search、clone annotation、copy-paste support等\n3. 因此只有宏观介绍的文章才能属于clone management", "level": 1, "children": [{"name": "clone variant management", "description": "提出了克隆产品变体的管理框架,与软件产品线相关,唯一一篇文章是和软件变体管理有关的", "level": 2, "papers": 1}, {"name": "clone representation to manage clones", "description": "利用一种中间的优化表示形式方便进行克隆的管理", "level": 2, "papers": 2}, {"name": "clone mutation management mechanism", "description": "提出了一种克隆管理机制,可以将克隆与模型分开管理,使用VCL中间表示管理克隆突变", "level": 2, "papers": 1}, {"name": "clone model standardization", "description": "克隆模型的标准化,以及标准化存在的困难和限制", "level": 2, "children": [{"name": "conceptual framework for clone analysis", "description": "提出了克隆的概念框架,如何对克隆进行分析,在进行克隆的时候需要考虑哪些问题,从而帮助软件发展和软件复用", "level": 3, "papers": 1}, {"name": "common conceptual model based on user cases", "description": "利用wiki搜集利益相关者关注点,生成一个统一的代码克隆概念模型,包括:a shared decomposition of the problem domain, a standardized language for discussing code clone detection results, a well defined model to be used to generate a concrete exchange language, and a central model for which existing data formats can be documented relative to.为了更好地复现结果,互通结果。", "level": 3, "papers": 1}], "papers": 3}], "papers": 13}, {"name": "clone refactoring", "description": "1. 文章最终目标是对克隆进行重构(实现软件质量的提升等);什么样的克隆更容易引入bug;有文章将克隆片段中非克隆的statement拿出形成独立于克隆片段的代码语句;解决克隆重构的最优调度问题;评估重构需要的effort;克隆重构带来多少的代码减少分析\n2. 例如:克隆的删除方法、提出模板来重构克隆片段(形成aspect等)\n3. 对克隆提取相同的表示,进而对克隆代码进行改造,例如提取并构造相同的函数", "level": 1, "children": [{"name": "clone refactoring's influence on unit test case size", "description": "研究重构对单元测试用例大小的影响", "level": 2, "papers": 1}, {"name": "clone prioritization", "description": "为了加快软件维护,方便克隆管理,提出了基于各种指标下的克隆优先处理顺序的排序", "level": 2, "papers": 2}], "papers": 107}, {"name": "other fields based on clone detection technique", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "logging statement prediction", "description": "基于代码克隆方法的日志语句预测", "level": 2, "papers": 1}, {"name": "code recommendation", "description": "1. 文章可能利用了代码克隆技术找到了克隆代码,但最终是为了将代码推荐给开发者或使用者,帮助他们完成代码的复用;测试代码推荐\n2. 提示:代码推荐主要是针对复用,当然可能存在为克隆重构或修复提出的代码推荐方法,但那种文章的最终目的是克隆重构或修复", "level": 2, "papers": 6}, {"name": "component ranking", "description": "与应用排名不同,这里利用克隆检测技术进行组件的排名", "level": 2, "papers": 2}, {"name": "cyber attack detection", "description": "1. 网络攻击检测\n2. 例如:利用代码克隆检测技术生成相似程序,通过差异对比进行网络攻击检测", "level": 2, "papers": 1}, {"name": "application ranking", "description": "1. 利用代码克隆技术进行应用程序的排名", "level": 2, "papers": 1}, {"name": "vulnerability detection", "description": "1. 利用克隆技术对漏洞代码的检测,这里区别于恶意代码、恶意软件", "level": 2, "papers": 10}, {"name": "runtime complexity measurement", "description": "利用代码克隆对方法级别的运行时复杂性进行评估,算作代码克隆的应用", "level": 2, "papers": 1}, {"name": "bug localization", "description": "利用代码克隆技术对代码中的错误进行定位", "level": 2, "papers": 1}, {"name": "automatic comment generation", "description": "利用代码克隆技术,自动生成注释信息", "level": 2, "papers": 1}, {"name": "web service similarity detection", "description": "1. 使用代码克隆技术去检测web服务的相似性\n2. 例如:用nicad去检测web service description language的相似性,又名contextual clone", "level": 2, "papers": 1}, {"name": "evaluation of code translation", "description": "利用克隆检测技术来评估代码翻译的有效性", "level": 2, "papers": 1}, {"name": "software authorship", "description": "基于克隆检测的软件所属证明,算代码克隆的其他应用", "level": 2, "papers": 1}, {"name": "malware detection", "description": "1. 文章关于利用代码克隆检测技术对恶意软件或恶意软件代码进行检测\n2. 不同于代码克隆检测技术,该领域主要涉及恶意代码和软件,即通过已知的恶意代码片段去匹配目标看是否存在相同的恶意代码\n3. obfuscated code也属于恶意代码的一种,因此混淆代码的检测也是恶意代码的检测", "level": 2, "papers": 13}, {"name": "software defect prediction", "description": "使用软件相似性进行软件错误预测,其中软件相似性是基于代码克隆算法的,这可以作为克隆的应用", "level": 2, "papers": 1}, {"name": "software quality evaluation", "description": "利用一些指标评估软件质量,指标之一为代码克隆,因此算作代码克隆在其他领域的应用", "level": 2, "papers": 1}, {"name": "license violation detection", "description": "利用克隆检测对违反开源许可证的行为进行检测", "level": 2, "papers": 2}, {"name": "model pattern and anti-pattern detection", "description": "利用代码克隆技术识别模型模式和反模式", "level": 2, "papers": 1}, {"name": "code size estimation", "description": "利用代码克隆检测技术,理论上移除所有相似代码,通过函数调用形式替代,最终计算代码的实际大小", "level": 2, "papers": 1}, {"name": "program repair ingredients ranking", "description": "利用代码克隆技术,对程序修复的补丁进行排序,从而优化程序自动修复", "level": 2, "papers": 1}, {"name": "domain analysis", "description": "利用代码克隆技术进行领域分析:包括仿真系统", "level": 2, "papers": 1}, {"name": "code search", "description": "1. 文章可能利用了代码克隆检测方法或技术,但最终目的是为了解决代码搜索的问题", "level": 2, "papers": 19}, {"name": "fault prediction", "description": "代码克隆指标对于错误预测的影响研究;易错模块预测模型间的对比分析", "level": 2, "papers": 2}, {"name": "code quality", "description": "代码克隆一个度量指标,用来评估相关代码的质量", "level": 2, "papers": 2}, {"name": "clone based bug detection", "description": "通过相似的错误代码,并结合代码克隆检测技术,找到待检测代码中是否有相同的bug;或者研究如何提高基于克隆检测的bug识别方法的有效性和可用性", "level": 2, "papers": 2}, {"name": "ontology alignment", "description": "利用代码克隆技术,对代码的本体表示进行对齐", "level": 2, "papers": 1}, {"name": "model anti-pattern detection", "description": "利用模型克隆检测方法识别simlink中模型的反模式坏气味", "level": 2, "papers": 1}, {"name": "re-implementation detection", "description": "重新实现检测,猜测是接口的多次实现检测问题", "level": 2, "papers": 1}, {"name": "variability of mainstream and subsystems", "description": "利用代码克隆技术分析主版本库与子系统的移植变更问题,发现主版本中bug fix在子系统中没有被修复,这种问题普遍存在。关键词:reverse engineering variability", "level": 2, "papers": 1}, {"name": "repeat bug fix analysis based on clone detection", "description": "利用代码克隆检测识别重复的bug修复,并分析重复bug修复的特征", "level": 2, "papers": 1}, {"name": "software architecture quality evaluation", "description": "利用模型克隆检测评估软件体系结构质量", "level": 2, "papers": 1}, {"name": "code obfuscation technique", "description": "基于代码克隆技术的混淆代码技术,通过增加代码混淆,提升代码的安全性", "level": 2, "papers": 1}, {"name": "infer repository file structure modification history based on clone technique", "description": "利用克隆检测技术,推断代码仓库文件系统的历史变更情况", "level": 2, "papers": 2}, {"name": "link between discussion and code", "description": "利用代码克隆技术,及代码搜索的支撑技术,将issue中代码的讨论与项目中的源代码进行关联", "level": 2, "papers": 1}, {"name": "clone and own", "description": "软件生产产品线相关,表示利用克隆技术进行复用的方法", "level": 2, "papers": 2}, {"name": "code transplantation", "description": "利用代码克隆技术对代码进行移植,例如:测试用例的移植等", "level": 2, "papers": 2}, {"name": "application porting", "description": "应用程序的移植,利用代码克隆检测的方法,将程序移植到新的环境中", "level": 2, "papers": 1}, {"name": "legacy software reuse", "description": "旧版软件重用方法模型,利用代码克隆检测技术,对之前的软件进行复用", "level": 2, "papers": 1}, {"name": "clone avoidance", "description": "有文章通过copy-paste-modify的方法实现为ide的插件,让人在编程的时候就进行修改", "level": 2, "papers": 1}], "papers": 87}, {"name": "survey and tutorial", "description": "卡片分类中通过子卡片整合的类别", "level": 1, "children": [{"name": "technical report", "description": "1. 是对之前相关文章的总结性分析研究\n2. 不是对克隆检测工具的对比研究(这一部分属于analysis based on technique)\n3. 没有严格遵循文献综述的基本规范和要求,并且自己没有声明是文献综述", "level": 2, "children": [{"name": "paper review", "description": "the literature review for code clone", "level": 3, "papers": 19}], "papers": 64}, {"name": "literature review", "description": "1. 文献综述的文章\n2. 提示:严格遵循文献综述的流程 或 在标题等地方明确描述该文章为文献综述(literature review)\n3. 包括工具类、克隆可视化、克隆演化、克隆重构、克隆管理、介绍抄袭检测中存在的问题", "level": 2, "papers": 19}], "papers": 83}, {"name": "clone visualization", "description": "1. 文章提到了自己创建的代码克隆相关可视化技术\n2. 提示:这里的可视化是文章的主要贡献,该可视化工具或技术可能解决不同的问题,包括:代码克隆演化分析、代码克隆重构等。但文章的主要贡献还是仅限于可视化工具而已\n3. 包括:用户关系的use case是什么并如何可视化这些use case", "level": 1, "papers": 51}]}
+var option = {
+ tooltip: {
+ trigger: 'item',
+ triggerOn: 'mousemove'
+ },
+ series: [
+ {
+ type: 'tree',
- data.children.forEach(function (datum, index) {
- index % 2 === 0 && (datum.collapsed = true);
- });
+ data: [data],
- myChart.setOption(option = {
- tooltip: {
- trigger: 'item',
- triggerOn: 'mousemove'
- },
- series: [
- {
- type: 'tree',
+ top: '1%',
+ left: '7%',
+ bottom: '1%',
+ right: '20%',
- data: [data],
+ symbolSize: 7,
- top: '1%',
- left: '7%',
- bottom: '1%',
- right: '20%',
-
- symbolSize: 7,
+ label: {
+ position: 'left',
+ verticalAlign: 'middle',
+ align: 'right',
+ fontSize: 9
+ },
+ leaves: {
label: {
- position: 'left',
+ position: 'right',
verticalAlign: 'middle',
- align: 'right',
- fontSize: 12
- },
+ align: 'left'
+ }
+ },
- leaves: {
- label: {
- position: 'right',
- verticalAlign: 'middle',
- align: 'left'
- }
- },
+ emphasis: {
+ focus: 'descendant'
+ },
- emphasis: {
- focus: 'descendant'
- },
-
- expandAndCollapse: true,
- animationDuration: 550,
- animationDurationUpdate: 750
- }
- ]
- });
-});
+ expandAndCollapse: true,
+ animationDuration: 550,
+ animationDurationUpdate: 750
+ }
+ ]
+};
if (option && typeof option === 'object') {
myChart.setOption(option);