简介

    我们利用人工智能、程序分析、软件测试等技术提高复杂软件系统的质量,包括分布式系统(Hadoop、Spark等)、机器学习软件(Spark MLlib、TensorFlow等)、微服务(Node.js等)、云平台(Docker等)、电子表格等,并在顶级会议与期刊(ICSE、FSE、ASE、ISSTA、VLDB、TSE等CCF A类)发表多篇高水平论文,获得中国计算机学会优秀博士论文奖、顶级会议FSE 2018杰出论文奖等。我们与微软亚洲研究院、阿里巴巴、华为、腾讯等高科技企业开展紧密合作研究,取得面向实际系统的多项研究成果。

    招聘: 我们招收对软件工程、程序分析、系统研究(机器学习系统、大数据系统、分布式/并行系统)感兴趣的博士生/硕士生/实习生/访问学生(常年有效),要求学生对研究具有较强兴趣、和较强的动手能力!

指导老师

在读学生

许清鑫 博士生
汪涛 博士生
宋建森 博士生
崔紫玉 博士生
叶宏杰 硕士生
周芯宇 硕士生
张康康 硕士生
戴千旺 硕士生
丁昊 硕士生
吴陈傲 硕士生

主要研究方向

  • 复杂分布式系统可靠性保障
    分布式系统已经成为互联网企业应用的基石,典型的应用包括淘宝、支付宝、微信、网盘等。分布式系统面临海量的用户、复杂的运行环境等,对系统可靠性具有极高的要求。如何保障复杂分布式系统的可靠性是当前亟待解决的关键问题。我们针对典型的分布式计算框架、分布式存储系统等开展深入研究,通过故障分析、测试、失效恢复机制设计等,提高复杂分布式系统的可靠性。
  • 电子表格智能
    电子表格(比如Excel、WPS表格等)是我们日常工作的必备软件之一。但是,电子表格在使用过程中面临众多问题,比如公式/数据错误、缺乏智能数据分析等。针对此,我们通过程序分析、机器学习等方法,自动化抽取、理解电子表格的结构。进而,基于对电子表格结构的理解,开展智能图表推荐、智能问答、智能查错等方面的研究工作。同时,我们与微软亚洲研究院、金山WPS等开展深入合作研究,将科研成果应用到产品中去。
  • 动态脚本语言的分析与测试
    动态脚本语言,如JavaScript、Python,已经被广泛应用于各种软件系统的开发,比如Web应用、服务器端系统、微信小程序、机器学习系统等,将成为下一代软件开发的常用编程语言。但是,由于动态脚本语言的复杂性,基于动态脚本语言开发的软件系统往往面临一系列质量问题。我们针对基于这些语言开发的软件系统进行分析、测试技术的研究,并与微信小程序等平台开展深入合作研究。
  • 大规模软件交付制品分析与知识抽取
    Docker已经成为主流的容器虚拟化技术,基于Dockerfile和Docker image的构建与部署得到广泛应用。当前Docker Hub和GitHub等社区积累了数以百万计的Dockerfile和Docker镜像交付制品。这些制品中蕴含了丰富的系统构建知识,包括:软件依赖、安装方式、版本兼容性等。但是这些制品缺少系统的知识分析挖掘与有效的组织管理,同时还存在很多由于交付制品质量问题导致的镜像构建失败的情况。我们采用机器学习和自然语言处理等技术,研究自动语义标注、知识图谱构建、基于知识的镜像自动生成以及构建失败修复等。

