hah
This commit is contained in:
parent
c363cde7fb
commit
58a698aa6a
|
@ -49,9 +49,9 @@
|
||||||
|
|
||||||
\begin{eabstract}
|
\begin{eabstract}
|
||||||
In GitHub,
|
In GitHub,
|
||||||
an increasing number of projects are using the \pr -based collaborative development model.
|
an increasing number of projects are using the Pull-based collaborative development model.
|
||||||
This development model has inspired the creativity and enthusiasm of the crowd contributors;
|
This development model has inspired the creativity and enthusiasm of the crowd contributors;
|
||||||
any developer can contribute code for the projects
|
any developer can contribute code for the project
|
||||||
that they are interested in
|
that they are interested in
|
||||||
by submitting a PR to the project's main repository.
|
by submitting a PR to the project's main repository.
|
||||||
Because the programming levels of the crowd contributors are uneven,
|
Because the programming levels of the crowd contributors are uneven,
|
||||||
|
@ -59,10 +59,10 @@ in order to ensure the quality of the code they contribute,
|
||||||
each PR has to go through a rigorous review process before getting accepted.
|
each PR has to go through a rigorous review process before getting accepted.
|
||||||
Unlike the traditional code review model,
|
Unlike the traditional code review model,
|
||||||
contribution review in GitHub, which is integrated with the development process of PR,
|
contribution review in GitHub, which is integrated with the development process of PR,
|
||||||
is a socialized lightweight contribution review model.
|
is a socialized and lightweight contribution review model.
|
||||||
It is more transparent, open and free,
|
It is more transparent, open and free,
|
||||||
and any community member can participate in the review of contribution
|
and any community member can participate in the review of contribution
|
||||||
and provide feedback and comments.
|
and provide feedbacks.
|
||||||
These characteristics facilitate the interactions of participants during the review process
|
These characteristics facilitate the interactions of participants during the review process
|
||||||
and improve the reviewers' work efficiency,
|
and improve the reviewers' work efficiency,
|
||||||
which leads to this model being widely adopted by the GitHub projects.
|
which leads to this model being widely adopted by the GitHub projects.
|
||||||
|
@ -75,7 +75,7 @@ is critical for collaborative software development.
|
||||||
|
|
||||||
|
|
||||||
Based on the crowd contribution data in GitHub,
|
Based on the crowd contribution data in GitHub,
|
||||||
this paper explores and studies the efficiency and quality of crowd contribution review.
|
this thesis explores and studies the efficiency and quality of crowd contribution review.
|
||||||
The main work and contributions are summarized as follows:
|
The main work and contributions are summarized as follows:
|
||||||
|
|
||||||
Firstly,
|
Firstly,
|
||||||
|
@ -84,10 +84,10 @@ the problem of submitting duplicate PR was first proposed
|
||||||
and an automated detection method was provided.
|
and an automated detection method was provided.
|
||||||
For a new submitted PR,
|
For a new submitted PR,
|
||||||
we extract its textual information and change information,
|
we extract its textual information and change information,
|
||||||
calculate the similarities between it and history PR,
|
calculate the similarities between it and the historical PRs,
|
||||||
and return a list of PR that are most similar to it.
|
and return a list of PRs that are most similar to it.
|
||||||
With this list we expect to prevent duplicate review on duplicate contributions
|
With this list we expect to prevent duplicate review on duplicate contributions
|
||||||
and thereby avoiding additional review redundancy.
|
and thereby avoid additional review redundancy.
|
||||||
|
|
||||||
|
|
||||||
Secondly,
|
Secondly,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
如图~\ref{fig:github_wf}所示,两个开发者Bob和Alice都克隆(fork)了同一个主版本库,
|
如图~\ref{fig:github_wf}所示,两个开发者Bob和Alice都克隆(fork)了同一个主版本库,
|
||||||
然后他们两个人单独地在各自的本地克隆库上做修改。
|
然后他们两个人单独地在各自的本地克隆库上做修改。
|
||||||
当他们都想实现同一个功能或者修复同一个代码缺陷时,由于他们都不知晓对方正在做的工作,
|
当他们都想实现同一个功能或者修复同一个代码缺陷时,由于他们都不知晓对方正在做的工作,
|
||||||
他们两个人可能都会做相应的修改,然后提交\pr 到主版本库中,
|
他们两个人可能都会做相同的修改,然后提交\pr 到主版本库中,
|
||||||
提交的两个\pr 都会各自经历贡献审查和更新操作,
|
提交的两个\pr 都会各自经历贡献审查和更新操作,
|
||||||
直到有某位开发者意识到这两个重复\pr 的存在。
|
直到有某位开发者意识到这两个重复\pr 的存在。
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.8\textwidth]{figures/prflow.pdf}
|
\includegraphics[width=0.8\textwidth]{figures/prflow.pdf}
|
||||||
\caption{多个开发者的并行贡献过程}
|
\caption{多个开发者在基于\pr 开发模式下的并行贡献过程}
|
||||||
\label{fig:github_wf}
|
\label{fig:github_wf}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Thung等人~\cite{Thung2014DupFinder}开发了一个缺陷探测工具并把它
|
||||||
从图~\ref{fig:dup_exmp}可以看出,这一对重复\pr 的标题和描述文本出现了一些相同的单词,
|
从图~\ref{fig:dup_exmp}可以看出,这一对重复\pr 的标题和描述文本出现了一些相同的单词,
|
||||||
这意味着\pr 的文本信息可以用来计算两个\pr 的相似度。
|
这意味着\pr 的文本信息可以用来计算两个\pr 的相似度。
|
||||||
文本相似度已经被之前许多研究采用~\cite{Runeson2007Detection,Wang2008,Nguyen2012Duplicate,Lazar2014Improving} ,比如被用来检测软件开发过程中的重复缺陷报告。
|
文本相似度已经被之前许多研究采用~\cite{Runeson2007Detection,Wang2008,Nguyen2012Duplicate,Lazar2014Improving} ,比如被用来检测软件开发过程中的重复缺陷报告。
|
||||||
相比于缺陷报告等纯文本的数据,\pr 还包含了代码修改信息(Diff),
|
相比于缺陷报告等纯文本的数据,\pr 还包含了文件变更信息,
|
||||||
重复\pr 有很大的概率去修改相同模块下的文件,甚至是相同的文件,
|
重复\pr 有很大的概率去修改相同模块下的文件,甚至是相同的文件,
|
||||||
因此\pr 的变更信息也可用来计算两个\pr 间的相似度。基于上述讨论,我们提出了第一个研究问题:
|
因此\pr 的变更信息也可用来计算两个\pr 间的相似度。基于上述讨论,我们提出了第一个研究问题:
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ Thung等人~\cite{Thung2014DupFinder}开发了一个缺陷探测工具并把它
|
||||||
他们的文字表述也可能存在差异,这就会导致重复的\pr 拥有较低的文本相似度;
|
他们的文字表述也可能存在差异,这就会导致重复的\pr 拥有较低的文本相似度;
|
||||||
另一方面,修改同一个文件或者相同模块下的文件并不一定意味着要实现相同的功能,
|
另一方面,修改同一个文件或者相同模块下的文件并不一定意味着要实现相同的功能,
|
||||||
实现相同的功能也不意味着必须要修改相同的文件和模块,因为不同的开发者可能有不同的实现方案。
|
实现相同的功能也不意味着必须要修改相同的文件和模块,因为不同的开发者可能有不同的实现方案。
|
||||||
因此,我们思考是否可以把这两类信息结合起来呢?据此,我们提出了第二个研究问题:
|
因此,我们思考是否可以把这两类信息结合起来。据此,我们提出了第二个研究问题:
|
||||||
|
|
||||||
\textbf{RQ2: 两种信息的结合是否会产生更好的探测效果?}
|
\textbf{RQ2: 两种信息的结合是否会产生更好的探测效果?}
|
||||||
|
|
||||||
|
@ -169,12 +169,12 @@ Thung等人~\cite{Thung2014DupFinder}开发了一个缺陷探测工具并把它
|
||||||
|
|
||||||
文本被分词后,每一个词都会被转换为词根形式(例如,“was” 转换为“be”,“errors”转换为“error”),
|
文本被分词后,每一个词都会被转换为词根形式(例如,“was” 转换为“be”,“errors”转换为“error”),
|
||||||
这个转换是由Porter词根转换算法~\cite{Porter:1997}完成的。
|
这个转换是由Porter词根转换算法~\cite{Porter:1997}完成的。
|
||||||
最后,一些经常出现但对一个句子的识别度没有太大贡献的停用词(如“the”、“a”))会被移除掉。
|
最后,一些经常出现但对一个句子的识别度没有太大贡献的停用词(如“the”、“a”)会被移除掉。
|
||||||
|
|
||||||
\subsubsection{文本向量化}
|
\subsubsection{文本向量化}
|
||||||
经过预处理的文本会被进一步转换为能够在向量空间模型(Vector Space Model, VSM)中计算的多维向量,
|
经过预处理的文本会被进一步转换为能够在向量空间模型(Vector Space Model, VSM)中计算的多维向量,
|
||||||
向量化的文本可以表示为:$TextVec_{i} = (w_{i,1},w_{i,2}, ..., w_{i,v})$,
|
向量化的文本可以表示为:$TextVec_{i} = (w_{i,1},w_{i,2}, ..., w_{i,v})$,
|
||||||
向量的每一维对应着文本的一个词。
|
向量的每一维对应着文本词汇库中的一个词。
|
||||||
$w_{i,k}$的值是文本\textit{i}对应的向量中第\textit{k}个元素的权重,该值由TF-IDF模型计算得来:
|
$w_{i,k}$的值是文本\textit{i}对应的向量中第\textit{k}个元素的权重,该值由TF-IDF模型计算得来:
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
|
@ -203,7 +203,7 @@ $idf_{i,k}$表示逆文档频率,用于衡量一个词对文章的区分度。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{基于修改信息的相似度计算}
|
\subsection{基于变更信息的相似度计算}
|
||||||
|
|
||||||
GitHub平台上的协作依赖于Git,
|
GitHub平台上的协作依赖于Git,
|
||||||
Git是一种分布式版本控制系统。
|
Git是一种分布式版本控制系统。
|
||||||
|
@ -265,8 +265,8 @@ Git使用“-”和“+”两个符号标记文件被修改的代码行,
|
||||||
能够提取出一个\pr 具体修改了哪些模块和哪些文件。
|
能够提取出一个\pr 具体修改了哪些模块和哪些文件。
|
||||||
具体地,两个\pr 之间的变更相似度由表~\ref{alg:diff_sim}所示的算法 $diffSim$得出。
|
具体地,两个\pr 之间的变更相似度由表~\ref{alg:diff_sim}所示的算法 $diffSim$得出。
|
||||||
|
|
||||||
$diffSim$的输入是两个\pr 分别修改的文件的集合。
|
$diffSim$的输入是两个\pr 分别修改的文件集合。
|
||||||
算法第1行初始化了一个列表$file\_sims$用于存放算法中产生的临时结果,
|
算法第1行初始化了一个列表$file\_sims$用于存放算法中产生的临时结果。
|
||||||
第2行至第5行的代码用于计算两个文件集合中任意两个文件的文件路径相似度,
|
第2行至第5行的代码用于计算两个文件集合中任意两个文件的文件路径相似度,
|
||||||
并把两个文件和其相似度存放到$file\_sims$中,
|
并把两个文件和其相似度存放到$file\_sims$中,
|
||||||
而两个文件的文件路径相似度由函数$getFilePathSim$计算。
|
而两个文件的文件路径相似度由函数$getFilePathSim$计算。
|
||||||
|
@ -275,9 +275,10 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
第8行代码初始化了一个新的列表$final\_sims$,用以存放最后要保留的文件对和其相似度值。
|
第8行代码初始化了一个新的列表$final\_sims$,用以存放最后要保留的文件对和其相似度值。
|
||||||
第9行至第13行的代码从$file\_sims$中依次找出相似度最大的文件对并
|
第9行至第13行的代码从$file\_sims$中依次找出相似度最大的文件对并
|
||||||
把他们的相似度放到$final\_sims$中,
|
把他们的相似度放到$final\_sims$中,
|
||||||
由于同一个文件在$final\_sims$只出现一次,即同一个文件只会和一个文件具有最大相似度值,
|
我们规定同一个文件在$final\_sims$只出现一次,即同一个文件只会和一个文件具有最大相似度值,
|
||||||
因此在第12行,
|
因此在第12行,
|
||||||
我们会在候选集$file\_sims$中把目前具有最大相似度的文件对中的文件与其它文件构成的文件对都删除掉。
|
我们会在候选集$file\_sims$中把目前具有最大相似度的文件对中的文件与其它文件构成的文件对都删除掉,
|
||||||
|
这样可以充分利用文件变更所涉及到的每一个文件与其它文件的相似性。
|
||||||
最后,我们把$final\_sims$中的相似度值累加后除以两个\pr 文件集合规模的最大值,
|
最后,我们把$final\_sims$中的相似度值累加后除以两个\pr 文件集合规模的最大值,
|
||||||
进而得到两个\pr 的变更相似度。
|
进而得到两个\pr 的变更相似度。
|
||||||
|
|
||||||
|
@ -290,7 +291,7 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
% \footnotesize
|
% \footnotesize
|
||||||
\centering
|
\centering
|
||||||
\caption{两个\pr 变更相似度计算过程}
|
\caption{两个\pr 变更相似度的计算过程}
|
||||||
\begin{tabular}{r l}
|
\begin{tabular}{r l}
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\multicolumn{2}{l}{
|
\multicolumn{2}{l}{
|
||||||
|
@ -445,18 +446,30 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
在该算法中,前三行(第1行 - 第3行)代码对四个权重进行初始化,并把他们组成一个向量来进行操作,
|
在该算法中,前三行(第1行 - 第3行)代码对三个权重进行初始化,并把他们组成一个向量来进行操作,
|
||||||
然后用初始化权重向量来得到初始的评估函数值。
|
然后用初始化权重向量来得到初始的评估函数值。
|
||||||
评估函数用于评估一组权重向量能否较好地反应出各种类型的相似度对实际\pr 相似性的贡献度,
|
评估函数用于评估一组权重向量能否较好地反应出各种类型的相似度对实际\pr 相似性的贡献度,
|
||||||
也就是一组权重向量能否产生更符合实际情况的相似度比重。
|
也就是一组权重向量能否产生更符合实际情况的相似度比重。
|
||||||
对于一个\pr 来说,在返回的列表中,与它重复的\pr 排序越靠前越好,因此我们的评估函数定义为:
|
对于一个\pr 来说,在返回的列表中,与它重复的\pr 排序越靠前越好,因此我们的评估函数定义为:
|
||||||
|
|
||||||
|
|
||||||
|
% \begin{equation}
|
||||||
|
% fitness(DupPR,wts) = \sum_{pr \sim DupPr}\frac{1}{rank(pr)}
|
||||||
|
% \label{equ:fitness}
|
||||||
|
% \end{equation}
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
fitness(DupPR,wts) = \sum_{pr \sim DupPr}\frac{1}{rank(pr)}
|
fitness(DupPR,wts) = \sum_{<pr_e,pr_l> \sim DupPR}\frac{1}{rank(pr_e, SimPRs(pr_l))}
|
||||||
\label{equ:fitness}
|
\label{equ:fitness}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
|
在上式中,$<pr_{mst},pr_{dup}>$代表一对重复的\pr ,
|
||||||
|
并且$pr_{mst}$ 的提交时间早于$pr_{dup}$的提交时间。
|
||||||
|
函数$SimPRs$ 返回的是一组与$pr_{dup}$最为相似的\pr 列表,
|
||||||
|
而函数$rank$返回的是$pr_{mst}$在该列表的排序。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% 评估函数的一些解释。
|
% 评估函数的一些解释。
|
||||||
|
|
||||||
|
@ -518,7 +531,7 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
|
|
||||||
在这些项目的历史\pr 中,我们去构造重复\pr 数据集。
|
在这些项目的历史\pr 中,我们去构造重复\pr 数据集。
|
||||||
要识别历史数据中一个\pr 是否和另外一个\pr 是重复的,要从审查者的评论来判断。
|
要识别历史数据中一个\pr 是否和另外一个\pr 是重复的,要从审查者的评论来判断。
|
||||||
为此,我们提出了如图~\ref{fig:data_get}所示的自动识别和人工审查的相结合的方式。
|
为此,我们提出了如图~\ref{fig:data_get}所示的自动识别和人工审查相结合的方式。
|
||||||
|
|
||||||
\begin{figure}[!htbp]
|
\begin{figure}[!htbp]
|
||||||
\centering
|
\centering
|
||||||
|
@ -539,7 +552,7 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
|
|
||||||
\item {\hei 规则提取:}基于上一步所收集到的指示性评论集合,
|
\item {\hei 规则提取:}基于上一步所收集到的指示性评论集合,
|
||||||
我们发现评论者在指出一个\pr 和另一个\pr 是重复的时候,一些单词或短语被频繁使用。
|
我们发现评论者在指出一个\pr 和另一个\pr 是重复的时候,一些单词或短语被频繁使用。
|
||||||
比如:
|
比如下面几个评论中所包含的“dup of”、“closed by”和“addressed in”都是经常被用到的短语。
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item {\kai ``dup of \#xxxx''}
|
\item {\kai ``dup of \#xxxx''}
|
||||||
|
|
||||||
|
@ -610,7 +623,7 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
对于一个\pr 来说,与它重复的\pr 一般只有一个或者没有,
|
对于一个\pr 来说,与它重复的\pr 一般只有一个或者没有,
|
||||||
如果计算准确率和召回率的话,那么一次探测结果的准确率要么是1/k(k是返回列表的大小)要么是0,
|
如果计算准确率和召回率的话,那么一次探测结果的准确率要么是1/k(k是返回列表的大小)要么是0,
|
||||||
召回率要么是1要么是0,这样的取值评价起来很不方便,因此,我们采用了recall-rate@k的评价指标。
|
召回率要么是1要么是0,这样的取值评价起来很不方便,因此,我们采用了recall-rate@k的评价指标。
|
||||||
这个指标是由\textit{Runeson et al.}~\cite{Runeson2007Detection}提出的,
|
这个指标是由\textit{Runeson}~\cite{Runeson2007Detection}提出的,
|
||||||
后来的许多相关工作也采用了这个评价指标~\cite{Sun2010A,Sun2011Towards},
|
后来的许多相关工作也采用了这个评价指标~\cite{Sun2010A,Sun2011Towards},
|
||||||
其计算公式如下:
|
其计算公式如下:
|
||||||
|
|
||||||
|
@ -621,11 +634,11 @@ $diffSim$的输入是两个\pr 分别修改的文件的集合。
|
||||||
|
|
||||||
在上式中,$N_{detected}$是标准数据集中对应的源PR被探测出来的重复PR的数量,
|
在上式中,$N_{detected}$是标准数据集中对应的源PR被探测出来的重复PR的数量,
|
||||||
一个重复PR的源PR被探测出来的判断标准是源PR出现在与重复PR最相似的Top-k \pr 列表中。
|
一个重复PR的源PR被探测出来的判断标准是源PR出现在与重复PR最相似的Top-k \pr 列表中。
|
||||||
$N_{total}$是标准数据集中所有重复PR的数量。
|
$N_{total}$是标准数据集中所有重复PR对的数量。
|
||||||
recall-rate@k衡量了探测方法能够为多少比例的重复PR探测出其源PR。
|
recall-rate@k衡量了探测方法能够为多少比例的重复PR探测出其源PR。
|
||||||
|
|
||||||
\section{实验结果}
|
\section{实验结果}
|
||||||
\subsection{RQ1: 基于单类相似度探测效果}
|
\subsection{RQ1: 基于单类相似度的探测效果}
|
||||||
虽然之前的研究工作~\cite{Runeson2007Detection,Nguyen2012Duplicate,Lazar2014Improving}
|
虽然之前的研究工作~\cite{Runeson2007Detection,Nguyen2012Duplicate,Lazar2014Improving}
|
||||||
已经尝试过用文本信息对重复性的软件开发任务进行探测,然而\pr 包含的diff信息还未被用于探测其重复性。
|
已经尝试过用文本信息对重复性的软件开发任务进行探测,然而\pr 包含的diff信息还未被用于探测其重复性。
|
||||||
因此,我们想研究当分别利用文本信息和变更信息去探测重复\pr 的时候,探测效果是如何变化的。
|
因此,我们想研究当分别利用文本信息和变更信息去探测重复\pr 的时候,探测效果是如何变化的。
|
||||||
|
@ -662,8 +675,8 @@ recall-rate@k衡量了探测方法能够为多少比例的重复PR探测出其
|
||||||
图~\ref{fig:detect}是基于混合相似度的探测效果,对每个k的取值,
|
图~\ref{fig:detect}是基于混合相似度的探测效果,对每个k的取值,
|
||||||
我们用盒图展示了在所有调研项目上的探测效果概况,每一个盒图中的红点是对所有项目探测效果的平均加权值,
|
我们用盒图展示了在所有调研项目上的探测效果概况,每一个盒图中的红点是对所有项目探测效果的平均加权值,
|
||||||
这些红点用线连起来代表了基于混合相似度探测方法的平均效果,
|
这些红点用线连起来代表了基于混合相似度探测方法的平均效果,
|
||||||
与图~\ref{fig:textVSdiff}中所示的各个方法的探测效果相比,可以发现综合利用文本信息和diff信息的混合相似度的探测效果有了明显的提升,
|
与图~\ref{fig:textVSdiff}中所示的各个方法的探测效果相比,可以发现综合利用文本信息和变更信息的混合相似度的探测效果有了明显的提升,
|
||||||
比如,当推荐列表设置为20的时候,混合相似度平均能够找到67.5\%的重复\pr.
|
比如,当推荐列表设置为20的时候,混合相似度平均能够找到68.5\%的重复\pr.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -686,9 +699,9 @@ recall-rate@k衡量了探测方法能够为多少比例的重复PR探测出其
|
||||||
从表中可以看出, 由自动搜索算法求得的$WT_{GS}$ 的探测效果是最好的,
|
从表中可以看出, 由自动搜索算法求得的$WT_{GS}$ 的探测效果是最好的,
|
||||||
随机生成的权重向量的探测效果波动幅度很大,recall-rate@20有些高达0.679,而有些则只有0.575。
|
随机生成的权重向量的探测效果波动幅度很大,recall-rate@20有些高达0.679,而有些则只有0.575。
|
||||||
而把各类相似度等同对待的$WT_{EQ}$相比于随机生成的$WT_{RD}$的平均效果有明显提升,recall-rate@20达到了0.678。
|
而把各类相似度等同对待的$WT_{EQ}$相比于随机生成的$WT_{RD}$的平均效果有明显提升,recall-rate@20达到了0.678。
|
||||||
另外,我们注意到虽然$WT_{GS}$的效果优于$WT_{EQ}$,但是这种优势不是太明显,
|
另外,我们注意到虽然$WT_{GS}$的效果优于$WT_{EQ}$,不过这种优势并不是太明显。
|
||||||
这说明在对新项目进行探测时,不去对历史\pr 进行人工标注以训练$WT_{GS}$的各参数,
|
% 这说明在对新项目进行探测时,不去对历史\pr 进行人工标注以训练$WT_{GS}$的各参数,
|
||||||
而直接利用$WT_{EQ}$累加各个相似度是一种可选的做法。
|
% 而直接利用$WT_{EQ}$累加各个相似度是一种可选的做法。
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\centering
|
\centering
|
||||||
|
|
|
@ -55,7 +55,7 @@ Pull-based开发模式方便了大众贡献者对开源软件的贡献,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
在GitHub平台,贡献审查是以众包的形式开发给所有社区成员的,任何对某个项目感兴趣的开发者都可以审查它的\pr 。
|
在GitHub平台,贡献审查是以众包的形式开放给所有社区成员的,任何对某个项目感兴趣的开发者都可以审查它的\pr 。
|
||||||
不像传统的代码审查有统一的管理和严格的执行步骤,
|
不像传统的代码审查有统一的管理和严格的执行步骤,
|
||||||
GitHub上的贡献审查是一种形式上更加开放和自由的轻量级审查过程,
|
GitHub上的贡献审查是一种形式上更加开放和自由的轻量级审查过程,
|
||||||
%每个人 参与 角色 随意
|
%每个人 参与 角色 随意
|
||||||
|
@ -193,18 +193,18 @@ Angular.JS是一款出色的前端开发框架。
|
||||||
\centering
|
\centering
|
||||||
\caption{数据集概况}
|
\caption{数据集概况}
|
||||||
\begin{tabular}{r c c r c c c c c}
|
\begin{tabular}{r c c r c c c c c}
|
||||||
% \toprule
|
\toprule
|
||||||
\hline
|
% \hline
|
||||||
\rowcolor[HTML]{000000}
|
% \rowcolor[HTML]{000000}
|
||||||
{\color[HTML]{FFFFFF}\textbf{项目}} &
|
\textbf{项目} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{编程语言}} &
|
\textbf{编程语言} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{应用领域}} &
|
\textbf{应用领域} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{托管时间}} &
|
\textbf{托管时间} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{Star数}} &
|
\textbf{Star数} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{Fork数}} &
|
\textbf{Fork数} &
|
||||||
% {\color[HTML]{FFFFFF}\textbf{贡献者数}} &
|
% {\color[HTML]{FFFFFF}\textbf{贡献者数}} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{PR数}} &
|
\textbf{PR数} &
|
||||||
{\color[HTML]{FFFFFF}\textbf{评论数}} \\
|
\textbf{评论数} \\
|
||||||
% \midrule
|
% \midrule
|
||||||
\hline
|
\hline
|
||||||
\textbf{Rails} & Ruby & Web框架 & 2009.5 & 33906 & 13789 & 14648 & 75102 \\
|
\textbf{Rails} & Ruby & Web框架 & 2009.5 & 33906 & 13789 & 14648 & 75102 \\
|
||||||
|
@ -353,7 +353,7 @@ TSHC在本阶段主要利用审查评论的文本信息,输出的是一个概
|
||||||
因为这些文本整体本身表示的只是一种指向关系。
|
因为这些文本整体本身表示的只是一种指向关系。
|
||||||
因此,我们把这些引用文本置换成一个特殊无意义的单词,这样可以把他们对文本信息的干扰消除掉,
|
因此,我们把这些引用文本置换成一个特殊无意义的单词,这样可以把他们对文本信息的干扰消除掉,
|
||||||
同时还保留了原始评论中的引用信息。
|
同时还保留了原始评论中的引用信息。
|
||||||
具体地,我们把源代码、超链接和他们语句分别替换成\textit{`cmmcode'}、\textit{`cmmlink'}和\textit{`cmmtalk'} 。
|
具体地,我们把源代码、超链接和引用语句分别替换成\textit{`cmmcode'}、\textit{`cmmlink'}和\textit{`cmmtalk'} 。
|
||||||
|
|
||||||
|
|
||||||
%基于规则的
|
%基于规则的
|
||||||
|
@ -425,7 +425,7 @@ TSHC在本阶段主要利用审查评论的文本信息,输出的是一个概
|
||||||
\textbf{评论类型:}
|
\textbf{评论类型:}
|
||||||
这个特征是二值类型的,表示的是一个审查评论的类型(代码级别还是普通类型)。
|
这个特征是二值类型的,表示的是一个审查评论的类型(代码级别还是普通类型)。
|
||||||
代码级别的评论更有可能是讨论解决方案的,而普通类型的评论更有可能是讨论“高级别”的事务,
|
代码级别的评论更有可能是讨论解决方案的,而普通类型的评论更有可能是讨论“高级别”的事务,
|
||||||
比如\pr 价值决策和项目管理等等。
|
比如\pr 价值决策和项目管理等。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -451,7 +451,7 @@ TSHC在本阶段主要利用审查评论的文本信息,输出的是一个概
|
||||||
|
|
||||||
\textbf{标题相似性:}
|
\textbf{标题相似性:}
|
||||||
这个特征是评论文本与\pr 标题文本的相似性,
|
这个特征是评论文本与\pr 标题文本的相似性,
|
||||||
这个相思性衡量的是这两个文本共享的单词比例。
|
这个相似性衡量的是这两个文本共享的单词比例。
|
||||||
|
|
||||||
\textbf{描述相似性:}
|
\textbf{描述相似性:}
|
||||||
与上一个特征类似,这个特征是评论文本与\pr 描述文本的相似性。
|
与上一个特征类似,这个特征是评论文本与\pr 描述文本的相似性。
|
||||||
|
@ -493,7 +493,7 @@ but maybe you could split your patch in two different commits? One for each issu
|
||||||
并且表达了对这个\pr 的满意(\textit{L2-4}),最后还要求贡献者把\pr 切分成更小的提交(\textit{L2-9})。
|
并且表达了对这个\pr 的满意(\textit{L2-4}),最后还要求贡献者把\pr 切分成更小的提交(\textit{L2-9})。
|
||||||
在第二个示例评论中,审查者表示他对这个\pr 比较满意(\textit{L2-4}),
|
在第二个示例评论中,审查者表示他对这个\pr 比较满意(\textit{L2-4}),
|
||||||
同时提出了高度的赞扬(\textit{L2-11}, \textit{:+1:}代码emoji表情“大拇指”),
|
同时提出了高度的赞扬(\textit{L2-11}, \textit{:+1:}代码emoji表情“大拇指”),
|
||||||
最后该审查者还指派了其他的审查者对该\pr 进行审查(\textit{L2-11})。
|
最后该审查者还指派了其他的审查者对该\pr 进行审查(\textit{L2-8})。
|
||||||
此外,我们还搜集了13个特殊评论,这些评论被标记为“其它”类别。此类别的评论主要分为两类:
|
此外,我们还搜集了13个特殊评论,这些评论被标记为“其它”类别。此类别的评论主要分为两类:
|
||||||
|
|
||||||
|
|
||||||
|
@ -511,14 +511,14 @@ but maybe you could split your patch in two different commits? One for each issu
|
||||||
\centering
|
\centering
|
||||||
\caption{审查关注点的分类体系}
|
\caption{审查关注点的分类体系}
|
||||||
\begin{tabular}{r r p{10cm}}
|
\begin{tabular}{r r p{10cm}}
|
||||||
% \toprule
|
\toprule
|
||||||
\hline
|
% \hline
|
||||||
\rowcolor[HTML]{000000}
|
% \rowcolor[HTML]{000000}
|
||||||
&&\\
|
% &&\\
|
||||||
\rowcolor[HTML]{000000}
|
% \rowcolor[HTML]{000000}
|
||||||
\multirow{-2}*{{\color[HTML]{FFFFFF}\textbf{一级分类}}} &
|
\textbf{一级分类} &
|
||||||
\multirow{-2}*{{\color[HTML]{FFFFFF}\textbf{二级分类}}} &
|
\textbf{二级分类} &
|
||||||
\multirow{-2}*{{\color[HTML]{FFFFFF}\textbf{描述 \& 实例}}}\\
|
\textbf{描述 \& 实例}\\
|
||||||
|
|
||||||
\hline
|
\hline
|
||||||
\multirow{6}*{\tabincell{r}{\textbf{代码改进}\\(L1-1)}}
|
\multirow{6}*{\tabincell{r}{\textbf{代码改进}\\(L1-1)}}
|
||||||
|
@ -649,29 +649,29 @@ TSHC的提升效果为:Rails的9.2\% (从0.688到0.780)、Elasticsearch的5.3\
|
||||||
\centering
|
\centering
|
||||||
\caption{不同方法的性能提升情况}
|
\caption{不同方法的性能提升情况}
|
||||||
\begin{tabular}{l |c c c| c c c| c c c}
|
\begin{tabular}{l |c c c| c c c| c c c}
|
||||||
\hline
|
\toprule
|
||||||
\rowcolor[HTML]{000000}
|
% \rowcolor[HTML]{000000}
|
||||||
&
|
&
|
||||||
\multicolumn{3}{c}{{\color[HTML]{FFFFFF}\textbf{Rails}}} &
|
\multicolumn{3}{c|}{\textbf{Rails}} &
|
||||||
\multicolumn{3}{c}{{\color[HTML]{FFFFFF}\textbf{Elasticsearch}}} &
|
\multicolumn{3}{c|}{\textbf{Elasticsearch}} &
|
||||||
\multicolumn{3}{c}{{\color[HTML]{FFFFFF}\textbf{Angular.js}}}\\
|
\multicolumn{3}{c}{\textbf{Angular.js}}\\
|
||||||
% \multicolumn{6}{c}{{\color[HTML]{FFFFFF}\textbf{Ave.}}}\\
|
% \multicolumn{6}{c}{{\color[HTML]{FFFFFF}\textbf{Ave.}}}\\
|
||||||
|
|
||||||
|
|
||||||
\rowcolor[HTML]{000000}
|
% \rowcolor[HTML]{000000}
|
||||||
\multirow{-2}*{{\color[HTML]{FFFFFF}\textbf{指标}}}&
|
\multirow{-2}*{\textbf{指标}}&
|
||||||
|
|
||||||
{\color[HTML]{FFFFFF}TBC }&
|
TBC &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{R}$ } &
|
TBC$_{R}$ &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{CF}$ } &
|
TBC$_{CF}$ &
|
||||||
|
|
||||||
{\color[HTML]{FFFFFF}TBC }&
|
TBC &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{R}$ } &
|
TBC$_{R}$ &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{CF}$ } &
|
TBC$_{CF}$ &
|
||||||
|
|
||||||
{\color[HTML]{FFFFFF}TBC }&
|
TBC &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{R}$ } &
|
TBC$_{R}$ &
|
||||||
{\color[HTML]{FFFFFF}TBC$_{CF}$ } \\
|
TBC$_{CF}$ \\
|
||||||
\hline
|
\hline
|
||||||
|
|
||||||
$F_{avg}$ &
|
$F_{avg}$ &
|
||||||
|
@ -704,7 +704,7 @@ TSHC把这个评论分类为\textit{错误探测 (L2-2)},然而它实际属于
|
||||||
由于缺乏指示词,\textit{价值否定 (L2-5)}的匹配规则不能被该评论匹配上,
|
由于缺乏指示词,\textit{价值否定 (L2-5)}的匹配规则不能被该评论匹配上,
|
||||||
而基于机器学习的方法倾向于把它分类为\textit{错误探测 (L2-2)}。
|
而基于机器学习的方法倾向于把它分类为\textit{错误探测 (L2-2)}。
|
||||||
因为过于详细的描述使得该评论更像是关于代码更正的。
|
因为过于详细的描述使得该评论更像是关于代码更正的。
|
||||||
我们尝试在阶段2中添加额外的特征来解决这个问题(如\texttt{评论类型} and \texttt{包含代码})),
|
我们尝试在阶段2中添加额外的特征来解决这个问题(如\texttt{评论类型} 和 \texttt{包含代码})),
|
||||||
这些特征有助于TSHC分辨一个评论是关于\pr 级别的还是解决方案级别的。
|
这些特征有助于TSHC分辨一个评论是关于\pr 级别的还是解决方案级别的。
|
||||||
虽然这些特征属性确实能在一定程度上提升TSHC的分类效果,但是还不足以完全地区分两种类型的评论,
|
虽然这些特征属性确实能在一定程度上提升TSHC的分类效果,但是还不足以完全地区分两种类型的评论,
|
||||||
因此我们计划通过继续扩展标注集和引入情感分析来进一步提升TSHC的分类效果。
|
因此我们计划通过继续扩展标注集和引入情感分析来进一步提升TSHC的分类效果。
|
||||||
|
@ -766,7 +766,7 @@ TSHC把这个评论分类为\textit{错误探测 (L2-2)},然而它实际属于
|
||||||
\begin{tabular}{p{0.9\textwidth}}
|
\begin{tabular}{p{0.9\textwidth}}
|
||||||
%%%%%%%
|
%%%%%%%
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\rowcolor{gray}\textbf{实例 1} (代码级评论)\\ \hline
|
\rowcolor{lightgray}\textbf{实例 1} (代码级评论)\\ \hline
|
||||||
\rowcolor{lightgray}
|
\rowcolor{lightgray}
|
||||||
变更代码: \\
|
变更代码: \\
|
||||||
$-$ \color{red} \texttt{assert r.save, ``First save should be successful''}\\
|
$-$ \color{red} \texttt{assert r.save, ``First save should be successful''}\\
|
||||||
|
@ -781,7 +781,7 @@ $-$ \color{red} \texttt{assert r.save, ``First save should be successful''}\\
|
||||||
|
|
||||||
%%%%%%%
|
%%%%%%%
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\rowcolor{gray}\textbf{实例 2} (代码级评论) \\ \hline
|
\rowcolor{lightgray}\textbf{实例 2} (代码级评论) \\ \hline
|
||||||
\rowcolor{lightgray}
|
\rowcolor{lightgray}
|
||||||
变更代码: \\
|
变更代码: \\
|
||||||
$-$ \color{red} \texttt{``\#{schema\_search\_path}-\#{sql}''}\\
|
$-$ \color{red} \texttt{``\#{schema\_search\_path}-\#{sql}''}\\
|
||||||
|
@ -796,7 +796,7 @@ $-$ \color{red} \texttt{``\#{schema\_search\_path}-\#{sql}''}\\
|
||||||
|
|
||||||
%%%%%%%
|
%%%%%%%
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\rowcolor{gray}\textbf{实例 3} (普通评论)\\ \hline
|
\rowcolor{lightgray}\textbf{实例 3} (普通评论)\\ \hline
|
||||||
\rowcolor{lightgray}
|
\rowcolor{lightgray}
|
||||||
Pull-request 描述: \\
|
Pull-request 描述: \\
|
||||||
after\_remove callbacks only run if record was removed\\
|
after\_remove callbacks only run if record was removed\\
|
||||||
|
@ -811,7 +811,7 @@ $-$ \color{red} \texttt{``\#{schema\_search\_path}-\#{sql}''}\\
|
||||||
|
|
||||||
%%%%%%%
|
%%%%%%%
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\rowcolor{gray}\textbf{实例 4} (代码级评论) \\ \hline
|
\rowcolor{lightgray}\textbf{实例 4} (代码级评论) \\ \hline
|
||||||
\rowcolor{lightgray}
|
\rowcolor{lightgray}
|
||||||
变更代码: \\
|
变更代码: \\
|
||||||
+ \color[HTML]{008B00} \texttt{class TableList}\\
|
+ \color[HTML]{008B00} \texttt{class TableList}\\
|
||||||
|
@ -899,5 +899,5 @@ Also please add a changelog. Thanks.
|
||||||
|
|
||||||
最后,有许多机器学习方法可以用来解决分类问题,机器学习方法的选择直接影响分类性能。
|
最后,有许多机器学习方法可以用来解决分类问题,机器学习方法的选择直接影响分类性能。
|
||||||
因此,我们比较了几种机器学习方法,包括线性回归分类器、adaBoost分类器、随机森林分类器和SVM,
|
因此,我们比较了几种机器学习方法,包括线性回归分类器、adaBoost分类器、随机森林分类器和SVM,
|
||||||
我们发现SVM在分类审查评论方面表现优于其他的算法,并且我们还做了一些必要的参数优化以进一步提高分类器效果。
|
我们发现SVM在分类审查评论方面的表现优于其他的算法。此外,我们还做了一些必要的参数优化以进一步提高分类器的效果。
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ Rahman等人~\cite{rahman2016correct}利用开发者对\pr 所修改文件中的
|
||||||
|
|
||||||
\subsubsection{隐式关联关系提取}
|
\subsubsection{隐式关联关系提取}
|
||||||
我们还利用了\SO 社区中的重复帖子提取标签间的隐式关联关系。
|
我们还利用了\SO 社区中的重复帖子提取标签间的隐式关联关系。
|
||||||
虽然\SO 社区鼓励用户在遇到问题的时候先对已有的资源进行充分的搜索(“search and research”),
|
虽然\SO 社区鼓励用户在遇到问题的时候先对已有的资源进行充分的搜索(“search and re-search”),
|
||||||
如果搜索不到所需要的信息再创建新的问题,然而用户总是会因为各种原因创建重复的问题。
|
如果搜索不到所需要的信息再创建新的问题,然而用户总是会因为各种原因创建重复的问题。
|
||||||
\SO 允许拥有相应权限的用户对重复的问题进行标记,并会显示地在其标题的尾部打上“duplicate”标明其重复性,
|
\SO 允许拥有相应权限的用户对重复的问题进行标记,并会显示地在其标题的尾部打上“duplicate”标明其重复性,
|
||||||
被重复的问题的链接也会被列在该问题的页面中。
|
被重复的问题的链接也会被列在该问题的页面中。
|
||||||
|
@ -279,8 +279,8 @@ $tp<tp_{1}, tp_{2}, \dots,tp_{n}> $
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{被动引用关系抽取}
|
\subsubsection{被动引用关系抽取}
|
||||||
对于一个项目,仅仅从它的\pr 的评论中不足以定位出所有与它有关联的项目,
|
对于一个项目,仅仅从它的\pr 或issue的评论中不足以定位出所有与它有关联的项目,
|
||||||
因为它有可能会在其他项目的\pr 评论中被引用,在这里我们称这种引用为此项目的被动引用关系。
|
因为它有可能会在其他项目的\pr 或issue评论中被引用,在这里我们称这种引用为此项目的被动引用关系。
|
||||||
虽然通过遍历GitHub托管的所有项目的评论来抽取对一个项目的被动引用关系是可行的,
|
虽然通过遍历GitHub托管的所有项目的评论来抽取对一个项目的被动引用关系是可行的,
|
||||||
但是这种方法的时间消耗是非常高的。
|
但是这种方法的时间消耗是非常高的。
|
||||||
如图~\ref{fig:out_ref}所示,在GitHub平台上,
|
如图~\ref{fig:out_ref}所示,在GitHub平台上,
|
||||||
|
@ -291,11 +291,11 @@ $tp<tp_{1}, tp_{2}, \dots,tp_{n}> $
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.8\textwidth]{figures/out_ref.png}
|
\includegraphics[width=0.8\textwidth]{figures/out_ref.png}
|
||||||
\caption{GitHub社区显示\pr 被引用}
|
\caption{GitHub社区中\pr 的引用显示}
|
||||||
\label{fig:out_ref}
|
\label{fig:out_ref}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
对于一个项目,我们首先要获取\pr 的原始html页面,
|
对于一个项目,我们首先要获取\pr 或issue的原始html页面,
|
||||||
这个过程由Python提供的urllib2库实现,我们提供给该库一个\pr 的url链接就可以下载到它的html源代码。
|
这个过程由Python提供的urllib2库实现,我们提供给该库一个\pr 的url链接就可以下载到它的html源代码。
|
||||||
然后,我们再在下载的页面中利用XPath语法定位到所有这种形式的引用链接,
|
然后,我们再在下载的页面中利用XPath语法定位到所有这种形式的引用链接,
|
||||||
具体用到的定位XPath为:
|
具体用到的定位XPath为:
|
||||||
|
@ -318,7 +318,7 @@ $tp<tp_{1}, tp_{2}, \dots,tp_{n}> $
|
||||||
我们首先从关联库(基于场景同现关联库和基于技术依赖关联库)中分别搜索软件的关联软件集合$RS_{CO}$和$RS_{TD}$,
|
我们首先从关联库(基于场景同现关联库和基于技术依赖关联库)中分别搜索软件的关联软件集合$RS_{CO}$和$RS_{TD}$,
|
||||||
集合中的每个元素具有这样的形式:$<rs,rv>$,$rs$指的是关联软件,$rv$指的是该关联软件与给定软件的关联度。
|
集合中的每个元素具有这样的形式:$<rs,rv>$,$rs$指的是关联软件,$rv$指的是该关联软件与给定软件的关联度。
|
||||||
接下来,两个集合进行合并,合并后集合中的每一个元素为:$<rs,rv_{co} + rv_{td}>$,
|
接下来,两个集合进行合并,合并后集合中的每一个元素为:$<rs,rv_{co} + rv_{td}>$,
|
||||||
$rv_{co}$是软件$rs$在基于场景同现关联库的集合$RS_{CO}$中的关联值,
|
$rv_{co}$是软件$rs$在基于场景同现的集合$RS_{CO}$中的关联值,
|
||||||
而$rv_{td}$是软件$rs$在基于技术依赖的集合$RS_{TD}$中的关联值。
|
而$rv_{td}$是软件$rs$在基于技术依赖的集合$RS_{TD}$中的关联值。
|
||||||
最终,基于这两个软件关联库,我们得到了一个关联项目列表,该列表中的元素按照关联度值从大到小进行排序。
|
最终,基于这两个软件关联库,我们得到了一个关联项目列表,该列表中的元素按照关联度值从大到小进行排序。
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ GitHub平台上的贡献审查过程以众包的模式开放给整个社区成
|
||||||
因此,本文围绕着大众化协同开发模式对大众贡献审查技术展开研究。
|
因此,本文围绕着大众化协同开发模式对大众贡献审查技术展开研究。
|
||||||
|
|
||||||
|
|
||||||
第一,\textbf{本文首次提出了\pr 重复性检测的问题,并提出了自动化的解决方案}。
|
第一,\textbf{本文提出了\pr 重复性检测的问题,并提出了自动化的解决方案}。
|
||||||
对于一个新提交的\pr ,我们通过计算它与历史\pr 的相似度来检测他们之间的重复性。
|
对于一个新提交的\pr ,我们通过计算它与历史\pr 的相似度来检测他们之间的重复性。
|
||||||
具体地,我们从两个方面计算\pr 相似度:文本相似度(标题相似度和描述相似度)和变更相似度。
|
具体地,我们从两个方面计算\pr 相似度:文本相似度(标题相似度和描述相似度)和变更相似度。
|
||||||
通过实验,我们测试了不同类型的相似度对检测效果的影响,
|
通过实验,我们测试了不同类型的相似度对检测效果的影响,
|
||||||
|
@ -20,7 +20,7 @@ GitHub平台上的贡献审查过程以众包的模式开放给整个社区成
|
||||||
最终,我们利用贪心搜索算法把两类相似度线性加权混合,并且利用混合相似度获得了更好的探测效果。
|
最终,我们利用贪心搜索算法把两类相似度线性加权混合,并且利用混合相似度获得了更好的探测效果。
|
||||||
此外,我们还人工标注了一组GitHub平台上的重复\pr 数据集。
|
此外,我们还人工标注了一组GitHub平台上的重复\pr 数据集。
|
||||||
|
|
||||||
第二,\textbf{本文首次研究了如何自动化地识别审查评论所涵盖的审查点}。
|
第二,\textbf{本文研究了如何自动化地识别审查评论所涵盖的审查点}。
|
||||||
所谓的审查点指的是审查者对一个\pr 的审查关注点,比如代码质量、项目管理等。
|
所谓的审查点指的是审查者对一个\pr 的审查关注点,比如代码质量、项目管理等。
|
||||||
通过人工调研的方式,我们构建了一个针对审查点的二级分类体系,
|
通过人工调研的方式,我们构建了一个针对审查点的二级分类体系,
|
||||||
该体系涵盖了代码改进、项目管理等4个一级分类以及等缺陷探测、规范检查、礼貌回应等11个二级分类。
|
该体系涵盖了代码改进、项目管理等4个一级分类以及等缺陷探测、规范检查、礼貌回应等11个二级分类。
|
||||||
|
@ -31,7 +31,7 @@ GitHub平台上的贡献审查过程以众包的模式开放给整个社区成
|
||||||
|
|
||||||
|
|
||||||
第三,\textbf{本文提出了为大众贡献推荐跨项目的审查者}。
|
第三,\textbf{本文提出了为大众贡献推荐跨项目的审查者}。
|
||||||
实现该目标的关键所在是发现一个项目的关联项目,
|
实现该目标的关键所在是构建一个项目的关联项目,
|
||||||
在本文中,我们利用Stack Overflow社区中用户的群体标记行为建立了基于场景同现的软件关联库,
|
在本文中,我们利用Stack Overflow社区中用户的群体标记行为建立了基于场景同现的软件关联库,
|
||||||
利用GitHub社区中贡献之间的引用关系构建了基于技术依赖的软件关联库。
|
利用GitHub社区中贡献之间的引用关系构建了基于技术依赖的软件关联库。
|
||||||
基于构建的软件关联库,我们把一个项目的关联项目的核心开发者和活跃贡献者,推荐参与到该项目的贡献审查中。
|
基于构建的软件关联库,我们把一个项目的关联项目的核心开发者和活跃贡献者,推荐参与到该项目的贡献审查中。
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
\begin{denotation}
|
\begin{denotation}
|
||||||
|
|
||||||
\item[PR] 贡献合并请求(Pull-request)
|
\item[PR] 贡献合并请求(Pull-request)
|
||||||
\item[MCR] 现代代码审查(Moder Code Review)
|
\item[MCR] 现代代码审查(Modern Code Review)
|
||||||
\item[API] 应用程序编程接口(Application Programming Interface)
|
\item[API] 应用程序编程接口(Application Programming Interface)
|
||||||
\item[CI] 持续集成(Continuous Integration)
|
\item[CI] 持续集成(Continuous Integration)
|
||||||
\item[NLP] 自然语言处理(Natural Language Processing)
|
\item[NLP] 自然语言处理(Natural Language Processing)
|
||||||
|
|
|
@ -10,15 +10,15 @@
|
||||||
以缩短软件的研发周期,使软件尽快投入到市场中。
|
以缩短软件的研发周期,使软件尽快投入到市场中。
|
||||||
% 广大开发者投入开源
|
% 广大开发者投入开源
|
||||||
同时,随着开源运动的成功,越来越多的开发者参与到开源软件的开发中来。
|
同时,随着开源运动的成功,越来越多的开发者参与到开源软件的开发中来。
|
||||||
甚至一些传统的商业软件公司如Microsoft、IBM也都在逐渐地加大对开源运动的投入。
|
甚至一些传统的商业软件公司如Microsoft、IBM也都在逐渐地加大对开源社区的投入。
|
||||||
各类开源社区中开发者的贡献热情空前高涨,
|
开源社区中开发者的贡献热情空前高涨,
|
||||||
如图~\ref{fig:github_user}所示,
|
如图~\ref{fig:github_user}所示,
|
||||||
% 仅GitHub平台就拥有超过**位注册用户和托管了超过6千万的代码仓库(截止到2017年8月)。
|
% 仅GitHub平台就拥有超过**位注册用户和托管了超过6千万的代码仓库(截止到2017年8月)。
|
||||||
仅GitHub平台就拥有超过1千万的注册用户~\footnote{根据GHTorrent(\url{www.ghtorrent.org})提供的数据统计}。
|
仅GitHub平台就拥有超过1千万的注册用户~\footnote{根据GHTorrent(\url{www.ghtorrent.org})提供的数据统计}。
|
||||||
开源软件开发俨然已经到了群体大众化时代。
|
开源软件开发俨然已经到了群体大众化时代。
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\center
|
||||||
\includegraphics[width=0.96\textwidth]{figures/user_num.pdf}
|
\includegraphics[width=0.96\textwidth]{figures/user_num.pdf}
|
||||||
\caption{GitHub用户增长趋势图}
|
\caption{GitHub用户增长趋势图}
|
||||||
\label{fig:github_user}
|
\label{fig:github_user}
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
近些年,随着软件开发模式的演化和开发工具的发展,
|
近些年,随着软件开发模式的演化和开发工具的发展,
|
||||||
现代代码审查(Modern Code Review, MCR)由于具有社交化、轻量级等特性受到了越来越多的关注,
|
现代代码审查(Modern Code Review, MCR)由于具有社交化、轻量级等特性受到了越来越多的关注,
|
||||||
在这种审查模式下,审查者可以通过一种较高效的方式对大众贡献进行审查。
|
在这种审查模式下,审查者可以通过一种较高效的方式对大众贡献进行审查。
|
||||||
比如,GitHub平台把贡献审查通过众包的方式开发给社区成员,
|
比如,GitHub平台把贡献审查通过众包的方式开放给社区成员,
|
||||||
社区中任何感兴趣的开发者都可以自由地对一次代码贡献发表审查意见,
|
社区中任何感兴趣的开发者都可以自由地对一次代码贡献发表审查意见,
|
||||||
并且其透明可追溯的工作环境还允许参与者之间通过异步的方式进行交流。
|
并且其透明可追溯的工作环境还允许参与者之间通过异步的方式进行交流。
|
||||||
因为尤其适合开源软件的开发模式,MCR正在被大量的开源社区和平台所应用。
|
因为尤其适合开源软件的开发模式,MCR正在被大量的开源社区和平台所应用。
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
从第一个开源GNU项目开始,越来越多的开发者参与到了开源项目的开发中,
|
从第一个开源GNU项目开始,越来越多的开发者参与到了开源项目的开发中,
|
||||||
与此同时,一些开源软件门户社区如Linux、Apache等开始出现。
|
与此同时,一些开源软件门户社区如Linux、Apache等开始出现。
|
||||||
随后出现的项目托管社区为用户加入开源世界提供了丰富的辅助管理工具和交流方式,促使了大量开源项目的产生。
|
随后出现的项目托管社区为用户加入开源世界提供了丰富的辅助管理工具和交流方式,促使了大量开源项目的产生。
|
||||||
之后开源社区继续分化,各类社区关注点进一步细分,有一些提供代码托管,有一些提供资讯博客,又有一些提供开发知识问答。
|
之后开源社区继续分化,各类社区关注点进一步细分,有一些提供代码托管,有一些提供资讯博客,还有一些提供开发知识问答。
|
||||||
这些社区提供了更专业、更优秀以及更全面的服务,促进了开源社区的发展和其多样化。
|
这些社区提供了更专业、更优秀以及更全面的服务,促进了开源社区的发展和其多样化。
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ GitHub社区是近些年来发展最快的一个开源社区,如图\ref{fig:gi
|
||||||
% 如图【加个GitHub介绍图】所示,
|
% 如图【加个GitHub介绍图】所示,
|
||||||
在GitHub上,所有参与者都处于一个完全开放的开发环境,参与者们互相之间能及时地了解到其他人的动态,
|
在GitHub上,所有参与者都处于一个完全开放的开发环境,参与者们互相之间能及时地了解到其他人的动态,
|
||||||
社区内任何一个公开项目的发展轨迹对所有开发者都是可见的。
|
社区内任何一个公开项目的发展轨迹对所有开发者都是可见的。
|
||||||
此外,Github提供了代码托管和版本控制、缺陷跟踪、权限管理等开发过程管理工具。
|
此外,Github还提供了多种开发过程管理工具,如缺陷跟踪和持续集成等。
|
||||||
得益于社交化的特性以及这些工具的便利性,大众开发者在GitHub社区展现了较高活跃度。
|
得益于社交化的特性以及这些工具的便利性,大众开发者在GitHub社区展现了较高活跃度。
|
||||||
|
|
||||||
%Git - Pull-request
|
%Git - Pull-request
|
||||||
|
@ -92,7 +92,7 @@ Pull-based开发模式是GitHub社区基于Git开创的一种全新的围绕\pr
|
||||||
该仓库包含了中心代码库中的所有信息,如项目完整的开发分支、提交记录等。
|
该仓库包含了中心代码库中的所有信息,如项目完整的开发分支、提交记录等。
|
||||||
贡献者可以在克隆的本地仓库中修复bug或者添加新的功能,所有这些操作都无需获得中心仓库的权限,都是在本地完成的,
|
贡献者可以在克隆的本地仓库中修复bug或者添加新的功能,所有这些操作都无需获得中心仓库的权限,都是在本地完成的,
|
||||||
这个过程避免了大众开发者对中心仓库的影响,同时也能较好地规避多个开发者之间产生贡献冲突等。
|
这个过程避免了大众开发者对中心仓库的影响,同时也能较好地规避多个开发者之间产生贡献冲突等。
|
||||||
完成修改后,贡献者如果想把所做修改合并到中心版本库中,这时贡献者可以向中心代码库发送Pull-Request,
|
完成修改后,贡献者如果想把所做修改合并到中心版本库中,这时贡献者可以向中心代码库发送\pr ,
|
||||||
请求核心开发人员“拉取”自己的代码更改到中心仓库中。
|
请求核心开发人员“拉取”自己的代码更改到中心仓库中。
|
||||||
在接收到请求后,核心人员会对其进行审查然后决定是否合并本次PR。
|
在接收到请求后,核心人员会对其进行审查然后决定是否合并本次PR。
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ Pull-based开发模式是GitHub社区基于Git开创的一种全新的围绕\pr
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.96\textwidth]{figures/gh_pr.pdf}
|
\includegraphics[width=0.96\textwidth]{figures/gh_pr.pdf}
|
||||||
\caption{GitHub平台Pull-request增长趋势图}
|
\caption{GitHub平台Pull-request数量增长趋势图}
|
||||||
\label{fig:pr_stas}
|
\label{fig:pr_stas}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ Pull-based开发模式是GitHub社区基于Git开创的一种全新的围绕\pr
|
||||||
Fagan~\cite{Fagan:1976}在上个世纪70年代提出代码审查(Code inspection)这个概念,
|
Fagan~\cite{Fagan:1976}在上个世纪70年代提出代码审查(Code inspection)这个概念,
|
||||||
现如今,该代码审查模式常被称为传统的代码审查~\cite{Ackerman:1989,Kollanus:2009,Bacchelli:2013}。
|
现如今,该代码审查模式常被称为传统的代码审查~\cite{Ackerman:1989,Kollanus:2009,Bacchelli:2013}。
|
||||||
传统的代码审查有良好定义的执行步骤和规范,这些步骤主要通过小组会议的方式进行~\cite{Fagan:1976}。
|
传统的代码审查有良好定义的执行步骤和规范,这些步骤主要通过小组会议的方式进行~\cite{Fagan:1976}。
|
||||||
会议中各参与者在主持者的协调下报告自己发现的问题并由记录员进行记录,接着这些缺陷会反馈给源代码作者进行修复,
|
会议中各参与者在主持者的协调下报告自己发现的问题并由记录员进行记录,接着这些缺陷会被反馈给源代码作者进行修复,
|
||||||
最后代码贡献者提出的解决方案会被验证是否真正地修复了相应的缺陷。
|
最后代码贡献者提出的解决方案会被验证是否真正地修复了相应的缺陷。
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ Fagan~\cite{Fagan:1976}在上个世纪70年代提出代码审查(Code inspecti
|
||||||
因为尤其适合开源软件的开发模式,现代代码审查正在被大量的开源社区和平台所应用。
|
因为尤其适合开源软件的开发模式,现代代码审查正在被大量的开源社区和平台所应用。
|
||||||
GitHub平台上的贡献审查就是一种更加社会化的现代代码审查过程,
|
GitHub平台上的贡献审查就是一种更加社会化的现代代码审查过程,
|
||||||
图~\ref{fig:gh_cr}是GitHub平台上的贡献审查示意图。
|
图~\ref{fig:gh_cr}是GitHub平台上的贡献审查示意图。
|
||||||
GitHub平台把贡献审查流程和\pr 的开发模式集成到一起,一个\pr 从提交到被审阅再到被裁定的具体过程为:
|
GitHub平台把贡献审查流程和\pr 的开发模式集成到一起,一个\pr 从提交到被审查再到被裁定的具体过程为:
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
|
@ -164,14 +164,14 @@ GitHub平台把贡献审查流程和\pr 的开发模式集成到一起,一个\
|
||||||
对于一个\pr ,审查者的审查关注点是很多样的~\cite{Tsay:2014a}。
|
对于一个\pr ,审查者的审查关注点是很多样的~\cite{Tsay:2014a}。
|
||||||
\pr 要解决的bug是否真的存在、贡献者想要添加的新功能是否符合真实需求、代码变更里是否包含缺陷以及代码风格是否与项目的规范保持了一致性都是常见的审查点。
|
\pr 要解决的bug是否真的存在、贡献者想要添加的新功能是否符合真实需求、代码变更里是否包含缺陷以及代码风格是否与项目的规范保持了一致性都是常见的审查点。
|
||||||
此外,为了营造良好的协同开发的氛围,核心开发者还会和贡献者进行一些社交性的互动~\cite{Tsay2014Influence},以感谢或者鼓励外围开发者的贡献。
|
此外,为了营造良好的协同开发的氛围,核心开发者还会和贡献者进行一些社交性的互动~\cite{Tsay2014Influence},以感谢或者鼓励外围开发者的贡献。
|
||||||
\item 裁定:一位或多位核心开发者综合考虑代码审查结果,对提交的\pr 的合并与否做出裁定。
|
\item 裁定:一位或多位核心开发者综合考虑代码审查结果,对\pr 的合并与否做出裁定。
|
||||||
如果该\pr 通过审查,则镜像仓库中的新代码和完整的提交记录将被合并到中心代码库中。反之,该合并请求将被拒绝,即中心代码库不会发生任何变化。
|
如果该\pr 通过审查,则镜像仓库中的新代码和完整的提交记录将被合并到中心代码库中。反之,该合并请求将被拒绝,即中心代码库不会发生任何变化。
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
从图~\ref{fig:gh_cr}和上述流程可以看到,在GitHub平台的这种审查模式下,
|
从图~\ref{fig:gh_cr}和上述流程可以看到,在GitHub平台的这种审查模式下,
|
||||||
审查者可以通过一种较高效的方式对代码进行审查。
|
审查者可以通过一种较高效的方式对代码进行审查。
|
||||||
% 自由化
|
% 自由化
|
||||||
GitHub平台把代码审查通过众包的方式开发给社区成员,
|
GitHub平台把代码审查通过众包的方式开放给社区成员,
|
||||||
社区中任何感兴趣的开发者都可以自由地对一次代码贡献发表审查意见。
|
社区中任何感兴趣的开发者都可以自由地对一次代码贡献发表审查意见。
|
||||||
不像传统的代码审查那样正式,GitHub的贡献审查组织形式很自由,
|
不像传统的代码审查那样正式,GitHub的贡献审查组织形式很自由,
|
||||||
任何人可以充当任意的角色从而完成不同的任务。
|
任何人可以充当任意的角色从而完成不同的任务。
|
||||||
|
@ -182,11 +182,11 @@ GitHub提供的工作环境是透明可追溯的,审查者以及贡献者之
|
||||||
% 工具化
|
% 工具化
|
||||||
GitHub为贡献审查过程提供了很多的工具支持,
|
GitHub为贡献审查过程提供了很多的工具支持,
|
||||||
比如持续集成服务帮助检查代码更改是否影响软件的可运行性,
|
比如持续集成服务帮助检查代码更改是否影响软件的可运行性,
|
||||||
一些可视化工具能够更直观的展示出一个\pr 对那些文件做了哪些修改,
|
一些可视化工具能够更直观地展示出一个\pr 对哪些文件做了哪些修改,
|
||||||
还有一些其他的辅助工具比如“@”、表情符号等可以使得沟通更顺畅和高效。
|
还有一些其他的辅助工具比如“@”、表情符号等可以使得沟通更顺畅和高效。
|
||||||
|
|
||||||
% mcr弊端
|
% mcr弊端
|
||||||
MCR的这些特性使得它被业界广泛采用,但是这种审查模式也存在这问题。
|
MCR的这些特性使得它被业界广泛采用,但是这种审查模式也存在着问题。
|
||||||
MCR不像传统代码审查那样有统一的规划管理和严格的执行步骤,
|
MCR不像传统代码审查那样有统一的规划管理和严格的执行步骤,
|
||||||
每一个参与者的行为都没有严格的管控和引导,这使得MCR本身的质量难以得到保证。
|
每一个参与者的行为都没有严格的管控和引导,这使得MCR本身的质量难以得到保证。
|
||||||
而高效和高质量的代码审查过程有利于加快大众协同过程,提高群体贡献的汇聚效率,
|
而高效和高质量的代码审查过程有利于加快大众协同过程,提高群体贡献的汇聚效率,
|
||||||
|
@ -206,7 +206,7 @@ MCR不像传统代码审查那样有统一的规划管理和严格的执行步
|
||||||
% \begin{itemize}
|
% \begin{itemize}
|
||||||
% \item PR实证研究 gegious
|
% \item PR实证研究 gegious
|
||||||
% \item 影响PR合并的因素
|
% \item 影响PR合并的因素
|
||||||
% \item PR审阅人推荐
|
% \item PR审查人推荐
|
||||||
% \item 优先级
|
% \item 优先级
|
||||||
% \end{itemize}
|
% \end{itemize}
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ Gousios等人~\cite{Gousios:2014,Rigby:2014}通过对GitHub平台上数以百万
|
||||||
|
|
||||||
|
|
||||||
Tsay等人~\cite{Tsay:2014b}研究了社交信息和技术信息如何被用来评估\pr 。
|
Tsay等人~\cite{Tsay:2014b}研究了社交信息和技术信息如何被用来评估\pr 。
|
||||||
他们发现审查者会综合考虑\pr 涉及的技术因素以及其贡献者与审阅者之间的社交关联。
|
他们发现审查者会综合考虑\pr 涉及的技术因素以及贡献者与审查者之间的社交关联。
|
||||||
被深度讨论的\pr 被接受的概率更低,而贡献者在项目中的活跃行为可以削弱这种影响。
|
被深度讨论的\pr 被接受的概率更低,而贡献者在项目中的活跃行为可以削弱这种影响。
|
||||||
成熟的项目在评估一个\pr 的时候,更有可能因为社区成员的压力而倾向于采取保守的态度。
|
成熟的项目在评估一个\pr 的时候,更有可能因为社区成员的压力而倾向于采取保守的态度。
|
||||||
|
|
||||||
|
@ -230,21 +230,21 @@ Yu等人~\cite{Vasilescu:B,Yu:2016}通过定量分析研究了持续集成技术
|
||||||
他们发现持续集成是一项非常重要的影响因素,它甚至可以影响传统评估模型中一些因素的评估效果。
|
他们发现持续集成是一项非常重要的影响因素,它甚至可以影响传统评估模型中一些因素的评估效果。
|
||||||
持续集成测试失败的\pr 有更高的概率(89.6\%)最终被拒绝,而持续集成测试所用时间能够显著影响\pr 的合并延迟。
|
持续集成测试失败的\pr 有更高的概率(89.6\%)最终被拒绝,而持续集成测试所用时间能够显著影响\pr 的合并延迟。
|
||||||
他们还发现\pr 的大小、评论数以及贡献者的社交属性等因素,在有持续集成测试服务的场景下仍然有同样强烈的影响效果。
|
他们还发现\pr 的大小、评论数以及贡献者的社交属性等因素,在有持续集成测试服务的场景下仍然有同样强烈的影响效果。
|
||||||
开源项目更倾向于选择小规模、未过度讨论、来源于熟悉和可信的贡献者的\pr 。
|
开源项目更倾向于选择小规模、未被过度讨论、来源于熟悉和可信贡献者的\pr 。
|
||||||
|
|
||||||
相关工作还研究了如何通过自动化的方式为\pr
|
相关工作还研究了如何通过自动化的方式为\pr
|
||||||
推荐合适的代码审查者~\cite{Lima,Yu:2015,Thongtanunam:2015,jiang:2015,rahman2016correct}。
|
推荐合适的代码审查者~\cite{Lima,Yu:2015,Thongtanunam:2015,jiang:2015,rahman2016correct}。
|
||||||
Yu等人分别对比了基于信息检索、机器学习、文件路径和评论网络的方式,
|
Yu等人分别对比了基于信息检索、机器学习、文件路径和评论网络的方式,
|
||||||
其中基于评论网络的方法是他们提出的一种更加轻量级的方法,该方法通过评论互动历史挖掘\pr 提交者和审阅和之间的前期社交关联度,
|
其中基于评论网络的方法是他们提出的一种更加轻量级的方法,该方法通过评论互动历史挖掘\pr 提交者和审查者的前期社交关联度,
|
||||||
然后基于此关联度他们为一个\pr 推荐合适的审阅者。
|
然后基于此关联度他们为一个\pr 推荐合适的审查者。
|
||||||
通过对各种方法以及各种方法组合的评估,他们发现综合利用基于文件路径和社交关联的推荐效果是最佳的。
|
通过对各种方法以及各种方法组合的评估,他们发现综合利用基于文件路径和社交关联的推荐效果是最佳的。
|
||||||
|
|
||||||
|
|
||||||
Veen等人~\cite{Veen:2015}构建了一个能够自动决策\pr 处理优先级的工具。
|
Veen等人~\cite{Veen:2015}构建了一个能够自动决策\pr 处理优先级的工具。
|
||||||
此工具检查所有处于活跃状态的\pr ,通过分析它们的规模(提交数、文件数、代码行变动数等)、
|
此工具检查所有处于活跃状态的\pr ,通过分析它们的规模(提交数、文件数、代码行变动数等)、
|
||||||
存在时间、贡献者的贡献记录等因素来对他们进行综合排序,然后利用预测模型为审查者推荐最应该优先关注的\pr 。
|
存在时间、贡献者的贡献记录等因素来对他们进行综合排序,然后利用预测模型为审查者推荐最应该优先关注的\pr 。
|
||||||
此外,该工具还允许审阅者根据多种条件对\pr 进行筛选排序。
|
此外,该工具还允许审查者根据多种条件对\pr 进行筛选排序。
|
||||||
他们的目标是通过该工具而提高\pr 的处理效率。
|
他们的目标是通过该工具提高\pr 的处理效率。
|
||||||
|
|
||||||
\subsection{代码审查相关研究}
|
\subsection{代码审查相关研究}
|
||||||
|
|
||||||
|
@ -266,34 +266,34 @@ Veen等人~\cite{Veen:2015}构建了一个能够自动决策\pr 处理优先级
|
||||||
不同于传统的代码审查,MCR的整个执行过程更加的灵活方便,并且有很多工具的支持,因此代价消耗比较低。
|
不同于传统的代码审查,MCR的整个执行过程更加的灵活方便,并且有很多工具的支持,因此代价消耗比较低。
|
||||||
由于非常适合开源软件的异步协同开发模式,MCR已经被开源社区广泛采用。
|
由于非常适合开源软件的异步协同开发模式,MCR已经被开源社区广泛采用。
|
||||||
Rigby等人~\cite{Rigby:2006,Rigby:2008,Rigby:2011}研究了开源社区内的MCR过程,
|
Rigby等人~\cite{Rigby:2006,Rigby:2008,Rigby:2011}研究了开源社区内的MCR过程,
|
||||||
基于对GCC,Linux,Mozilla等项目的实证调研,他们研究了代码审阅过程中所涉及的机理和开发者行为、
|
基于对GCC,Linux,Mozilla等项目的实证调研,他们研究了代码审查过程中所涉及的机理和开发者行为、
|
||||||
各利益相关方如何在审阅过程中与对方交互。
|
各利益相关方如何在审查过程中与对方交互。
|
||||||
% *****more****
|
% *****more****
|
||||||
Basum~\cite{Baum:2016}等人分析了商业软件开发团队中的MCR过程,
|
Basum~\cite{Baum:2016}等人分析了商业软件开发团队中的MCR过程,
|
||||||
他们分析了代码审阅在商业软件开发过程中是否被采用的原因,以及影响代码审阅使用形式的因素。
|
他们分析了代码审查在商业软件开发过程中是否被采用的原因,以及影响代码审查使用形式的因素。
|
||||||
他们发现当产生了问题时代码审阅才往往被执行;而文化和社会因素是导致代码审阅不被执行的主要影响因素,
|
他们发现当产生了问题时代码审查才往往被执行;而文化和社会因素是导致代码审查不被执行的主要影响因素,
|
||||||
此外时间和精力消耗也是影响代码审阅不被采用的重要因素。
|
此外时间和精力消耗也是影响代码审查不被采用的重要因素。
|
||||||
虽然代码审阅的主要目的一致被认为是发现潜在的缺陷以保证软件的质量,
|
虽然代码审查的主要目的一致被认为是发现潜在的缺陷以保证软件的质量,
|
||||||
但是近期的研究~\cite{Bacchelli:2013}发现除此之外还存在着其他的一些审查动机,
|
但是近期的研究~\cite{Bacchelli:2013}发现除此之外还存在着其他的一些审查动机,
|
||||||
例如:知识转移、增加团队共识以及解决方案的改进等。
|
例如:知识转移、增加团队共识以及解决方案的改进等。
|
||||||
此外,实际的代码审查结果中,针对代码改进的审查数量是最多的,这种类型的改进指的是代码风格和规范方面的,
|
此外,实际的代码审查结果中,针对代码改进的审查数量是最多的,这种类型的改进指的是代码风格和规范方面的,
|
||||||
而不是针对解决方案的设计和性能方面的优化。
|
而不是针对解决方案的设计和性能方面的优化。
|
||||||
Mcintosh等人~\cite{Mcintosh:2014}分析了代码审查覆盖率和参与度对软件质量的影响,
|
Mcintosh等人~\cite{Mcintosh:2014}分析了代码审查覆盖率和参与度对软件质量的影响,
|
||||||
代码审查覆盖率指的有多少比例的代码修改被审阅了,而参与度指的是有多少审阅者参与了审阅过程以及其行为活动。
|
代码审查覆盖率指的有多少比例的代码修改被审查了,而参与度指的是有多少审查者参与了审查过程以及其行为活动。
|
||||||
他们发现这两个指标都和软件质量有很强的影响,低代码审查覆盖率和参与度分别能够导致2个和5个额外的代码缺陷。
|
他们发现这两个指标都对软件质量有很强的影响,低代码审查覆盖率和参与度分别能够导致2个和5个额外的代码缺陷。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
近些年,协同开发工具已经吸取了较多社交媒体的特性~\cite{Storey2014The,Zhu2016Effectiveness}。
|
近些年,协同开发工具已经吸取了较多社交媒体的特性~\cite{Storey2014The,Zhu2016Effectiveness}。
|
||||||
特别是GitHub平台把代码审阅过程和\pr 开发过程集成到一起,使得代码审阅过程更加的公开和透明~\cite{Storey2014The}。
|
特别是GitHub平台把代码审查过程和\pr 开发过程集成到一起,使得代码审查过程更加的公开和透明~\cite{Storey2014The}。
|
||||||
对\pr 的审查也是一种轻量级的代码审阅形式,~\cite{Beller:2014,Bacchelli:2013},
|
对\pr 的审查也是一种轻量级的代码审查形式,~\cite{Beller:2014,Bacchelli:2013},
|
||||||
审阅者通过评论的形式对代码贡献反馈自己的意见。
|
审查者通过评论的形式对代码贡献反馈自己的意见。
|
||||||
Tsay等人~\cite{Tsay:2014a}对GitHub上被深度讨论的\pr 进行了调研,
|
Tsay等人~\cite{Tsay:2014a}对GitHub上被深度讨论的\pr 进行了调研,
|
||||||
他们研究了审查者如何在开放式的工作环境中评估和讨论大众贡献。
|
他们研究了审查者如何在开放式的工作环境中评估和讨论大众贡献。
|
||||||
他们发现核心开发者和其它利益相关方会提出更好的解决方案,审查者也通过各种方式来影响一个\pr 的最终合并结果。
|
他们发现核心开发者和其它利益相关方会提出更好的解决方案,审查者也通过各种方式来影响一个\pr 的最终合并结果。
|
||||||
他们还发现即使项目管理者拒绝了一个贡献者的\pr 也会进行一定的安抚并作出合理的解释。
|
他们还发现即使项目管理者拒绝了一个贡献者的\pr 也会进行一定的安抚并作出合理的解释。
|
||||||
Georgios等人~\cite{Gousios:2014b}通过对700多位管理者的调研,分析了GitHub平台上审查者如何对\pr 进行审查以及其面临的挑战,
|
Georgios等人~\cite{Gousios:2014b}通过对700多位管理者的调研,分析了GitHub平台上审查者如何对\pr 进行审查以及其面临的挑战,
|
||||||
他们发现GitHub的项目管理者在合并或拒绝一个\pr 的时候,主要考察\pr 本身的质量以及其与项目的发展规划的一致性。
|
他们发现GitHub的项目管理者在合并或拒绝一个\pr 的时候,主要考察\pr 本身的质量以及其与项目发展规划的一致性。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -327,8 +327,8 @@ GitHub上的贡献审查过程被集成到\pr 开发模式,任何开发者都
|
||||||
本部分的贡献为:
|
本部分的贡献为:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item 首次提出了\pr 的重复性检测问题,并提出了能够自动检测重复\pr 的方法模型。
|
\item 一个能够自动检测\pr 重复性的方法模型。
|
||||||
\item 通过自动识别和人工检查的方式,构建了一个高质量的历史重复\pr 数据集。
|
\item 一个通过自动识别和人工检查构建的历史重复\pr 数据集。
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
@ -339,9 +339,9 @@ GitHub上的贡献审查过程被集成到\pr 开发模式,任何开发者都
|
||||||
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item 一个两层的针对审查评论的审查点分类体系,该体系涵盖了代码改进、项目管理等4个一级分类以及等缺陷探测、规范检查、礼貌回应等11个二级分类。
|
\item 一个两层的针对审查评论的审查点分类体系,该体系涵盖了代码改进、项目管理等4个一级分类以及缺陷探测、规范检查、礼貌回应等11个二级分类。
|
||||||
\item 对GitHub平台3个项目的5000多个审查评论的高质量人工标注集。
|
\item 一个对GitHub平台3个项目的5000多个审查评论的高质量人工标注集。
|
||||||
\item 一个能够自动探测审阅评论所涵盖审查点的两阶段混合分类模型。
|
\item 一个能够自动探测审查评论所涵盖审查点的两阶段混合分类模型。
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ GitHub上的贡献审查过程被集成到\pr 开发模式,任何开发者都
|
||||||
我们为新提交的\pr 探测出最相似的历史\pr 列表,以降低贡献审查的重复性。
|
我们为新提交的\pr 探测出最相似的历史\pr 列表,以降低贡献审查的重复性。
|
||||||
|
|
||||||
第三章介绍了我们提出的大众贡献审查点自动识别技术,我们首先针对贡献审查点建立了一个分类体系,
|
第三章介绍了我们提出的大众贡献审查点自动识别技术,我们首先针对贡献审查点建立了一个分类体系,
|
||||||
然后通过一个两阶段的混合分类模型,我们能够实时自动地识别出一个\pr 的审阅过程都涵盖了哪些类型的审查点,
|
然后通过一个两阶段的混合分类模型,我们能够实时自动地识别出一个\pr 的审查过程都涵盖了哪些类型的审查点,
|
||||||
从而帮助审查者提高贡献审查的全面性。
|
从而帮助审查者提高贡献审查的全面性。
|
||||||
|
|
||||||
在第四章中,我们研究了如何为大众贡献推荐跨项目的审查者,
|
在第四章中,我们研究了如何为大众贡献推荐跨项目的审查者,
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
\begin{resume}
|
||||||
|
|
||||||
|
\section*{发表的学术论文} % 发表的和录用的合在一起
|
||||||
|
\begin{enumerate}[{[}1{]}]
|
||||||
|
\addtolength{\itemsep}{-.36\baselineskip}%缩小条目之间的间距,下面类似
|
||||||
|
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
Journal of Computer Science and Technology. (第一作者,待检索,CCF B类期刊)
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
Frontiers of Computer Science. (第一作者,待检索,CCF C类期刊)
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
The 29th International Conference on Software Engineering \& Knowledge Engine.
|
||||||
|
(第一作者,EI检索,CCF C类会议)
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
The 9th Asia-Pacific Symposium on Internetware.
|
||||||
|
(第一作者,EI检索)
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
The 8th Asia-Pacific Symposium on Internetware.
|
||||||
|
(第一作者,EI检索)
|
||||||
|
|
||||||
|
\item XXXXXX.
|
||||||
|
The 2016 International Conference on Software Engineering and Application.
|
||||||
|
(第一作者,待EI检索)
|
||||||
|
|
||||||
|
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
|
\end{resume}
|
Binary file not shown.
|
@ -577,7 +577,8 @@ in \textsf{\@ensubject}\\
|
||||||
\makebox[\textwidth]{\ifisanon{~}\else{Graduate School of National University of %
|
\makebox[\textwidth]{\ifisanon{~}\else{Graduate School of National University of %
|
||||||
Defense Technology}\fi}\\
|
Defense Technology}\fi}\\
|
||||||
\ifisanon{~}\else{Changsha, Hunan, P.\ R.\ China}\fi\\[5mm]
|
\ifisanon{~}\else{Changsha, Hunan, P.\ R.\ China}\fi\\[5mm]
|
||||||
~\@endate~
|
% ~\@endate~
|
||||||
|
~November, 2017~
|
||||||
}
|
}
|
||||||
\end{center}\vfill
|
\end{center}\vfill
|
||||||
\cleardoublepage%
|
\cleardoublepage%
|
||||||
|
|
|
@ -0,0 +1,213 @@
|
||||||
|
# Fdb version 3
|
||||||
|
["bibtex thesis-blind"] 1512024982 "thesis-blind.aux" "thesis-blind.bbl" "thesis-blind" 1512025313
|
||||||
|
"./bstutf8.bst" 1504549846 55011 1fe5d4235dc091808683bef7973a6575 ""
|
||||||
|
"ref/refs.bib" 1510559924 16645 136c5539a5c2db5f05b49f6b83ac4b76 ""
|
||||||
|
"thesis-blind.aux" 1512024994 23561 0f196dedc815c1a0ac05d5a328225889 ""
|
||||||
|
"thesis-blind.bcf" 0 -1 0 ""
|
||||||
|
(generated)
|
||||||
|
"thesis-blind.bbl"
|
||||||
|
"thesis-blind.blg"
|
||||||
|
["pdflatex"] 1512024982 "thesis-blind.tex" "thesis-blind.pdf" "thesis-blind" 1512025313
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/map/fontname/texfonts.map" 1272929888 3287 e6b82fe08f5336d4d5ebc73fb1152e87 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm" 1136768653 1408 5937f58aa508ea2cea4901c07d10f5fe ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/zapfding/pzdr.tfm" 1136768653 1528 f853c4d1b4e0550255e02831fdc8496f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm" 1136768653 3584 f80ddd985bd00e29e9a6047ebd9d4781 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm" 1136768653 1536 06717a2b50de47d4087ac0e6cd759455 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy5.tfm" 1246382020 1120 1e8878807317373affa7f7bba4cf2f6a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy6.tfm" 1246382020 1124 14ccf5552bc7f77ca02a8a402bea8bfb ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy7.tfm" 1246382020 1120 7f9f170e8aa57527ad6c49feafd45d54 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy8.tfm" 1246382020 1120 200be8b775682cdf80acad4be5ef57e4 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib5.tfm" 1246382020 1496 c79f6914c6d39ffb3759967363d1be79 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib6.tfm" 1246382020 1516 a3bf6a5e7ec4401b1f52092dfaaed242 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib7.tfm" 1246382020 1508 6e807ff901c35a5f1fde0ca275533df8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib8.tfm" 1246382020 1528 dab402b9d3774ca98baa037071cee7ae ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm" 1136768653 1116 4e6ba9d7914baa6482fd69f67d126380 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm" 1136768653 1328 c834bbb027764024c09d3d2bf908b5f0 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm" 1136768653 1324 c910af8c371558dc20f2d7822f66fe64 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx5.tfm" 1136768653 1332 f817c21a1ba54560425663374f1b651a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx6.tfm" 1136768653 1344 8a0be4fe4d376203000810ad4dc81558 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx7.tfm" 1136768653 1336 3125ccb448c1a09074e3aa4a9832f130 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx8.tfm" 1136768653 1332 1fde11373e221473104d6cc5993f046e ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1136768653 992 662f679a0b3d2d53c1b94050fdaa3f50 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm" 1136768653 1528 abec98dbc43e172678c11b3b9031252a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1136768653 1520 eccf95517727cb11801f4f1aee3a21b4 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm" 1136768653 1524 554068197b70979a55370e6c6495f441 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr10.tfm" 1136768653 1296 45809c5a464d5f32c8f98ba97c1bb47f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1136768653 1292 296a67155bdbfc32aa9c636f21e91433 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1136768653 1300 b62933e007d01cfd073f79b963c01526 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1136768653 1292 21c1c5bfeaebccffdb478fd231a0997d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1136768653 1116 933a60c408fc0a863a92debe84b2d294 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1136768653 1120 8b7d695260f3cff42e636090a8002094 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/ifxetex/ifxetex.sty" 1284331290 1458 43ab4710dc82f3edeabecd0d099626b2 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/gettitlestring.sty" 1463608860 8237 3b62ef1f7e2c23a328c814b3893bc11f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty" 1463608860 184907 0684df819a7b0db4d40278012ce92791 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty" 1463608860 70752 b461cacad0518ee92bfe2446909a53a8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifpdf.sty" 1463348357 1226 01a89dfef361f60ae7df13cd2946bc16 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifvtex.sty" 1463608860 6797 90b7f83b0ad46826bc16058b1e3d48df ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty" 1463608860 8253 473e0e41f9adadb1977e8631b8f72ea6 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty" 1463608860 18425 5b3c0c59d76fac78978b5558e83c1f36 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/se-ascii-print.def" 1463608860 3154 688330b6ca706e672a9310fc1a549476 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/stringenc.sty" 1463608860 21411 4c6135fd98dd4f5499becbfc9a323deb ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/CaseFolding.txt" 1449876215 74499 11c335947e5ffa8ac69a3e530b8d2b40 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt" 1449876215 16740 4c17368651bc455636f58c3366bdbbeb ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/UnicodeData.txt" 1449876215 1621978 3a83069e69e2a9101dc4749593cd3268 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithm.sty" 1251330371 3249 15763257e50278eef5db1952ccde229c ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithmic.sty" 1251330371 9318 793e9d5a71e74e730d97f6bf5d7e2bca ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1456875012 2210 5c54ab129b848a5071554186d0168766 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsgen.sty" 1456875012 4160 c115536cf8d4ff25aa8c1c9bc4ecb79a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsmath.sty" 1459635588 82019 58dd7b022876c1d593cd2135c441946d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsopn.sty" 1459635588 4115 318a66090112f3aa3f415aeb6fe8540f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amstext.sty" 1456875012 2431 fe3078ec12fc30287f568596f8e0b948 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/base/bk12.clo" 1459635588 8139 b9d9424b409fe55c665eac87eba27e54 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/base/book.cls" 1459635588 22945 7df8250bf76418cf651c357d3631fbc3 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty" 1454284088 4572 634fcdf7e9df867d6d54f84638930408 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty" 1454284088 5159 a08c9bbd48fc492f15b22e458bef961f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/base/t1enc.def" 1454284088 9927 925418b4e40d02671b4728df100ec5ef ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/booktabs/booktabs.sty" 1462233275 5869 94335281ffcab47f341cf07ea8220e30 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption.sty" 1456094605 66233 8b81cfab95a1f8fc2f0f6c89415b087a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption3.sty" 1456094605 64437 7aae26f62358cb5be7cae9d865fab5b8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/caption/ltcaption.sty" 1442533747 7257 dd37a106002acb997b6c947cf18f297e ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/cases/cases.sty" 1266794354 7729 8bcdd4087d7eaedbd85077d2c722955e ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/colortbl/colortbl.sty" 1329267615 10607 9635c8e2bffccf182429bfdea9b665a5 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1enc.def" 1284849341 1115 6f8850603672e58af2cd599bee6ade7d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmr.fd" 1266195411 2284 11da099e92da4724f712149045c96354 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmss.fd" 1266195411 1546 f73305b0ca2520efb4953d14dfcb9cb7 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1274829816 45360 a0833d32f1b541964596b02870342d5a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty" 1454367976 105606 a38c5ce7d05796198d17f5a6bc55964a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.cfg" 1454367976 530 838458c50df1b4d16b8dc5267ab31958 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.sty" 1454367976 1699 41a8dcd7126940efa254804d5311bbda ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/tuenc.def" 1454194825 2750 07f3818c01ba17443761721994a6b23b ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/framed/framed.sty" 1338588508 22449 7ec15c16d0d66790f28e90343c5434a3 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/geometry/geometry.sty" 1284422013 40502 e003406220954b0716679d7928aedd8a ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1459978653 3103 f32642b1cd56c010cdfb6545539b7f0b ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty" 1462915952 14391 bd64a9e5d07473b936423b5f3280ed2c ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty" 1428932888 8125 557ab9f1bfa80d369fb45a914aa8a3b4 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty" 1428932888 2594 d18d5e19aa8239cf867fa670c556d2e9 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty" 1454284088 3980 0a268fbfda01e381fa95821ab13b6aee ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hxetex.def" 1462835572 44958 b1f20ce0c1b7ffd9e0b4d75edd7217bb ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hyperref.sty" 1462835572 231855 3b828733a8d4157331c2822d6ca625a9 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/nameref.sty" 1351899753 12847 25b617d63258c4f72870c883493a3cf8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/pd1enc.def" 1462835572 14005 0627be14688b9bcdd822468e0ec3cef1 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/puenc.def" 1462835572 122263 6a1b4e16f1c5056ee6f95bc49f154619 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3-code.tex" 1463608779 689679 e146572371041b15f7f0cb49a6cbc969 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3.sty" 1463608779 10238 47b1600390b6a09ec63fa44b042e9805 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def" 1463608779 9472 4ade446c768b18ca0e0a55c47c3f6282 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1463608779 5576 439a093596a3c29adc1139f6dd18458b ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1463608779 61846 f081f1a4b6b2ee9ccff101b890bd41dc ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty" 1463608779 50197 9cf68306271f9dce9636d967e845324e ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/hyperref.cfg" 1254097189 235 6031e5765137be07eed51a510b2b8fb7 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.cfg" 1434304428 1827 d72ad54409ca5c1068a1939c63441bd2 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.sty" 1434304428 80336 ff90c926c3d7bfdaa3d80ca57123b0bb ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/listings/lstmisc.sty" 1434304428 77028 c3eb00afb55a32bc13ca8da7f5234377 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/multirow/multirow.sty" 1137110401 7374 f7c1f13fc632dd5c9b220a247d233082 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/natbib/natbib.sty" 1291685959 45456 1c8843383c0bd05870c45fa0ebea6cc2 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/nomencl/nomencl.sty" 1137110445 6973 f8ea974f22cadd19e9ac5f7bc181f3a8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/ntheorem/ntheorem.sty" 1346969955 43120 799f06af91d8fb275749981ca21a5146 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/auxhook.sty" 1463608860 3834 4363110eb0ef1eb2b71c8fcbcdb6c357 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/kvoptions.sty" 1463608860 22417 1d9df1eb66848aa31b18a593099cf45c ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty" 1463608860 9581 023642318cef9f4677efe364de1e2a27 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/paralist/paralist.sty" 1451601556 14760 8863d5c390e81d6de55db71ee012f668 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/rotating/rotating.sty" 1238284825 7131 a49b179ae7108fe42935176733099fc0 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/soul/soul.sty" 1137110840 23636 c37eef0334dd2011d112d2040c11328f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/subfig/subfig.sty" 1158586182 21369 9ef165ca6df8815c92e693146a376c92 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3cmr.fd" 1137110956 1257 fd5b1c2f0106f9cf12cdb2ff961987c5 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3enc.def" 1137110956 26483 c461a68c34040cb0d96c43e86c012a6d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titlesec.sty" 1458858524 37387 afa86533e532701faf233f3f592c61e0 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titletoc.sty" 1458858524 18361 6f2961ec45ee4ad03439efe5de257c61 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/ttlps.def" 1458858524 21990 2b3b4144c19737b7efac7950ca8e9b39 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/array.sty" 1459635588 12398 bd782945c489f84ff012bcea4a712d25 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/bm.sty" 1459635588 12357 b071cb9fa20a55b382209173a509533d ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/calc.sty" 1454284088 10214 d03d065f799d54f6b7e9b175f8d84279 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/indentfirst.sty" 1454284088 1617 820bc46185ca5aeeda2ecc6c21866b18 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/longtable.sty" 1454284088 12083 80916157594a8e4354985aaefae4f367 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/tools/tabularx.sty" 1459635588 7141 64e8a94c3d083215654cd9a5b9dcc136 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/was/upgreek.sty" 1137111079 5794 9054e31be15d93f1e6bd28cca2b6643f ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg" 1463263438 5585 902f50eac8995acce04f6db275e81188 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber.sty" 1463263438 32182 4b49e64dc7855904708f57ab0793ed64 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty" 1463263946 13788 b4f2ad1ff1b07c8e9c830b3519c85f88 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg" 1463263946 408 06757bc32ffd3be73ee705f22bd06fb8 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.sty" 1463263946 159635 1cff03e30e3cd6e9567344353f6431ff ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty" 1463263946 23609 1638c566f1047b852ec5ecfd41172632 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def" 1463263946 61599 d8348b8ce7894388ddb95c25a3784a7b ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xetex-def/xetex.def" 1460062404 21052 2a1a30b53c57c3b04e71c305475a35fc ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty" 1315783907 205722 8027ed7ab2230086d647802c25f3ee42 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-dist/web2c/texmf.cnf" 1463093894 31953 b9489e6e586f798610c60aec1f5ec548 ""
|
||||||
|
"/usr/local/texlive/2016/texmf-var/web2c/xetex/xelatex.fmt" 1493424348 3520365 8f2023c7a13f8afaf36e417203b3228e ""
|
||||||
|
"/usr/local/texlive/2016/texmf.cnf" 1463979140 577 2938757e76f31531e65cc647e3507693 ""
|
||||||
|
"data/abstract.tex" 1511939509 6904 60243e439325f8e24e6cf1365303b79a ""
|
||||||
|
"data/ack.tex" 1510499389 5080 03bdd961ff638a8ddac12bab88ce56e7 ""
|
||||||
|
"data/appendix01.tex" 1510457691 4371 0bfcbaf6dc4413c074e51162bab0d7ca ""
|
||||||
|
"data/chap02.tex" 1511968776 42160 997d8a7bd190ba927d586f8fb9a36eac ""
|
||||||
|
"data/chap03.tex" 1512001457 46940 5b88e72ffeec734e64fee04fff43909d ""
|
||||||
|
"data/chap04.tex" 1511969075 27033 7af8705cb5ede152755beb025772695e ""
|
||||||
|
"data/conclusion.tex" 1511969110 5667 a3ac4770b4545e065c306469c16df147 ""
|
||||||
|
"data/denotation.tex" 1511939532 515 204abe930b07ca4f37525098af79406a ""
|
||||||
|
"data/introduction.tex" 1511968104 27252 6b9f7f4675784cd7d6fd64678e80fa0b ""
|
||||||
|
"data/resume-blind.tex" 1510642491 919 1980a1908bad386ef281a25257c0f8cb ""
|
||||||
|
"figures/11496.png" 1497431721 1165570 231a5ebb8cc0537afbed53c01fb56dd9 ""
|
||||||
|
"figures/11869.png" 1497432318 1478926 1e8e1b36100117f60477d760dbea72de ""
|
||||||
|
"figures/4sim.png" 1510545877 163865 ad73f59ef49831fd86c7f963b8471d19 ""
|
||||||
|
"figures/OLP.png" 1484972873 52684 9efbd89a2a12dcea6dd7da19e0f9450a ""
|
||||||
|
"figures/TSHC.pdf" 1509081016 26488 5c341c8c195ba9f79af015b9f05f614d ""
|
||||||
|
"figures/c_approach.pdf" 1509080452 33142 5db240024605c86e5d8525373c91e7a4 ""
|
||||||
|
"figures/cntr_sts.png" 1508940107 185607 3940832470d54e91aba080ada2cb7453 ""
|
||||||
|
"figures/comments.png" 1510548808 52821 a2640177d68c6b10e57b9207e3112cf9 ""
|
||||||
|
"figures/cross_rws.png" 1509063341 204853 24bc3c9bf4957519442d5fe8c2e2aeb4 ""
|
||||||
|
"figures/data_get.pdf" 1510543055 24282 c6fbc459e782726f9ccb68f5b2b80681 ""
|
||||||
|
"figures/detect.png" 1510385023 190733 12c9d2e80058bf608e86b72683c8059a ""
|
||||||
|
"figures/dup_approach.pdf" 1509346982 13057 ed6897a7678196a5bd1e55264daf3777 ""
|
||||||
|
"figures/dup_post.png" 1487057032 65390 81f2644e593816500d9da42ce4f05e7f ""
|
||||||
|
"figures/dup_sys.pdf" 1510198028 60555 837ecf5e0ecf2effec097243b90901f6 ""
|
||||||
|
"figures/gh_cr.pdf" 1509073954 40155 9389dc4cc007fc527b5f35a5f365e037 ""
|
||||||
|
"figures/gh_pr.pdf" 1509326027 11528 aa0cc699202140b5baf7609f6b88d643 ""
|
||||||
|
"figures/issue_ref.pdf" 1510493146 406878 a4c15ee854143679f6f97e8189283bad ""
|
||||||
|
"figures/judge_dup.png" 1506648031 511028 0b231299519ab7200a6f59dfe561bfdb ""
|
||||||
|
"figures/out_ref.png" 1508895768 108015 27639a84417572acc0f1543eec98d3ad ""
|
||||||
|
"figures/prds.pdf" 1509081220 25505 b1cce3c8b3e93fb55280b36eb16f7096 ""
|
||||||
|
"figures/prflow.pdf" 1509341400 83713 9b907736b8f443f94eb08e3cb0de4127 ""
|
||||||
|
"figures/prj_num.pdf" 1509070932 19371 df592063bec70c47f796309bdcb5f713 ""
|
||||||
|
"figures/pull-based.png" 1507431537 41401 ba86700aaed51fafb891d9692f9dc748 ""
|
||||||
|
"figures/pulse.png" 1508937629 71265 270592398efbab874ea1a36b2ec9a403 ""
|
||||||
|
"figures/so_tag.png" 1509188823 147483 4d0301fe426250ba55cf70fdd8130443 ""
|
||||||
|
"figures/stas_plot.pdf" 1509081862 21368 e1e726a41b7097657b0d8e33cfe35be1 ""
|
||||||
|
"figures/thesis-structure.pdf" 1510627395 17755 114fa292baf0027526f412ce9b14368f ""
|
||||||
|
"figures/user_num.pdf" 1509070940 19299 d42c318a2e0b6494e8ca69f25d4c3484 ""
|
||||||
|
"mynudt.sty" 1509190656 4133 b4e093e7009308ef3c76219198a4e212 ""
|
||||||
|
"nudtpaper.cls" 1512001092 22379 203edd483745822e7ffb43562fefc7d4 ""
|
||||||
|
"slashbox.sty" 1504549846 2685 ce2190dc09125c3010b0dfd2226dd182 ""
|
||||||
|
"thesis-blind.aux" 1512024994 23561 0f196dedc815c1a0ac05d5a328225889 ""
|
||||||
|
"thesis-blind.bbl" 1512024982 10347 588994cc2ae7e406b443f2001d28a4e8 "bibtex thesis-blind"
|
||||||
|
"thesis-blind.lof" 1512024994 3690 bbebdff5384dc0638b8f5c597d1d5dac ""
|
||||||
|
"thesis-blind.lot" 1512024994 1560 a22c6800604ff144b7c3b5aa7248c2fd ""
|
||||||
|
"thesis-blind.out" 1512024994 4145 cc90446d85750a6f54fae6430918a94b ""
|
||||||
|
"thesis-blind.tex" 1510642521 2669 96f3b3ecfd8ea89d2244dc899639173e ""
|
||||||
|
"thesis-blind.toc" 1512024994 6873 bba14a238c18a41c7918fc3fe2914fe9 ""
|
||||||
|
(generated)
|
||||||
|
"thesis-blind.toc"
|
||||||
|
"thesis-blind.log"
|
||||||
|
"thesis-blind.aux"
|
||||||
|
"thesis-blind.lot"
|
||||||
|
"thesis-blind.thm"
|
||||||
|
"thesis-blind.out"
|
||||||
|
"thesis-blind.lof"
|
||||||
|
"thesis-blind.pdf"
|
|
@ -0,0 +1,396 @@
|
||||||
|
PWD /Users/lizhixing/Documents/work/个人/硕士毕业论文/text
|
||||||
|
INPUT /usr/local/texlive/2016/texmf.cnf
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/web2c/texmf.cnf
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-var/web2c/xetex/xelatex.fmt
|
||||||
|
INPUT thesis-blind.tex
|
||||||
|
OUTPUT thesis-blind.log
|
||||||
|
INPUT nudtpaper.cls
|
||||||
|
INPUT nudtpaper.cls
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/calc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/calc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/book.cls
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/book.cls
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/bk12.clo
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/bk12.clo
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/map/fontname/texfonts.map
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/geometry/geometry.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/geometry/geometry.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifpdf.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifpdf.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifvtex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifvtex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/ifxetex/ifxetex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/ifxetex/ifxetex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titlesec.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titlesec.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/ttlps.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/ttlps.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titletoc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/titlesec/titletoc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xetex-def/xetex.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xetex-def/xetex.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/subfig/subfig.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/subfig/subfig.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption3.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/caption3.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/float/float.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/float/float.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/array.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/array.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/longtable.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/longtable.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/booktabs/booktabs.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/booktabs/booktabs.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/multirow/multirow.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/multirow/multirow.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/tabularx.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/tabularx.sty
|
||||||
|
INPUT slashbox.sty
|
||||||
|
INPUT slashbox.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/paralist/paralist.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/paralist/paralist.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/xcolor/xcolor.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/xcolor/xcolor.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/was/upgreek.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/was/upgreek.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/bm.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/bm.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/t1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/t1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/ntheorem/ntheorem.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/ntheorem/ntheorem.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3-code.tex
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3-code.tex
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/CaseFolding.txt
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/tuenc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmr.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmr.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmss.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmss.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/indentfirst.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tools/indentfirst.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/natbib/natbib.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/natbib/natbib.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/auxhook.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/auxhook.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/kvoptions.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/kvoptions.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/hyperref.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/hyperref.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/url/url.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/url/url.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/zapfding/pzdr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hxetex.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/hxetex.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/puenc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/puenc.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/stringenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/stringenc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
|
||||||
|
INPUT mynudt.sty
|
||||||
|
INPUT mynudt.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/rotating/rotating.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/rotating/rotating.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/soul/soul.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/soul/soul.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/colortbl/colortbl.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/colortbl/colortbl.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/cases/cases.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/cases/cases.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/lstmisc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/lstmisc.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.cfg
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithmic.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/algorithms/algorithmic.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/framed/framed.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/framed/framed.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/nomencl/nomencl.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/nomencl/nomencl.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
|
||||||
|
INPUT thesis-blind.aux
|
||||||
|
INPUT thesis-blind.aux
|
||||||
|
OUTPUT thesis-blind.aux
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3cmr.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3cmr.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/ltcaption.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/caption/ltcaption.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
|
||||||
|
INPUT thesis-blind.out
|
||||||
|
INPUT thesis-blind.out
|
||||||
|
INPUT thesis-blind.out
|
||||||
|
INPUT thesis-blind.out
|
||||||
|
OUTPUT thesis-blind.out
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/se-ascii-print.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/se-ascii-print.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/se-ascii-print.def
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr17.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy8.tfm
|
||||||
|
INPUT thesis-blind.toc
|
||||||
|
INPUT thesis-blind.toc
|
||||||
|
OUTPUT thesis-blind.toc
|
||||||
|
INPUT thesis-blind.lot
|
||||||
|
INPUT thesis-blind.lot
|
||||||
|
OUTPUT thesis-blind.lot
|
||||||
|
INPUT thesis-blind.lof
|
||||||
|
INPUT thesis-blind.lof
|
||||||
|
OUTPUT thesis-blind.lof
|
||||||
|
INPUT data/abstract.tex
|
||||||
|
INPUT data/abstract.tex
|
||||||
|
INPUT data/denotation.tex
|
||||||
|
INPUT data/denotation.tex
|
||||||
|
INPUT data/introduction.tex
|
||||||
|
INPUT data/introduction.tex
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmr6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmex10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbx6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmmib10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmmib6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/cm/cmbsy10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmbsy6.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT figures/user_num.pdf
|
||||||
|
INPUT figures/prj_num.pdf
|
||||||
|
INPUT figures/pull-based.png
|
||||||
|
INPUT figures/gh_pr.pdf
|
||||||
|
INPUT figures/gh_cr.pdf
|
||||||
|
INPUT figures/thesis-structure.pdf
|
||||||
|
INPUT data/chap02.tex
|
||||||
|
INPUT data/chap02.tex
|
||||||
|
INPUT figures/prflow.pdf
|
||||||
|
INPUT figures/11869.png
|
||||||
|
INPUT figures/11496.png
|
||||||
|
INPUT figures/dup_approach.pdf
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||||
|
INPUT /usr/local/texlive/2016/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm
|
||||||
|
INPUT figures/data_get.pdf
|
||||||
|
INPUT figures/judge_dup.png
|
||||||
|
INPUT figures/4sim.png
|
||||||
|
INPUT figures/detect.png
|
||||||
|
INPUT data/chap03.tex
|
||||||
|
INPUT data/chap03.tex
|
||||||
|
INPUT figures/c_approach.pdf
|
||||||
|
INPUT figures/OLP.png
|
||||||
|
INPUT figures/comments.png
|
||||||
|
INPUT figures/TSHC.pdf
|
||||||
|
INPUT figures/stas_plot.pdf
|
||||||
|
INPUT figures/prds.pdf
|
||||||
|
INPUT data/chap04.tex
|
||||||
|
INPUT data/chap04.tex
|
||||||
|
INPUT figures/so_tag.png
|
||||||
|
INPUT figures/dup_post.png
|
||||||
|
INPUT figures/issue_ref.pdf
|
||||||
|
INPUT figures/out_ref.png
|
||||||
|
INPUT figures/dup_sys.pdf
|
||||||
|
INPUT figures/pulse.png
|
||||||
|
INPUT figures/cntr_sts.png
|
||||||
|
INPUT figures/cross_rws.png
|
||||||
|
INPUT data/conclusion.tex
|
||||||
|
INPUT data/conclusion.tex
|
||||||
|
INPUT data/ack.tex
|
||||||
|
INPUT data/ack.tex
|
||||||
|
INPUT thesis-blind.bbl
|
||||||
|
INPUT thesis-blind.bbl
|
||||||
|
INPUT data/resume-blind.tex
|
||||||
|
INPUT data/resume-blind.tex
|
||||||
|
INPUT data/appendix01.tex
|
||||||
|
INPUT data/appendix01.tex
|
||||||
|
OUTPUT thesis-blind.thm
|
||||||
|
INPUT thesis-blind.aux
|
Binary file not shown.
|
@ -0,0 +1,90 @@
|
||||||
|
% !TEX program = xelatex
|
||||||
|
|
||||||
|
%1. 规范硕士导言
|
||||||
|
% \documentclass[master,ttf]{nudtpaper}
|
||||||
|
%2. 规范博士导言
|
||||||
|
% \documentclass[doctor,twoside,ttf]{nudtpaper}
|
||||||
|
%3. 建议使用OTF字体获得较好的页面显示效果
|
||||||
|
% OTF字体从网上获得,各个系统名称统一。
|
||||||
|
% 如果你下载的是最新的(1201)OTF英文字体,建议修改nudtpaper.cls,使用
|
||||||
|
% Times New Roman PS Std
|
||||||
|
% \documentclass[doctor,twoside,otf]{nudtpaper}
|
||||||
|
% 另外,新版的论文模板提供了方正字体选项FZ,效果也不错哦
|
||||||
|
% \documentclass[doctor,twoside,fz]{nudtpaper}
|
||||||
|
%4. 如果想生成盲评,传递anon即可,仍需修改个人成果部分
|
||||||
|
% \documentclass[master,otf,anon]{nudtpaper}
|
||||||
|
%
|
||||||
|
|
||||||
|
\documentclass[master,otf,twoside,anon]{nudtpaper}
|
||||||
|
\usepackage{mynudt}
|
||||||
|
\classification{TP301}
|
||||||
|
\serialno{15060025}
|
||||||
|
\confidentiality{公开}
|
||||||
|
\UDC{004.41}
|
||||||
|
|
||||||
|
% 面向开源社区的高效代码审查技术研究
|
||||||
|
|
||||||
|
% \title{面向大众化贡献的高效代码审查技术研究}
|
||||||
|
% \displaytitle{面向大众化贡献的高效代码审查技术研究}
|
||||||
|
\title{面向大众化协同开发的贡献审查关键技术研究}
|
||||||
|
\displaytitle{面向大众化协同开发的贡献审查关键技术研究}
|
||||||
|
\entitle{Research on Contribution Review of Crowdsourcing Collaborative Development}
|
||||||
|
|
||||||
|
\zhdate{\zhtoday}
|
||||||
|
\endate{\entoday}
|
||||||
|
|
||||||
|
\author{李志星}
|
||||||
|
\enauthor{LI Zhixing}
|
||||||
|
\supervisor{尹刚\quad{}副研究员}
|
||||||
|
% \cosupervisor{王五\quad{}副教授} % 没有就空着
|
||||||
|
\ensupervisor{Prof. Yin Gang}
|
||||||
|
|
||||||
|
\subject{计算机科学与技术}
|
||||||
|
\ensubject{Computer Science and Technology}
|
||||||
|
|
||||||
|
\researchfield{群体化软件开发}
|
||||||
|
|
||||||
|
% \encosupervisor{}
|
||||||
|
\papertype{工学}
|
||||||
|
\enpapertype{Engineering}
|
||||||
|
% 加入makenomenclature命令可用nomencl制作符号列表。
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\graphicspath{{figures/}}
|
||||||
|
% 制作封面,生成目录,插入摘要,插入符号列表 \\
|
||||||
|
% 默认符号列表使用denotation.tex,如果要使用nomencl \\
|
||||||
|
% 需要注释掉denotation,并取消下面两个命令的注释。 \\
|
||||||
|
% cleardoublepage% \\
|
||||||
|
% printnomenclature% \\
|
||||||
|
\maketitle
|
||||||
|
\frontmatter
|
||||||
|
\tableofcontents
|
||||||
|
\listoftables
|
||||||
|
\listoffigures
|
||||||
|
|
||||||
|
\midmatter
|
||||||
|
|
||||||
|
\input{data/abstract}
|
||||||
|
\input{data/denotation}
|
||||||
|
|
||||||
|
%书写正文,可以根据需要增添章节; 正文还包括致谢,参考文献与成果
|
||||||
|
\mainmatter
|
||||||
|
\input{data/introduction}
|
||||||
|
\input{data/chap02}
|
||||||
|
\input{data/chap03}
|
||||||
|
\input{data/chap04}
|
||||||
|
\input{data/conclusion}
|
||||||
|
\input{data/ack}
|
||||||
|
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{chapter}{参考文献}
|
||||||
|
\bibliographystyle{bstutf8}
|
||||||
|
\bibliography{ref/refs}
|
||||||
|
|
||||||
|
\input{data/resume-blind}
|
||||||
|
% 最后,需要的话还要生成附录,全文随之结束。
|
||||||
|
\appendix
|
||||||
|
\backmatter
|
||||||
|
\input{data/appendix01}
|
||||||
|
|
||||||
|
\end{document}
|
|
@ -37,11 +37,11 @@
|
||||||
\enauthor{LI Zhixing}
|
\enauthor{LI Zhixing}
|
||||||
\supervisor{尹刚\quad{}副研究员}
|
\supervisor{尹刚\quad{}副研究员}
|
||||||
% \cosupervisor{王五\quad{}副教授} % 没有就空着
|
% \cosupervisor{王五\quad{}副教授} % 没有就空着
|
||||||
\ensupervisor{Prof. Yin Gang}
|
\ensupervisor{Associate Prof. Yin Gang}
|
||||||
|
|
||||||
\subject{计算机科学与技术}
|
\subject{计算机科学与技术}
|
||||||
\ensubject{Computer Science and Technology}
|
\ensubject{Computer Science and Technology}
|
||||||
|
|
||||||
\researchfield{群体化软件开发}
|
\researchfield{群体化软件开发}
|
||||||
|
|
||||||
% \encosupervisor{}
|
% \encosupervisor{}
|
||||||
|
|
Loading…
Reference in New Issue