Write a Blog >>

ICSE 2020 Technical Briefings offer conference attendees the opportunity to gain new insight, knowledge, and skills in select software engineering areas of topical importance today. Each technical briefing is led by an expert in the relevant field, and typically consists of an overview of the problem, a description of current and emerging practical approaches and relevant research results, and a brief outlook at possible future trends and research directions. Technical briefings will be 90 minutes in length each and aimed at both industrial participants and academic participants. Technical briefings will be integrated into the main conference program.

ICSE 2020 Technical Briefings

Machine Learning in Google Ads
Marija Mikic
Google, USA

Program Analysis Meets Autonomous Robots
Sebastian Elbaum
University of Virginia, USA

Self-Adaptive Systems: Why, What, and How to Engineer Them?
Danny Weyns
Katholieke Universiteit Leuven, Belgium

Software Engineering for Data Analytics (SE4DA)
Miryung Kim
University of California, Los Angeles, USA

Data-Driven Software Automation
Tao Xie, Peking University, China
Ge Li, Peking University, China
Jian-Guang Lou, Microsoft Research Asia, China
Dongmei Zhang, Microsoft Research Asia, China


Machine Learning in Google Ads

Marija Mikic
Google, USA

Google ads power the internet ecosystem. Businesses rely on ads to find their customers. Publishers and creators rely on digital advertising as their source of revenue. Finally ads enable end users to reach internet content for free. In this talk, I will provide a high-level overview of the Google ads system. The talk will focus on different machine learning systems that power Google ads: the challenges these models face, the scale at which they operate, how they evolve, and some of the state-of-the-art techniques they leverage. I will highlight how these models classify internet content, how they decide when and what ads to show, how they help advertisers reach the right audience, and how they help us protect users.

Marija Mikic is a Software Engineering Director at Google Los Angeles and site lead for Google Los Angeles, where she has been employed since 2004. Her teams work on search, display, video/YouTube, and shopping ads quality and content (web page, query, keyword, ad creative, image, app, app screen, …) classification for ad targeting and brand safety. She received her Ph.D. in 2004 in Software Engineering from the Department of Computer Science at the University of Southern California. She has been on the organizing and/or program committees of ICSE 2015, 2016, 2017, 2018, 2019. She was the program co-chair of the first International Conference on Software Architecture (ICSA 2017). Her interests are in large-scale distributed systems, human computation, and machine learning/evolution.


Program Analysis Meets Autonomous Robots

Sebastian Elbaum
University of Virginia, USA

The soaring number of autonomous robots are bringing to prominence the insidiousness and potential impact of their faults. In turn, these faults highlight the limitations of existing program analysis techniques, which are being challenged not just by the immense input space, but also by the integration of cyber and physical semantics, the multiple sources of uncertainty, and the incorporation of machine learning components. In this talk I will provide an overview of some mobile robotic platforms and frameworks that we have targeted to ground our research efforts in addressing these challenges, the range of properties that those systems are meant to satisfy from robustness to ethical concerns, and the body of techniques we have developed to address those challenges that span from type analysis to oracle analysis, and from DNN verification to trajectory and environment generation.

Sebastian Elbaum is a Professor of Computer Science and Anita Jones Fellow at the University of Virginia. His research aims to build dependable systems through domain-specific analysis techniques. His current efforts are focused on robotic systems. He is the recipient of an NSF Career Award, an IBM Innovation Award, a Google Faculty Research Award, an FSE Test of Time Award 2018, and several ACM SigSoft Distinguished Paper Awards, mostly for empirically studying program analysis and software testing challenges, and developing automated techniques for addressing them. He served as Program Co-Chair of the 2015 International Conference on Software Engineering and several other software engineering conferences, Co-Editor for the Information and Software Technology Journal, and Associate Editor of the ACM Transactions on Software Engineering and Methodologies Journal. He was the Steering Committee Chair for ICSE from 2015-2019. He was recognized as a Distinguished Scientist by the Association for Computing Machinery. He received his Ph.D. from the University of Idaho, and a Systems Engineering degree from Universidad Catolica de Cordoba, Argentina. He spent sabbaticals at Google (Mountain View, USA), CNR (Pisa, Italy), and UCL (London, UK).