代表性论文(更多论文请查看指导老师个人主页; CCF论文分类

  • Semantic Table Structure Identification in Spreadsheets
    Yakun Zhang, Xiao Lv, Haoyu Dong, Wensheng Dou, Shi Han, Dongmei Zhang, Jun Wei, Dan Ye
    30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021, CCF A).
  • Systemizing Interprocedural Static Analysis of Large-Scale Systems Code with Graspan
    Zhiqiang Zuo, Kai Wang, Aftab Hussain, Ardalan Amiri Sani, Yiyu Zhang, Shenming Lu, Wensheng Dou, Linzhang Wang, Xuandong Li, Chenxi Wang, Guoqing Harry Xu
    ACM Transactions on Computer Systems (TOCS 2021, CCF A).
  • CoFI: Consistency-Guided Fault Injection for Cloud Systems
    Haicheng Chen, Wensheng Dou, Dong Wang, Feng Qin
    35th IEEE/ACM International Conference on Automated Software Engineering (ASE 2020, CCF A).
  • Learning to Detect Table Clones in Spreadsheets
    Yakun Zhang, Wensheng Dou, Jiaxin Zhu, Liang Xu, Zhiyong Zhou, Jun Wei, Dan Ye, Bo Yang
    29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2020, CCF A).
  • Detecting Cache-Related Bugs in Spark Applications
    Hui Li, Dong Wang, Tianze Huang, Yu Gao, Wensheng Dou, Lijie Xu, Wei Wang, Jun Wei, Hua Zhong
    29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2020, CCF A).
  • Understanding Exception-Related Bugs in Large-Scale Cloud Systems
    Haicheng Chen, Wensheng Dou, Yanyan Jiang, Feng Qin
    34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019, CCF A).
  • An Experimental Evaluation of Garbage Collectors on Big Data Applications
    Lijie Xu, Tian Guo, Wensheng Dou, Wei Wang, Jun Wei
    45th International Conference on Very Large Data Bases (VLDB 2019, CCF A).
  • Detecting Atomicity Violations for Event-Driven Node.js Applications
    Xiaoning Chang, Wensheng Dou, Yu Gao, Jie Wang, Jun Wei, Tao Huang
    41st ACM/IEEE International Conference on Software Engineering (ICSE 2019, CCF A).
  • An Empirical Study on Crash Recovery Bugs in Large-Scale Distributed Systems
    Yu Gao, Wensheng Dou, Feng Qin, Chushu Gao, Dong Wang, Jun Wei, Ruirui Huang, Li Zhou, Yongming Wu
    26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018, CCF A).
  • Be Careful of When: An Empirical Study on Time-Related Misuse of Issue Tracking Data
    Feifei Tu, Jiaxin Zhu, Qimu Zheng, Minghui Zhou
    26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018, CCF A).
  • Expandable Group Identification in Spreadsheets
    Wensheng Dou, Shi Han, Liang Xu, Dongmei Zhang, Jun Wei
    33rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2018, CCF A).
  • A Comprehensive Study on Real World Concurrency Bugs in Node.js
    Jie Wang, Wensheng Dou, Yu Gao, Chushu Gao, Feng Qin, Kang Yin, Jun Wei
    32nd International Conference on Automated Software Engineering (ASE 2017, CCF A).
  • CACheck: Detecting and Repairing Cell Arrays in Spreadsheets
    Wensheng Dou, Chang Xu, Shing-Chi Cheung, Jun Wei
    IEEE Transactions on Software Engineering (TSE 2017, CCF A).
  • Effectiveness of Code Contribution: From Patch-Based to Pull-Request-Based Tools
    Jiaxin Zhu, Minghui Zhou, Audris Mockus
    24th International Symposium on the Foundations of Software Engineering (FSE 2016, CCF A).
  • Detecting Table Clones and Smells in Spreadsheets
    Wensheng Dou, Shing-Chi Cheung, Chushu Gao, Chang Xu, Liang Xu, Jun Wei
    24th International Symposium on the Foundations of Software Engineering (FSE 2016, CCF A).
  • VEnron: A Versioned Spreadsheet Corpus and Related Evolution Analysis
    Wensheng Dou, Liang Xu, Shing-Chi Cheung, Chushu Gao, Jun Wei, Tao Huang
    38th International Conference on Software Engineering (ICSE SEIP 2016).
  • Is Spreadsheet Ambiguity Harmful? Detecting and Repairing Spreadsheet Smells due to Ambiguous Computation
    Wensheng Dou, Shing-Chi Cheung, Jun Wei
    36th International Conference on Software Engineering (ICSE 2014, CCF A).

毕业学生

  • 袁秉承,硕士生,2021,毕业去向:猿题库
  • 黄志佳,硕士生,2021,毕业去向:腾讯
  • 敖泽柳,硕士生,2021,毕业去向:腾讯
  • 张雅坤,硕士生,2021,毕业去向:北京大学 博士
  • 徐少鹏,硕士生,2020,毕业去向:阿里巴巴
  • 周琛瑜,硕士生,2020,毕业去向:百度
  • 徐良,博士生,2019,毕业去向:南京金陵科技学院 讲师
  • 李世雄,硕士生,2019,毕业去向:蚂蚁金服
  • 杨丰,硕士生,2019,毕业去向:百度
  • 崔成旭,硕士生,2019,毕业去向:奇玩
  • 王杰,博士生,2018,毕业去向:阿里巴巴与北京大学联合博士后
  • 殷康,硕士生,2018,毕业去向:阿里妈妈