We will offer talks by the following keynote and invited speakers:
Anne Kathrin Schmuck, Max Planck Institute for Software Systems, Germany
The Power of Feedback – in a Cyber-Physical World
Feedback allows systems to seamlessly and instantaneously adapt their behavior to their environment and is thereby the fundamental principle of life and technology; it lets animals breathe, it stabilizes the climate, it allows airplanes to fly, and the energy grid to operate. During the last century, control technology excelled at using this power of feedback to engineer extremely stable, robust, and reliable technological systems.
With the ubiquity of computing devices in modern technological systems, feedback loops become cyber-physical; the laws of physics governing technological, social or biological processes interact with (cyber) computing systems in a highly nontrivial manner, pushing towards higher and higher levels of autonomy and self-regulation. While reliability of these systems remains of utmost importance, a fundamental understanding of cyber-physical feedback loops for large-scale CPS is lacking far behind.
In this talk I will discuss how a control-inspired view on formal methods for reliable software design enables us to utilize the power of feedback for robust and reliable self-adaptation in cyber-physical system design.
Maurício Aniche, Delft University of Technology - Adyen, the Netherlands
From industry to academia and back again: what did I learn?
Software engineering is a fascinating field with endless opportunities in both industry and academia. However, these two worlds are vastly different, and their interests are not always aligned.
As someone who has experienced both, I will give a three-part keynote. First, I'll discuss how big companies make engineering decisions, which can help researchers in applied fields.
Secondly, I'll talk about what I would do differently if I returned to being a full-time researcher. As someone who has stepped away from academia and back, I can attest to the importance of taking a break to recognize where mistakes are being made.
Finally, I will focus on software engineering education. Researchers in the NL are required not only to do ground-breaking research, but also to educate the future generations of software engineers. Society needs engineers more than ever, and what we do in the classroom has a strong impact in the productivity of these engineers.
Bin Lin, Radboud University, the Netherlands
Refactoring Detection and Impact Analysis: Promises, Pitfalls, and Opportunities
Refactoring, the process of improving the internal structure of a software system without changing its external behavior, has received significant attention by the software engineering research community. Understanding how refactoring is applied in software projects can help us gain insights into software evolution and learn good software design practices. Over the past two decades, we have seen several tools being developed to detect refactoring operations. Moreover, many studies have been conducted to understand how refactoring really impacts the non-functional requirements of software systems, such as software maintainability and performance.
In this talk, I will introduce the state-of-the-art approaches for refactoring detection and present several noteworthy empirical studies conducted using these approaches. Meanwhile, I will talk about the limitations of these approaches and the potential biases they might introduce. Finally, I will highlight some future directions for research in this domain.
Kate Labunets, Utrecht University, the Netherlands
Securing Digital Systems: The Role of Human Factors and Usable Security
The software engineering community plays a crucial role in developing secure software and ensuring that digital systems are protected from cyber threats. As we increasingly rely on technology, software engineering professionals need to understand the role of human factors in cyber risk management.
Cyberspace has become an essential part of our life and economy. The digital economy drives innovation and organisational growth and provides vast opportunities to companies and society. However, it also creates new attack possibilities. Information systems are an attractive target for cybercriminals. It provides a rich source of valuable information that can be used for malicious purposes. Many attackers exploit behavioural techniques (like heuristics, biases, and nudges) to conduct social engineering, phishing and similar attacks. To address these problems, we need to take human factors in cyber risk management seriously and match security designs with users' main goals to make it work.
In this talk, I will provide an overview of the critical challenges for cybersecurity professionals and what role human factors play in this problem. I will also share some recent research initiatives focusing on this matter and providing additional insights.
Fernanda Madeiral, Vrije Universiteit Amsterdam, the Netherlands
Understanding code understandability factors: what do we know?
Program comprehension is well-known as an essential but time-consuming task in software development. There are many theories, approaches, and tools to assist developers make sense of a program and its functionalities. However, there is no comprehensive understanding of fine-grained factors that can impact program legibility and readability and, therefore, comprehension. Understanding these factors is important to assist developers in writing better code, which happens before the need of understanding such a code.
In this talk, I will present what we know so far in terms of those fine-grained factors based on the literature and practice. From the literature, I will present a review of human-centric experimental studies that compared alternative ways of writing code in terms of understanding. From the practice, I will present an investigation of code reviews and the respective code changes performed by developers on GitHub to improve code understanding. Finally, I will discuss possible directions and challenges towards building comprehensive coding guides or developing linters to help developers write more understandable code.