Self-Adaptive Systems: Why, What, and How to Engineer Them?

Danny Weyns
Katholieke Universiteit Leuven, Belgium

Back in 2001, IBM released a manifesto pointing to the rising complexity of managing computing systems that resulted from the progressing integration of system components and the continuously changing operating conditions systems faced. Around the same time, researchers in the US and Europe raised the issue that existing software engineering approaches were not retaining the full plasticity that was required to accommodate resource variability, changing user needs, and handling system faults, without requiring downtime. A consensus grew that the only viable option to tackle the problems was to enable systems managing themselves, which are usually called self-adaptive systems. Over the past two decades, communities of different fields have put extensive efforts in understanding the principles of self-adaptation and devising novel techniques and methods to engineer self-adaptive systems. We start this talk with motivating why self-adaptation is important and we explain the basic principles that underlie a self-adaptive system. Then we zoom in on how self-adaptive systems are engineered through seven waves that emerged over time. These waves put complementary aspects of engineering self-adaptive systems in focus that synergistically have contributed to the current body of knowledge in the field. We use a practical Internet-of-Things application as an illustrative case throughout the talk. To conclude, we peak into the future of the field and propose a number of open research challenges for the years to come.

Short bio

Danny Weyns is a professor at the Department of Computer Science of the Katholieke Universiteit Leuven in Belgium, where he is a member of the imec-DistriNet research group. He is also part time affiliated with Linnaeus University Sweden. Dr. Weyns’ main research interests are in software engineering of self-adaptive systems. With his team of PhD students, he studies the use of formal techniques and design models during operation to realize and assure self-adaptation for different quality goals. His team has a particular interest in decentralized systems, where adaptation needs to be realized by multiple feedback loops. Recently, the team started investigating the use of online learning techniques to support self-adaptation in large-scale systems that are exposed to complex types of uncertainties. Currently, he leads the research project “Trustworthy Decentralized Self-Adaptive Systems” and the project “Dependable Adaptive Software Systems for the Digital World.” Dr. Weyns recently authored the book “An Introduction to Self-adaptive Systems - A Contemporary Software Engineering Perspective.”

Software Engineering for Data Analytics (SE4DA)

Miryung Kim
University of California, Los Angeles, USA

We are at an inflection point where software engineering meets the data-centric world of big data, machine learning, and artificial intelligence. As software development gradually shifts to the development of data analytics with AI and ML technologies, existing software engineering techniques must be re-imagined to provide the productivity gains that developers desire. We conducted a large scale study of almost 800 professional data scientists in software industry to investigate what a data scientist is, what data scientists do, and what challenges they face. This study has found that ensuring correctness is a huge problem in data analytics. Software developers currently do not have a good method for increasing confidence on the quality of data analytics development. We argue for re-targeting software engineering tools and research directions to address new challenges in the era of data-centric software development. We showcase a few examples of software engineering techniques that re-invent automated debugging and testing for data analytics. In particular, we discuss interactive debugging primitives, automated debugging, data provenance, and symbolic-execution based test generation for big data analytics in Apache Spark. We conclude with open problems in software engineering to support data-centric software development and the needs of AI and ML workforce.

Miryung Kim is a Full Professor in the Department of Computer Science at the University of California, Los Angeles. She is known for her research on code clones—code duplication detection, management, and removal solutions. Recently, she has taken a leadership role in defining the emerging area of software engineering for data science. She received her B.S. in Computer Science from Korea Advanced Institute of Science and Technology and her M.S. and Ph.D. in Computer Science and Engineering from the University of Washington. She received the Korean Ministry of Education, Science, and Technology Award, the highest honor given to an undergraduate student in Korea. She received various awards including an NSF CAREER award, Google Faculty Research Award, and Okawa Foundation Research Award. She is an Experienced Research Fellow from Alexander von Humboldt Foundation. She was previously an assistant professor at the University of Texas at Austin. She spent time as a visiting researcher at the Research in Software Engineering (RiSE) group at Microsoft Research. She is the lead organizer of a Dagstuhl Seminar on SE4ML—Software Engineering for AI-ML based Systems. She is a Program Co-Chair of ESEC/FSE 2022 and ICSME 2019, and an Associate Editor of IEEE Transactions on Software Engineering.


Data-Driven Software Automation

Tao Xie, Peking University, China
Ge Li, Peking University, China
Jian-Guang Lou, Microsoft Research Asia, China
Dongmei Zhang, Microsoft Research Asia, China

Abstract: Software automation typically refers to the process of generating software automatically based on formal or informal specifications. In the research community, software automation has been a decades-long dream, where software developers are freed from tedious programming tasks for constructing the initial version of software, and from expensive software maintenance tasks for evolving the software to future versions in order to catch up with the changes from requirements or execution environments. Example software automation technologies include program synthesis, code completion, program transformation, code recommendation, program repair, and software self-evolution. In the past decade, software development, maintenance, and deployment produce a huge volume of software engineering data such as source code, version histories, feature specifications, bug reports, test cases, execution traces/logs, and real-world user feedback. These data supply a valuable source of inputs for software automation technologies. These data supplies provide great potential to substantially boost these technologies’ effectiveness and efficiency toward realizing software automation in not only academic settings but also industrial settings. This technical briefing discusses recent research and future directions in data-driven software automation, as an important objective in the increasingly popular fields of software analytics and intelligent software engineering.

Short bios:

Tao Xie is a Chair Professor in the Department of Computer Science and Technology at Peking University, China. He received an NSF CAREER Award, a Microsoft Research Outstanding Collaborator Award, a Microsoft Research Software Engineering Innovation Foundation (SEIF) Award, a Google Faculty Research Award, a Facebook Testing and Verification Research Award, an IBM Jazz Innovation Award, and three-time IBM Faculty Awards. He was the Program Chair of 2015 ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) and will be a Program Co-Chair of 2021 IEEE/ACM International Conference on Software Engineering (ICSE). He was the Program/General Chair of 2017/2018 ACM Richard Tapia Celebration of Diversity in Computing Conference (Tapia). He is a co-Editor-in-Chief of the Wiley journal of Software Testing, Verification and Reliability (STVR). He was selected as an ACM Distinguished Scientist in 2015, an IEEE Fellow in 2018, and an AAAS Fellow in 2019.
Ge Li is an associate professor in the Department of Computer Science and Technology at Peking University, China. His research work mainly concerns applications of probabilistic methods for machine learning, including program language process, program analysis, and code generation. He is one of the earliest researchers engaged in the study of the program representational model based on deep neural networks. Some of his research results are applied in aiXcoder, the first intelligence code completion tool based on DNN. Some of his researches are published in top-tier conferences, including NeurIPS, AAAI, IJCAI, ACL, ASE, ICSE, EMNLP, etc.
Jian-Guang Lou is a senior principal research manager in Microsoft Research Asia. His main research interests include data mining and machine learning for software engineering, performance analysis and diagnosis of online services, natural language processing, and conversational data analysis. Many of his research results have been applied and deployed to the large-scale online services in Microsoft. Some of these technologies have been published in top conferences including ICSE, FSE, ASE, ATC, SigKDD, AAAI, ACL, EMNLP, etc.
Dongmei Zhang is the Assistant Managing Director of Microsoft Research Asia (MSRA), leading the research of Data, Knowledge and Intelligence (DKI) which is an interdisciplinary area across data intelligence, knowledge computing, information visualization, and software engineering. Dr. Zhang founded the Software Analytics Group in MSRA in 2009. Since then she has been leading the group to research software analytics technologies. In addition to conducting state-of-the-art research, her group collaborates closely with multiple product teams in Microsoft, and has developed and deployed software analytics tools that have created high business impact. In recent years, Dr. Zhang and her teams have expanded the impact into the business intelligence area, and helped Microsoft establish technology leadership in the direction of Smart Data Discovery.