<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Farseerfc的小窝 - software</title><link href="//farseerfc.me/zhs/" rel="alternate"></link><link href="//farseerfc.me/feeds/tag-software.atom.xml" rel="self"></link><id>//farseerfc.me/zhs/</id><updated>2012-06-06T10:42:00+09:00</updated><entry><title>ICSE 2012</title><link href="//farseerfc.me/zhs/icse2012.html" rel="alternate"></link><published>2012-06-06T10:42:00+09:00</published><updated>2012-06-06T10:42:00+09:00</updated><author><name>farseerfc</name></author><id>tag:farseerfc.me,2012-06-06:/zhs/icse2012.html</id><summary type="html">
&lt;div class="section" id="june-6"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id1"&gt;June 6&lt;/a&gt;&lt;/h2&gt;
&lt;!-- PELICAN_BEGIN_SUMMARY --&gt;
&lt;div class="section" id="keynote-1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id2"&gt;Keynote 1&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;没怎么听懂，只记得讲到了finance is not money但是没听懂这个和软件有什么关系。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cost-estimation-for-distributed-software-project"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id3"&gt;Cost Estimation for Distributed Software Project&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;讲到他们试图改善现有的模型去更精确地评估软件开发的开销。&lt;/p&gt;
&lt;p&gt;他们会给PM建议之前的项目的历史数据，然后对于新项目，他们建议历史上已有
的项目的数据，从而帮助PM得到更精确的评估。他们试图尽量减少项目评估对PM
的经验的需求，从而帮助即使经验很少的PM也能准确评估项目的开销。&lt;/p&gt;
&lt;!-- PELICAN_END_SUMMARY --&gt;
&lt;p&gt;他们的观点：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Context-specfic solutions needed!&lt;/p&gt;
&lt;p&gt;我们需要更上下文相关的解决方案！&lt;/p&gt;
&lt;p&gt;Early user paticipation is key!&lt;/p&gt;
&lt;p&gt;早期用户的参与是关键&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="characterizing-logging-practices-in-open-source-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;Characterizing Logging Practices in Open-Source Software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common mistakes in logging messages&lt;/p&gt;
&lt;p&gt;在日志记录中容易犯的错误&lt;/p&gt;
&lt;p&gt;他们学习了历史上的log记录，然后试图找到重复修改的输出log的语句，确定log …&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">
&lt;div class="section" id="june-6"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id1"&gt;June 6&lt;/a&gt;&lt;/h2&gt;
&lt;!-- PELICAN_BEGIN_SUMMARY --&gt;
&lt;div class="section" id="keynote-1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id2"&gt;Keynote 1&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;没怎么听懂，只记得讲到了finance is not money但是没听懂这个和软件有什么关系。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cost-estimation-for-distributed-software-project"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id3"&gt;Cost Estimation for Distributed Software Project&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;讲到他们试图改善现有的模型去更精确地评估软件开发的开销。&lt;/p&gt;
&lt;p&gt;他们会给PM建议之前的项目的历史数据，然后对于新项目，他们建议历史上已有
的项目的数据，从而帮助PM得到更精确的评估。他们试图尽量减少项目评估对PM
的经验的需求，从而帮助即使经验很少的PM也能准确评估项目的开销。&lt;/p&gt;
&lt;!-- PELICAN_END_SUMMARY --&gt;
&lt;p&gt;他们的观点：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Context-specfic solutions needed!&lt;/p&gt;
&lt;p&gt;我们需要更上下文相关的解决方案！&lt;/p&gt;
&lt;p&gt;Early user paticipation is key!&lt;/p&gt;
&lt;p&gt;早期用户的参与是关键&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="characterizing-logging-practices-in-open-source-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;Characterizing Logging Practices in Open-Source Software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common mistakes in logging messages&lt;/p&gt;
&lt;p&gt;在日志记录中容易犯的错误&lt;/p&gt;
&lt;p&gt;他们学习了历史上的log记录，然后试图找到重复修改的输出log的语句，确定log
中存在的问题。他们首先确定修改是事后修改。&lt;/p&gt;
&lt;p&gt;通常的修改的比例（9027个修改）&lt;/p&gt;
&lt;table border="0" class="table docutils borderless"&gt;
&lt;colgroup&gt;
&lt;col width="10%"/&gt;
&lt;col width="90%"/&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;45%&lt;/td&gt;
&lt;td&gt;静态文本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;27%&lt;/td&gt;
&lt;td&gt;打印出的变量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;26%&lt;/td&gt;
&lt;td&gt;调试等级verbosity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2%&lt;/td&gt;
&lt;td&gt;日志输出的位置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;他们发现有调试等级的变化，是因为安全漏洞之类的原因，或者在开销和数据
之间的权衡。&lt;/p&gt;
&lt;p&gt;大多数对log的变量的修改都是为了增加一个参数。他们之前的LogEnhancer是为了
解决这个问题而提出的，通过静态检查，提醒程序员是否忘记了某个参数&lt;/p&gt;
&lt;p&gt;对text的修改是因为要改掉过时的代码信息，避免误导用户。&lt;/p&gt;
&lt;p&gt;他们的实验是采用了基于code clone 的技术，找到所有log语句，然后找不一致
的clone，然后自动提出建议。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="combine-functional-and-imperative-pgrm-for-multicore-sw-scala-java"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id5"&gt;Combine Functional and Imperative Pgrm for Multicore Sw: Scala &amp;amp; Java&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;趋势：到处都是多核，但是并发程序呢？&lt;/p&gt;
&lt;p&gt;他们研究的对象是Scala和Java，因为可以编译后确认JVM字节码的语义。&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Java:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;共享内存&lt;/li&gt;
&lt;li&gt;显示创建的线程&lt;/li&gt;
&lt;li&gt;手动同步&lt;/li&gt;
&lt;li&gt;Wait/Notify机制&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Scala:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;高阶函数&lt;/li&gt;
&lt;li&gt;Actors, 消息传递&lt;/li&gt;
&lt;li&gt;lists, filters, iterators&lt;/li&gt;
&lt;li&gt;while&lt;/li&gt;
&lt;li&gt;共享状态, OO&lt;/li&gt;
&lt;li&gt;import java.* 能从java导入任何库&lt;/li&gt;
&lt;li&gt;auto type inferance 自动类型推导&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实验的参与者都经过4周的训练，实验项目是工业等级的开发项目&lt;/p&gt;
&lt;p&gt;结果：&lt;/p&gt;
&lt;p&gt;scala 的项目平均比java多花38%的时间，主要都是花在Test和debug上的时间。&lt;/p&gt;
&lt;p&gt;程序员的经验和总体时间相关，但是对test和debug没有显著影响。&lt;/p&gt;
&lt;p&gt;scala的为了让编程更有效率的设计，导致debug更困难。比如类型推导，debug
的时候需要手动推导，来理解正在发生什么。&lt;/p&gt;
&lt;p&gt;scala的程序比java小，中位数2.6%，平均15.2%&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;性能比较：&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;单核：scala的线性程序的性能比java好&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;4核：&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;scala 7s @ 4 threads&lt;/li&gt;
&lt;li&gt;java 4si @ 8 threads&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;median&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;83s scala&lt;/li&gt;
&lt;li&gt;98s java&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;32core: best scala 34s @ 64 threads&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;结论&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;java有更好的scalability&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;scala类型推导&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;45%说对携带码有帮助&lt;/li&gt;
&lt;li&gt;85%说导致程序错误&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;调试&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;23%认为scala简单&lt;/li&gt;
&lt;li&gt;77%认为java简单&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;multi-paradigram are better&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sound-empirical-evidence-in-software-testing"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id6"&gt;Sound Empirical Evidence in Software Testing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Test data generation 测试数据自动生成&lt;/p&gt;
&lt;p&gt;Large Empirical Studies - not always possible&lt;/p&gt;
&lt;p&gt;For open source software - big enough&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="identifing-linux-bug-fixing-patch"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id7"&gt;Identifing Linux Bug Fixing Patch&lt;/a&gt;&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;current practice:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;manual&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Current research:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;keywords in commits&lt;/li&gt;
&lt;li&gt;link bug reports in bugzilla&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Try to solve classification problem&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;issue&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;pre-identified&lt;/li&gt;
&lt;li&gt;post-identified&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;data&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;from commit log&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;feature extraction&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;text pre-process stemmed non-stop words&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;model learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;research questions&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="active-refinement-of-clone-anomaly-reports"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id8"&gt;Active Refinement of Clone Anomaly Reports&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;motivating&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;code clones, clone groups&lt;/li&gt;
&lt;li&gt;clone used to detect bugs&lt;/li&gt;
&lt;li&gt;anomaly : inconsistent clone group
many anomaly clone are note bug, high false positive&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;approach&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;reorder by sorted bug reports&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr class="docutils"/&gt;
&lt;div class="section" id="june7"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id9"&gt;June7&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="keynotes-2-sustainability-with-software-an-industrial-perspective"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id10"&gt;Keynotes 2: Sustainability with Software - An Industrial Perspective&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Sustainability&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Classic View: Idenpendent view with overlap&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;Social&lt;/li&gt;
&lt;li&gt;Environment&lt;/li&gt;
&lt;li&gt;Economic&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Nested viw&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Environment&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Social&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;Economic&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;Triple bottom line&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;economic&lt;/dt&gt;
&lt;dd&gt;-global business, networks , global econ&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;env&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;natural res, climate change, population grow&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;social&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;awareness, connectivity, accountability&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;div class="section" id="green-it"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id11"&gt;Green IT&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;reduce IT energy&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;more than 50% cooling - doing nothing&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;mini e-waste: not properly recycled&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;80% in EU&lt;/li&gt;
&lt;li&gt;75% in US&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;foster dematerialization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In-Memory Technology: Expected Sustainable Benefits&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="what-can-we-do"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id12"&gt;What can we do?&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;consider all software lifecycle phases in your design&lt;/li&gt;
&lt;li&gt;avoid energy expensive behavior in your codes&lt;/li&gt;
&lt;li&gt;design lean architectures&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="green-by-it"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id13"&gt;Green by IT&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;2% green IT&lt;/li&gt;
&lt;li&gt;98% green IT&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="on-how-often-code-is-cloned-across-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id14"&gt;On How Often code is cloned across repositories&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Line based hashing code clone detection&lt;/p&gt;
&lt;p&gt;never do anything harder than sorting&lt;/p&gt;
&lt;p&gt;hashing a window of 5 lines of normalized (tokenized) code, dropping
3/4 of the hashing&lt;/p&gt;
&lt;p&gt;把ccfinder一个月的工作缩短到了3, 4天。没有比较presion和recall。&lt;/p&gt;
&lt;table border="0" class="table docutils borderless"&gt;
&lt;colgroup&gt;
&lt;col width="11%"/&gt;
&lt;col width="89%"/&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;14%&lt;/td&gt;
&lt;td&gt;type1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;16%&lt;/td&gt;
&lt;td&gt;type2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;17%&lt;/td&gt;
&lt;td&gt;type3 (not really type2)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="section" id="graph-based-analysis-and-prediction-for-sw-evolution"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id15"&gt;Graph-based analysis and prediction for sw evolution&lt;/a&gt;&lt;/h3&gt;
&lt;div class="section" id="graph-are-everywhere"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id16"&gt;graph are everywhere&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;internet topology&lt;/li&gt;
&lt;li&gt;social net&lt;/li&gt;
&lt;li&gt;chemistry&lt;/li&gt;
&lt;li&gt;biology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;in sw
- func call graph
- module dependency graph&lt;/p&gt;
&lt;p&gt;developer interaction graph
- commit logs
- bug reports&lt;/p&gt;
&lt;p&gt;experiment 11 oss, 27~171 release, &amp;gt; 9 years&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="predictors"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id17"&gt;predictors&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;NodeRank&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;similar to pagerank of google&lt;/li&gt;
&lt;li&gt;measure relative importance of each node&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;func call graph with noderank&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;compare rank with severity scale on bugzilla&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;correlation between noderank and BugSeverity&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;func level 0.48 ~ 0.86 varies among projects.&lt;/li&gt;
&lt;li&gt;model level &amp;gt; func level&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;ModularityRatio&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;cohesion/coupling ratio:  IntraDep(M)/InterDep(M)&lt;/li&gt;
&lt;li&gt;forecast mantencance effort&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;use for&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;identify modules that need redesign or refactoring&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;EditDistance&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;bug-based developer collaboration graphs&lt;/li&gt;
&lt;li&gt;ED(G1,G2)=|V1|+|V2|-2|V1交V2|+|E1|+|E2|-2|E1交E2|&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;use for&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;release planning&lt;/li&gt;
&lt;li&gt;resource allocation&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;graph metrics&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;graph diameter&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;average node degree indicates reuse&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;clustering coefficient&lt;/li&gt;
&lt;li&gt;assortativity&lt;/li&gt;
&lt;li&gt;num of cycles&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id18"&gt;Conclusion&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;"Actionable intelligence" from graph evolution&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;studie 11 large long-live projs&lt;/li&gt;
&lt;li&gt;predictors&lt;/li&gt;
&lt;li&gt;identify pivotal moments in evolution&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="what-make-long-term-contributors-willingness-and-opportunity-in-oss"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id19"&gt;What make long term contributors: willingness and opportunity in OSS&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;OSS don't work without contributors form community&lt;/p&gt;
&lt;p&gt;mozilla (2000-2008)&lt;/p&gt;
&lt;p&gt;10^2.2 LTC &amp;lt;- 2 order -&amp;gt; 10^4.2 new contributors &amp;lt;- 3.5 order -&amp;gt; 10^7.7 users&lt;/p&gt;
&lt;p&gt;gnome (1999-2007)&lt;/p&gt;
&lt;p&gt;10^2.5 LTC &amp;lt;- 1.5 order -&amp;gt; 10^4.0 new contributors &amp;lt;- 3.5 order -&amp;gt; 10^6.5 users&lt;/p&gt;
&lt;div class="section" id="approach"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id20"&gt;approach&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;read issues of 20 LTC and 20 non-LTC&lt;/li&gt;
&lt;li&gt;suvery 56 (36 non-LTC and 20 LTC)&lt;/li&gt;
&lt;li&gt;extract practices published on project web sites&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="summeray"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id21"&gt;summeray&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Ability/Willingness distinguishes LTCs&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Environment&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;macro-climate&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;popularity&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;micro-climate&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;attention&lt;/li&gt;
&lt;li&gt;bumber of peers&lt;/li&gt;
&lt;li&gt;performance of peers&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;regression model&lt;/p&gt;
&lt;p&gt;newcomers to LTC conversion drops&lt;/p&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;actions in first month predicts LTCs&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;24% recall&lt;/li&gt;
&lt;li&gt;37% precision&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="develop-of-auxiliary-functions-should-you-be-agile"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id22"&gt;develop of auxiliary functions: should you be agile?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;a empirial assessment of pair programming and test-first programming&lt;/p&gt;
&lt;p&gt;can agile help auxiliary functions?&lt;/p&gt;
&lt;div class="section" id="experiment"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id23"&gt;experiment&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;pair vs solo&lt;/li&gt;
&lt;li&gt;test-first vs test-last&lt;/li&gt;
&lt;li&gt;students vs professors&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="research-questions"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id24"&gt;research questions&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;r1: can pair help obtain more correct impl&lt;/li&gt;
&lt;li&gt;r2: can test-first&lt;/li&gt;
&lt;li&gt;r3: dst test1 encourage the impl or more test cases?&lt;/li&gt;
&lt;li&gt;r4: does test1 course more coverage&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="result"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id25"&gt;result&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;test-first&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;higher coverage&lt;/li&gt;
&lt;li&gt;non change with correctness&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;pair&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;improve on correctness&lt;/li&gt;
&lt;li&gt;longer total programming time&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="static-detection-of-resource-contention-problems-in-server-side-script"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id26"&gt;Static Detection of Resource Contention Problems in Server-side script&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Addressed the race condition of accessing database or filesystem of PHP&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="amplifying-tests-to-validate-exception-handling-code"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id27"&gt;Amplifying Tests to Validate Exception Handling Code&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;异常处理的代码不但难写，而且难以验证。各种组合情况难以估计，尤其是手机
系统上。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="a-tactic-centric-approach-automating-traceability-of-quality-concerns"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id28"&gt;A tactic-centric approach automating traceability of quality concerns&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;tactic traceability information models&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="life"></category><category term="icse"></category><category term="software"></category></entry><entry><title>MSR 2012 @ ICSE</title><link href="//farseerfc.me/zhs/msr2012.html" rel="alternate"></link><published>2012-06-02T10:42:00+09:00</published><updated>2012-06-02T10:42:00+09:00</updated><author><name>farseerfc</name></author><id>tag:farseerfc.me,2012-06-02:/zhs/msr2012.html</id><summary type="html">
&lt;div class="section" id="mining-software-repository-2012-icse"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id3"&gt;Mining Software Repository 2012 @ ICSE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;参加了今年的MSR，会场在University of Zurich。一大早来到大学，注册有点
小插曲，显然瑞士人搞不清楚中国人的名字，3个杨（Yang）姓的中国人的名牌
被搞错了。然后堀田学长的所属被写作了“Japan, Japan”，成为了全日本的代表。&lt;/p&gt;
&lt;div class="section" id="msr-microsoft-research-talk-msr-mining-software-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;MSR(MicroSoft Research) talk @ MSR(Mining Software Repositories)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;首先是来自微软亚洲研究院（MicroSoft Research @ Asia, MSR Asia）的Keynots，
于是就变成了MSR在MSR的演讲。MSR的张冬梅（Dongmei Zhang）女士的演讲
分为关于Software Analysis和XIAO的两部分。XIAO是MSRA开发的Code Clone
Detector，似乎我要给井上研做的就是这个。想更多了解Xiao的细节，不过张女士
演讲结束的时候的鼓掌导致了话筒的小故障 …&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">
&lt;div class="section" id="mining-software-repository-2012-icse"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id3"&gt;Mining Software Repository 2012 @ ICSE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;参加了今年的MSR，会场在University of Zurich。一大早来到大学，注册有点
小插曲，显然瑞士人搞不清楚中国人的名字，3个杨（Yang）姓的中国人的名牌
被搞错了。然后堀田学长的所属被写作了“Japan, Japan”，成为了全日本的代表。&lt;/p&gt;
&lt;div class="section" id="msr-microsoft-research-talk-msr-mining-software-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;MSR(MicroSoft Research) talk @ MSR(Mining Software Repositories)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;首先是来自微软亚洲研究院（MicroSoft Research @ Asia, MSR Asia）的Keynots，
于是就变成了MSR在MSR的演讲。MSR的张冬梅（Dongmei Zhang）女士的演讲
分为关于Software Analysis和XIAO的两部分。XIAO是MSRA开发的Code Clone
Detector，似乎我要给井上研做的就是这个。想更多了解Xiao的细节，不过张女士
演讲结束的时候的鼓掌导致了话筒的小故障。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="towards-improving-bts-with-game-mechanisms"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id5"&gt;Towards Improving BTS with Game Mechanisms&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;感觉这篇的内容基本上就是关于&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.joelonsoftware.com/items/2008/09/15.html"&gt;http://www.joelonsoftware.com/items/2008/09/15.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这里写到的东西，然后说同样的理论是否可以用于Issue Tracking之类的事情上。
个人感觉这个意义不大，stackoverflow之所以成功是因为它把开源社区本身就
具有的名誉体系具现化了，本着大家都喜欢被别人奉为大牛的心态，就如同
wikipedia一样。同样的理论如果用于公司内部的Issue Tracking系统上，会得到
完全不同的东西吧。就像MSDN的组织方式虽然和wikipedia是一样的，但是在MSDN
里找信息的感觉和在wikipedia完全不一样。个人不太看好这个方向。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ghtorrent"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id6"&gt;GHTorrent&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;这篇的slide在这里可以看到：&lt;a class="reference external" href="http://www.slideshare.net/gousiosg/ghtorrent-githubs-data-from-a-firehose-13184524"&gt;http://www.slideshare.net/gousiosg/ghtorrent-githubs-data-from-a-firehose-13184524&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Data exporter for github. Github的主要数据，代码，已经可以通过git接口
获得了，wiki是git的形式保存的。所以这个项目的目的就是暴露别的数据，主要
是issue tracking，code comments，这种。代码访问github api，然后用分布式
实现以克服api的限制，然后提供torrents形式的history下载。github api获得
的json数据以bson的形式保存在MongoDB里，解析过的有了Schema之后的数据保存
在MySQL里并可以导出SQL。&lt;/p&gt;
&lt;p&gt;个人的想法，觉得数据如果能够更统一，全部存在Git里或许更好，像Wiki一样。
同样是要暴露全部历史记录的目的，用Torrent自己实现的历史远不如用Git的
接口实现的历史记录方便吧，git blame之类的也更方便追踪code comment之类的
作者信息。当然对git的raw date直接读写，需要对git的内部原理有足够的理解，
或许只有github的人有这种能力了。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="topic-mining"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id7"&gt;Topic Mining&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;用得两个参数， DE 和 AIC，完全不能理解，过后研究。实验针对了Firefox,
Mylyn, Eclipse三个软件。试图从Repo中分析源代码的identifier和comments，
找到topic和bug之间的关系，比如怎样的topic更容易导致bug。得出的结论似乎
也很暧昧，只是说核心功能被报告的bug更多，但是不知道原因。这只能表示核心
功能受到更多关注和更多测试吧，并不能说明核心功能就容易产生bug。&lt;/p&gt;
&lt;p&gt;不过这个的Slide做得很漂亮，很容易理解。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="secold"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id8"&gt;SeCold&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A linked data platform for mining software repositories&lt;/p&gt;
&lt;p&gt;没听懂这个项目的目的。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="the-evolution-of-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id9"&gt;The evolution of software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;第二天的Keynotes，关于将Social Media和Software Development相结合的想法。
或许就是Github赖以成功的基础。讲到代码中的comment, Tags, uBlog, blog之类
的social的特性和IDE的融合的趋势。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="do-faster-releases-imporve-software-quality"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id10"&gt;Do Faster Releases Imporve Software Quality?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用Firefox作为例子。&lt;/p&gt;
&lt;p&gt;结论是快速发布导致bug更多，更容易crash，但是bug更快得到修复，并且用户
更快转向新的发布。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="security-vs-performance-bugs-in-firefox"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id11"&gt;Security vs Performance Bugs in Firefox&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Performance bugs are regression, blocks release.&lt;/p&gt;
&lt;/div&gt;
&lt;hr class="docutils"/&gt;
&lt;div class="section" id="id1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id12"&gt;一些感想&lt;/a&gt;&lt;/h3&gt;
&lt;div class="section" id="commit"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id13"&gt;基于自然语义分析的commit分割&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;经常工具（比如git）的使用者并没有按照工具设计者的意图使用工具，这给MSR
带来很多困难。举个例子，git有非常完美的branch系统，通常期望git的使用者
能够在一次commit里commit一个功能，比如一个bug的修复，或者一个feature的
添加，但是事实上经常有很多逻辑上的commit被合并在一个里面了。&lt;/p&gt;
&lt;p&gt;或许这不是使用者的错，而是工具仍然不够人性的表现。或许我们可以自动把
一次的commit按照语义分割成多个。&lt;/p&gt;
&lt;p&gt;分割之后，可以更容易地把issue和commit关联，也更容易组织更多的研究。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="slides"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id14"&gt;关于这次发表中大家用的slides系统&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;题目为``Incorporating Version Histories in Information Retrieval Based
Bug Localization''的人用的slide是beamer的。公式很多，overlay很多，列表
很多，图片很少，典型的beamer做出的slide。思维导图用得很不错。今天一天
有至少3个slide是用beamer做的。&lt;/p&gt;
&lt;p&gt;题目为``Towards Improving Bug Tracking Systems with Game Mechanisms''
的人用了prezi，图片很多，过度很多。但是比如没有页号没有页眉页脚，正式
会议的场合不太方便。&lt;/p&gt;
&lt;p&gt;至少有六个以上用了Apple Keynotes，Keynotes做出来的东西真的和Powerpoint
做出来的很难区别，其中两个人用了初始的主题所以才看出来。&lt;/p&gt;
&lt;p&gt;剩下的自然是PPT。MSRA的张女士做的虽然是PPT，倒是有很多beamer的感觉，
比如页眉页脚和overlay的用法。这些如果都是PPT做出来的，会多很多额外的
人力吧。&lt;/p&gt;
&lt;p&gt;值得一提的是有一个题目为``Green Mining: A Methodology of Relating
Software Change to Power Consumption''的人的slide全是``劣质''的手绘漫画，
效果意外地好，很低碳很环保很绿色很可爱。具体效果可以参考下面的动画，虽然
现场看到的不是一个版本：&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://softwareprocess.es/a/greenmining-presentatation-at-queens-20120522.ogv"&gt;http://softwareprocess.es/a/greenmining-presentatation-at-queens-20120522.ogv&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id2"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id15"&gt;微软是个腹黑娘！&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;嘛虽然这也不是什么新闻了。MSR2012的Mining Challenge的赞助商是微软，管理
组织者来自微软研究院，奖品是Xbox和Kinect。然后今年的题目是：&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Mining Android Bug
&lt;/pre&gt;
&lt;p&gt;我看到了微软满满的怨气……&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="life"></category><category term="msr"></category><category term="icse"></category><category term="mining"></category><category term="software"></category><category term="repository"></category></entry></feed>