update appendix

This commit is contained in:
zhangxunhui 2021-06-30 23:42:30 +08:00
parent f5557daee5
commit fdd44bd5d0
7 changed files with 1823 additions and 1465 deletions

View File

@ -15,4 +15,6 @@
* title_sha: 文章标题的md5唯一标识字符串
* title_raw: 文章原标题
* class_name: 文章所属类别名称
4. class_topic_relation_tree.html # 子研究领域类别与主题对应关系(需要本地下载后用浏览器打开查看)
4. class_topic_relation_tree.html # 子研究领域类别与主题对应关系(需要本地下载后用浏览器打开查看)
5. overall_hotness_change_trend.html # 代码克隆领域研究热度随时间变化情况
6. sub-fields_hotness_change_trend.html # 代码克隆各子研究领域热度随时间变化情况

File diff suppressed because one or more lines are too long

View File

@ -174,14 +174,17 @@
"146" "application porting" "应用程序的移植,利用代码克隆检测的方法,将程序移植到新的环境中" "2" "other fields based on clone detection technique"
"147" "legacy software reuse" "旧版软件重用方法模型,利用代码克隆检测技术,对之前的软件进行复用" "2" "other fields based on clone detection technique"
"148" "clone avoidance" "有文章通过copy-paste-modify的方法实现为ide的插件让人在编程的时候就进行修改" "2" "other fields based on clone detection technique"
"149" "survey and tutorial" "1"
"150" "technical report" "1. 是对之前相关文章的总结性分析研究
"149" "repackage application detection" "利用代码克隆检测技术对重新打包的软件应用进行检测" "2" "other fields based on clone detection technique"
"150" "reprogramming based on code clone" "基于代码克隆方法的重编码方法" "2" "other fields based on clone detection technique"
"151" "copyright infringement detection" "基于代码克隆检测方法的软件版权侵权检测" "2" "other fields based on clone detection technique"
"152" "survey and tutorial" "1"
"153" "technical report" "1. 是对之前相关文章的总结性分析研究
2. 不是对克隆检测工具的对比研究这一部分属于analysis based on technique
3. 没有严格遵循文献综述的基本规范和要求,并且自己没有声明是文献综述" "2" "survey and tutorial"
"151" "paper review" "the literature review for code clone" "3" "technical report"
"152" "literature review" "1. 文献综述的文章
"154" "paper review" "the literature review for code clone" "3" "technical report"
"155" "literature review" "1. 文献综述的文章
2. 提示:严格遵循文献综述的流程 或 在标题等地方明确描述该文章为文献综述literature review
3. 包括工具类、克隆可视化、克隆演化、克隆重构、克隆管理、介绍抄袭检测中存在的问题" "2" "survey and tutorial"
"153" "clone visualization" "1. 文章提到了自己创建的代码克隆相关可视化技术
"156" "clone visualization" "1. 文章提到了自己创建的代码克隆相关可视化技术
2. 提示:这里的可视化是文章的主要贡献,该可视化工具或技术可能解决不同的问题,包括:代码克隆演化分析、代码克隆重构等。但文章的主要贡献还是仅限于可视化工具而已
3. 包括用户关系的use case是什么并如何可视化这些use case" "1"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,149 @@
<!--
THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=custom-bar-trend
-->
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<!-- Uncomment this line if you want to dataTool extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/dataTool.min.js"></script>
-->
<!-- Uncomment this line if you want to use gl extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
-->
<!-- Uncomment this line if you want to echarts-stat extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
-->
<!-- Uncomment this line if you want to use map
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/china.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/world.js"></script>
-->
<!-- Uncomment these two lines if you want to use bmap extension
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
-->
<script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
var option;
var yearCount = 10;
var categoryCount = 1;
var xAxisData = ["All"];
var customData = [];
var legendData = ["trend", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020"];
var dataList = [];
dataList.push([97])
dataList.push([158])
dataList.push([146])
dataList.push([159])
dataList.push([131])
dataList.push([144])
dataList.push([141])
dataList.push([113])
dataList.push([122])
dataList.push([83])
customData.push(['All', 97, 158, 146, 159, 131, 144, 141, 113, 122, 83])
var encodeY = [1,2,3,4,5,6,7,8,9,10];
function renderItem(params, api) {
var xValue = api.value(0);
var currentSeriesIndices = api.currentSeriesIndices();
var barLayout = api.barLayout({
barGap: '30%', barCategoryGap: '20%', count: currentSeriesIndices.length - 1
});
var points = [];
for (var i = 0; i < currentSeriesIndices.length; i++) {
var seriesIndex = currentSeriesIndices[i];
if (seriesIndex !== params.seriesIndex) {
var point = api.coord([xValue, api.value(seriesIndex)]);
point[0] += barLayout[i - 1].offsetCenter;
point[1] -= 20;
points.push(point);
}
}
var style = api.style({
stroke: api.visual('color'),
fill: null
});
return {
type: 'polyline',
shape: {
points: points
},
style: style
};
}
option = {
tooltip: {
trigger: 'axis'
},
legend: {
data: legendData
},
dataZoom: [{
show: false,
type: 'slider',
start: 50,
end: 70
}, {
type: 'inside',
start: 50,
end: 70
}],
xAxis: {
data: xAxisData
},
yAxis: {},
series: [{
type: 'custom',
name: 'trend',
renderItem: renderItem,
itemStyle: {
borderWidth: 2
},
encode: {
x: 0,
y: encodeY
},
data: customData,
z: 100
}].concat(dataList.map(function (data, index) {
return {
type: 'bar',
animation: false,
name: legendData[index + 1],
itemStyle: {
opacity: 0.5
},
data: data
};
}))
};
if (option && typeof option === 'object') {
myChart.setOption(option);
}
</script>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!--
THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=custom-bar-trend
-->
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<!-- Uncomment this line if you want to dataTool extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/dataTool.min.js"></script>
-->
<!-- Uncomment this line if you want to use gl extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
-->
<!-- Uncomment this line if you want to echarts-stat extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
-->
<!-- Uncomment this line if you want to use map
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/china.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/world.js"></script>
-->
<!-- Uncomment these two lines if you want to use bmap extension
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
-->
<script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
var option;
var yearCount = 10;
var categoryCount = 10;
var xAxisData = ["clone detection technique", "clone analysis", "clone evolution", "clone refactoring", "other fields", "survey and tutorial", "clone visualization", "clone evaluation", "benchmark", "clone management"];
var customData = [];
var legendData = ["trend", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020"];
var encodeY = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var dataList = [];
dataList.push([46, 23, 13, 8, 7, 4, 5, 0, 0, 2])
dataList.push([90, 27, 23, 10, 15, 6, 6, 0, 1, 1])
dataList.push([80, 20, 23, 21, 12, 7, 3, 3, 1, 2])
dataList.push([82, 26, 20, 20, 8, 13, 7, 4, 4, 2])
dataList.push([89, 13, 8, 11, 9, 11, 7, 5, 3, 2])
dataList.push([82, 19, 11, 13, 17, 14, 2, 5, 2, 1])
dataList.push([79, 25, 20, 9, 8, 5, 6, 1, 3, 1])
dataList.push([74, 17, 12, 8, 8, 8, 2, 2, 3, 1])
dataList.push([78, 14, 12, 5, 7, 11, 7, 6, 2, 0])
dataList.push([52, 12, 5, 5, 2, 8, 7, 2, 2, 2])
customData.push(['clone detection technique', 46, 90, 80, 82, 89, 82, 79, 74, 78, 52])
customData.push(['clone analysis', 23, 27, 20, 26, 13, 19, 25, 17, 14, 12])
customData.push(['clone evolution', 13, 23, 23, 20, 8, 11, 20, 12, 12, 5])
customData.push(['clone refactoring', 8, 10, 21, 20, 11, 13, 9, 8, 5, 5])
customData.push(['other fields', 7, 15, 12, 8, 9, 17, 8, 8, 7, 2])
customData.push(['survey and tutorial', 4, 6, 7, 13, 11, 14, 5, 8, 11, 8])
customData.push(['clone visualization', 5, 6, 3, 7, 7, 2, 6, 2, 7, 7])
customData.push(['clone evaluation', 0, 0, 3, 4, 5, 5, 1, 2, 6, 2])
customData.push(['benchmark', 0, 1, 1, 4, 3, 2, 3, 3, 2, 2])
customData.push(['clone management', 2, 1, 2, 2, 2, 1, 1, 1, 0, 2])
function renderItem(params, api) {
var xValue = api.value(0);
var currentSeriesIndices = api.currentSeriesIndices();
var barLayout = api.barLayout({
barGap: '30%', barCategoryGap: '20%', count: currentSeriesIndices.length - 1
});
var points = [];
for (var i = 0; i < currentSeriesIndices.length; i++) {
var seriesIndex = currentSeriesIndices[i];
if (seriesIndex !== params.seriesIndex) {
var point = api.coord([xValue, api.value(seriesIndex)]);
point[0] += barLayout[i - 1].offsetCenter;
point[1] -= 20;
points.push(point);
}
}
var style = api.style({
stroke: api.visual('color'),
fill: null
});
return {
type: 'polyline',
shape: {
points: points
},
style: style
};
}
option = {
tooltip: {
trigger: 'axis'
},
legend: {
data: legendData
},
dataZoom: [{
show: false,
type: 'slider',
start: 50,
end: 70
}, {
type: 'inside',
start: 50,
end: 70
}],
xAxis: {
show: true,
data: xAxisData,
axisLabel: {
interval: 0
},
},
yAxis: {},
series: [{
type: 'custom',
name: 'trend',
renderItem: renderItem,
itemStyle: {
borderWidth: 2
},
encode: {
x: 0,
y: encodeY
},
data: customData,
z: 100
}].concat(dataList.map(function (data, index) {
return {
type: 'bar',
animation: false,
name: legendData[index + 1],
itemStyle: {
opacity: 0.5
},
data: data
};
}))
};
if (option && typeof option === 'object') {
myChart.setOption(option);
}
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB