<div><p class="MsoNormal"><span lang="EN-US" style="vertical-align:baseline"><font color="rgb(36,41,46)" face="Times New Roman">H</font><font face="Times New Roman">i,</font></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">My name is Xin Tan, majored in Computer Science, Peking University, China. I am a first year PHD student. Recently I¡¯m doing a research on OpenStack about <font color="#808000">the contribution composition of a code file, which in order to explore the contribution pattern of different kinds of files. Further, I want to locate the risk file to give developers some useful information</font>.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="vertical-align:baseline"><font face="Times New Roman">I wonder if I could show you my study, including some metrics to describe the contribution composition of a code file. I would appreciate it if you could show your opinions or give some advices, which would really, really help me a lot. And it would only take you a little time.<u></u><u></u></font></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Thank you so much for your kindness.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">First of all, I would give you a brief introduction to my study. We all know large software projects are usually composed of some general file types. For different file types, the contribution composition of them are various. For example, the files which are responsible for implementing core functionalities are usually very complex and they are modified very often, of course, the number of contributors are very high. However, relatively independent files are usually maintained by a small number of people who have high ownership of the code. Previous studies have shown that code ownership is closely related to software quality. And it¡¯s very easy to understand if a developer often contributes to a certain code file, he is most likely to be an expert to it. To some extent, he is the person in charge of the code file, which is conducive to the stability of the quality of the code file. But if he leaves suddenly, the risk of this code file may be very high. Therefore, starting from code ownership, we analysis the contribution composition of different file types, which in order to:</span><span style="font-family:'Times New Roman';text-indent:0cm"> </span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">1)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">knowing the contribution composition of files in real time.<u></u><u></u></span></font></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">2)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">exploring the contribution pattern of different kinds of files.<u></u><u></u></span></font></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">3)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Locating the risk file.</span></font></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">First, we define three metrics to describe the contribution composition of files.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">1)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Centrality: <u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">The Centrality of a file refers to the proportion of ownership for the contributor with the highest proportion of ownership, which is calculated by the number of commit times. It could indicate that whether there is one developer who ¡°owns¡± the file and has a high level of expertise, who can act as a single point of contact for others who need to use the component, need changes to it, or just have questions about it.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">2)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Diversity:<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">We measured the uncertainty in a code file's contributions (or the diversity of sources of contributions) in a given period using the Teachman/Shannon entropy index, a commonly used diversity measure in many scientific disciplines.</span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">H(x)=E[I(xi)]=E[log(2,1/p(xi))<wbr>]=-¡Æp(xi)log(2,p(xi))(i=1,2,..<wbr>n),</span><span style="font-family:'Times New Roman';text-indent:0cm"> </span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">p(xi) is the code ownership of developer xi, I(xi) means the information we need to judge if a contribution belongs to developer xi. H(x) ranges between 0, when all the contribution of the file belong to one developer in a release, and log(2, N), when N developers contribute equally (i.e., pi = 1/N) to the file. The larger H(x) is, the more diverse the contribution of the file is.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">We assume that the more diverse the contribution, the more bugs the code file would have in this release. And We have proven that there is a significant positive correlation between the contribution diversity and the amount of defect of the file.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">3)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Stability:<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">The Stability of file means its personnel scheduling. It calculated by the total number of the contributors of this file who leave or join relative to the previous cycle. When the number of contributors to a file is instable, it usually means the high risk. <u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Then, we choose a nova release for a case study. We define several different files types according to the functionalities of code file and refer to the measurement value.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"> </span></p><table class="m_2593480588502028909MsoTableGrid" style="border-collapse:collapse;border:none" border="1" cellspacing="0" cellpadding="0"><tbody><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border:1pt solid windowtext;padding:0cm 5.4pt;height:1pt"><p align="center" class="MsoNormal" style="text-align:center"><b><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">File type<u></u><u></u></span></b></p></td><td width="207" valign="top" style="width:207.25pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt;height:1pt"><p align="center" class="MsoNormal" style="text-align:center"><b><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">Example in nova<u></u><u></u></span></b></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">The test file for active file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/tests/unit/virt/libvirt/<wbr>test_driver.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:16.95pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:16.95pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Exception handling file<u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:16.95pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/exception.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:18.3pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:18.3pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Privilege management file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:18.3pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">etc/nova/policy.json</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:9.95pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:9.95pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Core interface file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:9.95pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/compute/api.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:11.35pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:11.35pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Key function implementation file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:11.35pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/compute/manager.py<u></u><u></u></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module function implementation file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/conductor/manager.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:14.15pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:14.15pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Function realization file of complex module</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:14.15pt"><p class="MsoNormal" style="line-height:21px"><span lang="EN-US" style="font-size:10.5pt;line-height:21px;font-family:'Times New Roman';vertical-align:baseline">nova/db/sqlalchemy/models.py<b><u></u><u></u></b></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module interface file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/api/metadata/base.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module test file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/tests/unit/conductor/<wbr>test_conductor.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module configuration file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/conf/scheduler.py</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Non function implementation file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">requirements.txt</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr><tr style="height:1pt"><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">i18n file</font><font color="#ff0000"><u></u><u></u></font></span></p></td><td width="207" valign="top" style="width:207.25pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt;height:1pt"><p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline">nova/locale/zh_CN/LC_MESSAGES/<wbr>nova.po</span><span lang="EN-US" style="font-size:10.5pt;font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">And we calculate the above metrics of the nova active files (of course it is not accurate, because the contribution composition is effected by many factors not only file types.). We find three patterns.<u></u><u></u></span></p><table width="418" class="m_2593480588502028909MsoNormalTable" style="width:417.7pt;border-collapse:collapse" border="0" cellspacing="0" cellpadding="0"><tbody><tr style="height:1pt"><td width="113" style="width:112.9pt;border:1pt solid black;padding:3.6pt 7.2pt;height:1pt" rowspan="6"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Centrality: low<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Diversity: high<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Stability: low<u></u><u></u></font></span></p></td><td width="121" style="width:120.5pt;border-style:solid solid solid none;border-top-color:black;border-right-color:black;border-bottom-color:black;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:3.6pt 7.2pt;height:1pt" rowspan="6"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Metric_1<=0.2<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">3=<Metric_2<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">14=<Metric_3<u></u><u></u></font></span></p></td><td width="184" valign="top" style="width:184.3pt;border-style:solid solid solid none;border-top-color:black;border-right-color:black;border-bottom-color:black;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Key function implementation file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Function realization file of complex module</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">The test file for active file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Exception handling file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Privilege management file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Core interface file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="113" style="width:112.9pt;border-style:none solid solid;border-right-color:black;border-bottom-color:black;border-left-color:black;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:3.6pt 7.2pt;height:1pt" rowspan="4"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Centrality: medium<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Diversity: medium<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Stability: medium<u></u><u></u></font></span></p></td><td width="121" style="width:120.5pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt" rowspan="4"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">0.2< Metric_1 <=0.7<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">2<= Metric_2<3<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">5=< Metric_3<14<u></u><u></u></font></span></p></td><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module function implementation file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module interface file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module test file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Module configuration file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="113" style="width:112.9pt;border-style:none solid solid;border-right-color:black;border-bottom-color:black;border-left-color:black;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:3.6pt 7.2pt;height:1pt" rowspan="2"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Centrality: high<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Diversity: low<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font size="2">Stability: high<u></u><u></u></font></span></p></td><td width="121" style="width:120.5pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt" rowspan="2"><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="vertical-align:baseline"><font face="Times New Roman" size="2">0.7< Metric_1<=1<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="vertical-align:baseline"><font face="Times New Roman" size="2">0<= Metric_2<2<u></u><u></u></font></span></p><p align="center" class="MsoNormal" style="text-align:center"><span lang="EN-US" style="vertical-align:baseline"><font size="2"><font face="Times New Roman">0=< Metric_3<5<u></u><u></u></font></font></span></p></td><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;padding:3.6pt 7.2pt;height:1pt"><p class="MsoNormal"><font size="2"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000">Non function implementation file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></font></p></td></tr><tr style="height:1pt"><td width="184" valign="top" style="width:184.3pt;border-style:none solid solid none;border-bottom-color:black;border-bottom-width:1pt;border-right-color:black;border-right-width:1pt;background-color:rgb(234,239,247);padding:3.6pt 7.2pt;height:1pt;background-position:initial initial;background-repeat:initial initial"><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><font color="#808000" size="2">i18n file</font></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">For locating high risk file, I have two points.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">1)<span style="font-size:7pt;line-height:normal">        </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Pattern 1(Centrality: low/ Diversity: high/ Stability: low) should be paid much more attention. But there are special cases, for example, Exception handling file, although it is modified too often, it is not complex, so the risk of it is low.<u></u><u></u></span></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">2)<span style="font-size:7pt;line-height:normal">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">If the contribution composition of a file are </span><span lang="EN-US" style="font-family:'Times New Roman';color:rgb(38,38,38);vertical-align:baseline">significantly various between two cycle, it should be paid more attention to.</span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"><u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Ok, that¡¯s almost what I¡¯m doing. I hope that I have expressed my ideas clearly. And I really hope to know what you think about my work on the following three questions, which would give me great help on my research:<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> </span></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">1)<span style="font-size:7pt;line-height:normal;font-family:'Times New Roman'">         </span></span><span lang="EN-US" style="font-family:Times;vertical-align:baseline">Do you think the metrics are useful for developers and project managers in some way?</span></font><span lang="EN-US" style="font-family:SimSun;vertical-align:baseline"><u></u><u></u></span></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">In particular, could the Centrality be used to identify the experts of the file and how would it help in practice?</span><span lang="EN-US" style="font-family:SimSun;vertical-align:baseline"> </span><span lang="EN-US" style="font-family:Times;vertical-align:baseline">And do you think that files with high code ownership would result in higher code quality and fewer failures?</span></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">Do you think the contribution diversity could act as an indicator for high risk of lower code quality of the file in some way and why? And what would it mean in practice when the contribution diversity of a file changes a lot?</span></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="text-indent:0cm;margin-left:18pt"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">Do you agree that when contributors left the project, their code would be hard to be maintained by others, and contributions made by newcomers would be more likely to bring bugs to the files? So would it help by knowing how many people left the project and how many people are newcomers to the projects and who are them? If yes, how would it help in practice?<u></u><u></u></span></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">2)<span style="font-size:7pt;line-height:normal;font-family:'Times New Roman'">         </span></span><span lang="EN-US" style="font-family:Times;vertical-align:baseline">What¡¯s your opinion of exploring contribution composition of file from different file types is reasonable?<u></u><u></u></span></font></p><p align="left" class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">3)<span style="font-size:7pt;line-height:normal;font-family:'Times New Roman'">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">Do you think the type files I divided is reasonable?</span><span style="font-family:SimSun;text-indent:0cm"> </span></font></p><p class="m_2593480588502028909MsoListParagraph" style="margin-left:18pt"><font color="#808000"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">4)<span style="font-size:7pt;line-height:normal;font-family:'Times New Roman'">         </span></span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline">For different type of files, based on your developing experience, what¡¯s the idea contribution composition pattern of different file</span><span lang="EN-US" style="font-family:'Times New Roman';vertical-align:baseline"> types</span><span style="font-family:'Times New Roman'">?</span></font></p><p align="left" class="MsoNormal"><span lang="EN-US" style="color:rgb(128,128,0);font-family:Times;vertical-align:baseline">5)<span style="font-size:7pt;line-height:normal;font-family:'Times New Roman'">      </span><span style="line-height:normal;font-family:'Times New Roman'"><font size="2">  Any other suggestion or ideals</font></span></span><span lang="EN-US" style="color:rgb(128,128,0);font-family:'Times New Roman';vertical-align:baseline">?</span><span style="color:rgb(128,128,0);font-family:SimSun;text-indent:0cm"> </span></p><p align="left" class="MsoNormal"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">Again, I would appreciate it a lot if you could give me some advices. And thank you so much for your time.</span><span lang="EN-US" style="font-family:SimSun;vertical-align:baseline"><u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:Times;vertical-align:baseline">Looking forward to your reply. Wish you have a good day.</span></p><p class="MsoNormal"><span lang="EN-US" style="font-family:Times;vertical-align:baseline"></span><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></p></div>