从没接触过MSR,也就是mining software repository,翻译成中文也不知道叫啥。Fisch第一次跟我说的时候,我还以为他让我做一个类似SVN的版本管理系统,自从上次他出差之前见了我之后,才知道,原来他想让我做版本库可视化。
这两天看了不少论文,一头雾水。按照Fisch的意思,我的目标系统应该是一个使用data mining和software visualization交叉技术的项目,这可苦啥我也,这两样data mining算是浅显的接触过,software visualization基本就是一点不会,不过也好,项目难点能学到东西,也比较有挑战性,作为也许是学生阶段最后一个作业,一定要尽善尽美。
先说MSR,网上搜了一下,相关内容也不少,近两年这方面论文不少,应该算是个挺热的领域,这个东西应该和data mining是相似的,不同的是,MSR更细,更实用,而DM则偏理论一些。说实话,MSR可供研究的东西还是不少的,网上关于分析CVS版本库的开源软件真的不少,以前没接触过这个领域,还以为是冷门,一接触才知道,这个领域其实已经有很多人在研究了。从我读的那几篇论文来看,MSR大概可以分成三个level,代码层面,项目层面和系统层面。代码层面是目前研究比较多的,关注点在代码的改变,生成等等,包括分析代码中数据结构和算法的变化全在此列里。项目层面则关注文件的变化,譬如开发周期时间,开发者投入度,文件更新频率等。而系统层面则关注的是子系统之间的相互作用和变化。Fisch并没有明确跟我说要做哪个方面的,但是个人觉得项目层面的MSR似乎更适合我,虽然代码层面的MSR更详细,资料更多,但是涉及到的算法内容太多,比如代码比兑,代码筛选等,一旦深入进入怕出不来了,到时候连作业都完不成就得不偿失了,而且凭直觉,这个层面