Tutorials

Distance (techniques, tools) = unknown

Sebastian Elbaum

The software engineering community constantly pushes the state-of-the-art by introducing “new” techniques. The techniques are typically compared empirically with tools that realize previously published techniques, and the techniques are also often built on top of other tools. The underlying hopeful assumption is that the distance between the tools and the techniques they implement is small, and that the tools truly represent the state of the art. Unfortunately, that assumption does not hold often. The distance between techniques and tools is generally unknown and in our experience regularly significant. It is also rare for tools to capture the state of the art for long. In this tutorial I will illustrate how this distance manifests in the context of our work in symbolic analysis and, more broadly, in the program analysis community. I will also show how this distance makes it difficult to reproduce existing work, undermines our research findings, and even discourages research directions with real potential. I will work with you to establish parallels to other fields in software engineering where similar challenges may arise and devise studies that could help us explore our conjectures. I will conclude by posting a broader set of questions about experimental rigor, errors, and technological innovation, and by recommending mitigation strategies for addressing these challenges.

Brief bio

I am a Computer Science Professor at the University of Virginia. (http://www.cs.virginia.edu/~se4ja/) My research aims to build dependable systems through domain-specific analysis techniques. My teaching focuses on instilling cost-effective software development principles.

I am the recipient of an NSF Career Award, an IBM Innovation Award, a Google Faculty Research Award, an FSE Test of Time Award, and 5 ACM SigSoft Distinguished Paper Awards (FSE2006, ICSE2008, ICSE2012, ISSTA2013, ICSE2016), mostly for empirically studying program analysis and software testing challenges, and developing automated techniques for addressing them. My current development and analysis work is focused on robotic systems. I served as Program Co-Chair of the 2015 International Conference on Software Engineering, Program Chair for the 2007 International Symposium on Software Testing and Analysis, Program Co-Chair for the 2008 Empirical Software Engineering Symposium, Co-Editor for the Information and Software Technology Journal, and as Associate Editor of the ACM Transactions on Software Engineering and Methodologies Journal. I am the Steering Committee Chair for ICSE. I was recognized as a Distinguished Scientist by the Association for Computing Machinery for my contributions to computing.

I received my Ph.D. from the University of Idaho, and a Systems Engineering degree from Universidad Catolica de Cordoba, Argentina. I spent a significant part of my academic career at the University of Nebraska, where I co-founded two international recognized labs, the E2 Software Engineering Lab and the Nimbus Robotics Lab. I have spent my sabbaticals as a research scientist or research fellow at Google (Mountain View, USA), CNR (Pisa, Italy), and UCL (London, UK).

Containerization

Florian Hofter

In the tutorial we will learn what containers are and how to use them as a tool for day-to-day applications such as a website, database or micro-services. With a step to step guide we will create our own container and setup a system linking it together with community maintained containers.

Brief bio

Florian Hofer received the M.Sc. in Software Engineering and IT Management from the Free University of Bolzano-Bozen, Italy where he currently purses his Ph.D. in Computer Science. He is a Visiting Researcher at the University of California at Berkeley, USA and an automation professional since 2000. His research interest is in software engineering for cyber-physical systems in Industry 4.0, particularly their modeling and testing.

Advanced software development in the era of multicores

Jasmin Jahic


We are living in the multicore era of computing. In order to use multiple cores for improving the performance of software systems, it is necessary to partition software into parts that can execute concurrently. During the tutorial, students will learn the basics of one concurrency approach – multithreaded software development, using C. The tutorial will present the need for the multithreaded software in the era of the multicore processors and demonstrate how significantly hard it is to test such software, compared to the single-threaded.

Brief bio

Jasmin Jahic received his computer science diploma from University of Tuzla, Bosnia and Herzegovina, and the M.Sc. in Robotics and Signal Processing from Ecole Centrale de Nantes, France. Currently, he is a researcher at Fraunhofer Institute for Experimental Software Engineering. His research interest is in Computing, Concurrency, Software Architectures, and Application of AI.

Artificial Intelligence meets Software Engineering

Hongming ZhuD

With the rapid development of AI technologies, there is a growing realization that a combination of AI technologies like advanced machine learning, deep learning, natural language processing, and business rules will have an impact on all steps of the software development life cycle, helping developers build better software faster and better for quality. Application development and delivery (AD&D) professionals and Researchers need to understand the potential benefits AI will bring, not only to how they build software but also to the nature of the applications themselves. In parallel, AD&D pros and Researchers should not ignore the challenges and risks that come with AI.

Brief bio

Dr. Hongming ZHU is an Associate Professor at school of software engineering, Tongji University. He holds a BASc and MSc in Computer science from Tongji University, and a PhD in Computer Science from Bolton University . Dr. Zhu’s research focuses on knowledge graph and software engineering. He also works on applying heterogeneous data mining in mobile, insurance and car- sharing system.