背景
好久没有更新过博客了。
这次是又一次找了一位同学,聊了聊有关软件工程方面的内容。虽然我和那位同学都学的是软件工程,但是实际对软件工程的理解还是有很大差异的,主要是因为,学术经历上有所差异。我所做的工作一般来说是软件工程实践,所读的书也都是软件工程实践或过程管理相关。我去请教的那位同学,则是在有着软件工程实践的同时,对于软件工程有着一定的研究。可能用词稍微有点不准确,不过从直观角度看,我之前只是应用,而那位同学则是做研究。
这次我个人认为,在聊天的过程中,解决了我的诸多问题,我最大的收获是,知道了软件工程研究的内容比我原来的理解要更广一些。我在征得同意的前提下,将聊天内容稍作整理,略有加工删减分享出来,希望能够帮助到一些同学。我用X表示,聊天的同学用Y来表示。
正文
软件挖掘
X:现在就是软件数据挖掘(实际想说的是软件挖掘),这个主要是偏重软件,还是偏重数据挖掘啊
Y:一般会算到软工的community,而不是AI的 ,取决于工作最后的创新点,或者说重点,有一个纯做软件挖掘 software mining 的 community,会议是MSR 。
研究软件工程的应用场景
X:现在研究软件有什么比较常见的应用嘛?我感觉我对软件的认识可能还停留在比较久远的年代。还是说,对软件的研究,主要影响并不在应用层,而在于对于开发人员的影响?
Y:比如说time-tracing的debug技术。所有静态分析工具,新一点的有人在分析web service应用如何做静态检查,面向end user的程序合成(比如自动生成excel脚本),这是程序生成的领域 测试里的各种概念和技术,如mutation testing, record-replay 都是来自学术界的。有做工具的,有做模型的,有做纯empirical study的 。software engineering是一个很大