ICSE 2019 接收的论文已经公布,各个session也已经公布。ICSE 作为软工顶会,一直都是软工人的风向标,然而我现在还不知道要做什么方向,所以现准备分析一下ICSE 2019文章都有哪些软工的方向,希望:
1)了解当前 ICSE 软工热门方向;
2)看看有什么能做的方向or点。
ICSE 2019 主页:https://2019.icse-conferences.org/
被收录的所有ICSE论文以及会议日程安排:
https://2019.icse-conferences.org/program/program-icse-2019
但是神奇的是,ICSE 2019 和很多会(包括各种workshop)一起开,比如ICPC 2019,SEAMS 2019,ICSSP等等等等。
基于此情况,我决定在提取软工热门方向时,以“session”为关键字进行分类。
文章下载,有以下几种方式:
1)有些是预出版的,直接在ICSE 2019 accepted papers列表里面就有下载链接;
2)有些在Google学术、百度学术 或者 对应作者的个人主页 能够找到;
3)有些在学校图书馆电子资源里面能找到,但是ICSE 2019 还没开会,也还没有论文集,所以这种情况下这个方法应该行不通。
Improving Source Code Readability: Theory and Practice (当前检查代码异味和改进软件质量的 指导性 度量标准 metrics 不太行,尤其是在软件的readability上,所以我们提出了新的可读性度量来评估软件代码可读性,从而用于指导软件质量的提高)
Live Programming and Software Evolution: Questions during a Programming Change Task(实时编程环境对软件开发的影响 研究。)
A Large-Scale Empirical Study on Code-Comment Inconsistencies (实证:代码注释的不一致性)
An empirical study on practicality of specification mining algorithms on a real-world application(实证:真实世界应用的规约挖掘算法的可行性/实用性)
Data Science and development team remote communication: the use of the Machine Learning Canvas(数据科学和开发团队 远程交流:机器学习Canvas。 Canvas的概念见 文献 [1,2] )
Performance Evolution of Newcomers in Large-Scale Distributed Software Projects: An Industrial Case Study
Comparing Bug Replication in Regular and Micro Code Clones(比较在正常和微小的代码克隆中的bug重现)
Neural Detection of Semantic Code Clones via Tree-Based Convolution (北大,以及谢涛教授。 通过基于树的卷积来做对语义代码克隆的 neural detection)
Comparing Machine Learning and Heuristic Approaches for Metric-Based Code Smell Detection(代码异味的检测有:启发式方法,即通过计算各种metric,得到检测规则;机器学习方法,即代码度量被用作代码异味的预测器。 然后作者搞了一个实证。)
Prevalence of Bad Smells in PL/SQL Projects (PL和SQL项目中的代码坏味)
CCEvovis: A Clone Evolution Visualization System for Software Maintenance (用于软件维护的 克隆演化的可视化系统,这个就是克隆检测落地的工作吧。)
DeepVisual: A Visual Programming Tool for Deep Learning Systems (针对深度学习系统的可视化编程工具)
srcPtr: A Framework for Implementing Static Pointer Analysis Approaches (一个实施静态指针分析方法的框架)
Replication Can Improve Prior Results: A GitHub Study of Pull Request Acceptance (复现可以改进之前的结果:一个对于pull request 接受度的github研究)
Do Extracted State Machine Models Help to Understand Embedded Software? (被提取的状态机模型能够帮助理解嵌入式软件吗?)
PathMiner : A Library for Mining of Path-Based Representations of Code (挖掘基于路径的代码representations 的库)
SCOR: Source Code Retrieval With Semantics and Order (用语义和顺序去挖掘源码)
Import2vec: learning embeddings for software libraries (用例深度学习)
Semantic Source Code Models Using Identifier Embeddings
Cleaning StackOverflow for Machine Translation (机器转换)
DeepJIT: An End-To-End Deep LearningFramework for Just-In-Time Defect Prediction (缺陷预测)
Empirical study in using version histories for change risk classification
A Dataset of Non-Functional Bugs (做非功能性缺陷数据集的)
A Data Set of Program Invariants and Error Paths (程序不变式和错误路径的数据集)
On the Effectiveness of Manual and Automatic Unit Test Generation: Ten Years Later (人工和自动单元测试生成的效率:10年后)
这个感觉还挺偏实践的,什么都挖。
Xin Xia 是chair
看来软工也有安全方面的研究。
漏洞
这也算修复的范畴吧,我认为。
Cross-language clone detection by learning over abstract syntax trees (这个有意思,跨语言的克隆检测,感觉好强。但是用的又是learning ,这个是可解释的吗?)
SeSaMe: A Data Set of Semantically Similar Java Methods
神经网络,机器学习,等方法无处不在。
还有一些没总结出来,但是感觉基本八九不离十了。(以后有空还会再补充分析,以及以后还会分析ISSTA ,ASE 这些会议的文章)。
我感觉这是一种不错的调研模式,能够帮助你弄清楚领域内的一些问题,同时一定程度借鉴其他方向的思想。
最后,大致总结下软工的几个方向:
[1] machinelearningcanvas https://github.com/louisdorard/machinelearningcanvas
The Machine Learning Canvas is a template for developing new or documenting existing predictive systems that are based on machine learning techniques. It is a visual chart with elements describing a question to predict answers to (with machine learning), objectives to reach in the application domain, ways to use predictions to reach these objectives, data sources used to learn a predictor, and performance evaluation methods.
[2] From Data to AI with the Machine Learning Canvas (Part I) https://medium.com/louis-dorard/from-data-to-ai-with-the-machine-learning-canvas-part-i-d171b867b047