This cluster focuses on the engineering of software systems, which are large, constantly changing, adaptive, and as a consequence, systems of socio-technical systems.  We address both software engineering principles and practices for smart systems (SE4AI) and design smart approaches to support the engineering of software (AI4SE).

Vision of the Cluster

Our vision is to pave way for continuous software engineering approaches that combine human experimentation, autonomous experimentation and data-driven behavior in an integral approach, including architecture, development processes and management perspectives.

Main Research Questions

The overall research questions relate to the integration of continuous experimentation and data-driven software engineering into the practice of large-scale software engineering. Which development, experimentation and data analysis methods are efficient and scalable? Which approaches give value to the end user? How to support bridging management and engineering of software?

Societal Impact and Areas of Application

Almost all Swedish companies depend on software; more that 30% of them develop their own software [Swedsoft report]; hence software engineering advancement is business critical for the majority if Swedish industry. We conduct empirical studies of industrial and societal practice, identify challenges and design improvements in terms of software management, engineering and technology and validate them in the real context. Thus, we generate both practical improvements and advance the research excellence front.

Key Challenges 

  • Self-reflective software architectures that support continuous deployment and facilitate automated experimentation
  • Development methods that support data-driven or evidence-based development, using data from systems in the field and the behavior of users of these systems for decision making
  • Techniques for data analytics to assess autonomous behavior, determine value of new features, and to support automated experimentation
  • The industrial challenge is predominantly one of scaling, both the engineering endeavor and the data collection and analysis practice

Industrial Partners 

Apptus

Skånetrafiken

Systemite (Industrial PhD student)

SystemVerification (Industrial PhD student)

Volvo Cars

Sony

Ericsson

Cluster Coordinators

Jan Bosch

Professor, Department of Computer Science and Engineering, Chalmers

Per Runeson

Professor, Department of Computer Science, Lund University

Research Projects

David Issa Mattos (PhD student, Chalmers), Jan Bosch (advisor, Chalmers University of Technology), Helena Holmström Olsson (co-advisor, Malmö University)

The project is concerned with self-adaptive architectures that inherently support automated experimentation and data-driven behavior. In the first phase, the project seeks to develop new architecture styles, patterns and solutions for self-adaptive architectures and systems that address the requirements including integral data collection and automated experimentation. In the second phase, we expand the project to focus on the development methods required to develop systems using self-adaptive architecture. During both phases, industrial validation is applied to ensure industrial relevance and scalability, which particularly include collaboration with Sony and Ericsson.

Rasmus Ros (PhD student, Lund University), Per Runeson (advisor, Lund University), Elizabeth Bjarnason (co-advisor, Lund University)

This subproject aims at exploring and advancing methods for operational data collection and analysis in the above described context of continuous deployment and experimentation. In current software engineering practices there are significant gaps between the users and the engineers, leading to suboptimal solutions. In order to bridge this gap, methods for continuous monitoring of system usage and experimentation with new and modified features has evolved. Current approaches are limited to reactive evaluation of minor variations of the software services. We aim to go beyond basic quantitative measurements of response, and explore options of qualitative analysis of user behavior, to allow proactive recommendations to be presented to the software engineers. In a first step, we survey in detail existing proposals, secondly we focus on the data collection and analysis from the architectures, mentioned above, and thirdly, integrate the recommendation system into the organic development environment.

Ricardo Diniz Caldas

Our research intentions lay on providing support to reasoning mechanisms that guide complex autonomous behavior in an end-to-end fashion, i.e. from specification to trustworthy runtime adaptation. Narrowing down our purposes into solving concrete problems, we have been exploring the domains of mission specification for multi-robots in dynamic scenarios, specification languages for simulation of multiple autonomous driving vehicles, and verification of adaptive systems concerning control theoretical properties. The complementary views assess distinct levels of the spectrum from specification to runtime operation and combined should provide degrees of freedom for adaptation of autonomous systems. In a nutshell, our goal is to provide a language with the ease of use for engineers of autonomous systems that operate in highly dynamic scenarios with guarantees of trustworthiness even during adaptation.

Adha Hrusto (industrial PhD student, System Verification, Lund University), Per Runeson (advisor, Lund University), Emelie Engström (co-advisor, Lund University), Magnus C Ohlsson (co-advisor, System Verification)

This project is concerned with continuous system testing and monitoring of system of systems (SoS) during the operational execution in a DevOps context. For systems composed of multiple layers of systems, an upgrade in a lower layer may trigger faults in applications built on top of it, and as the systems are complex, test environments do not capture all aspects of the complexity. Further, with continuous deployment of new releases, the time devoted to system testing tends to be reduced. Erroneous software – be it by coding, design or specification error – is thus at higher risk of slipping into operations. To mitigate this risk, we aim to explore an approach, where system of systems being continuously monitored, as a kind of continuous system testing.

As a case to explore the continuous system testing in, we study the development and operations of a ticketing system for public transportation (Skånetrafiken). The project aims to improve system operations and development by continuous monitoring and learning from run-time alerts. The main objectives are to identify sequences/clusters/absence of alerts that may provide information about system health/un-healthiness and to develop technology to analyze alerts inspired by machine learning for alarm handling.

Qunying Song (PhD student, Lund University), Per Runeson (advisor, Lund University), Emelie Engström (co-advisor, Lund University)

This project aims at exploring new approaches for continuous testing of autonomous systems. Though autonomous systems have received plethoric attention both in academia and industry in latter-day, testing towards these systems remains an unresolved area. In order to address this gap, new techniques and methods to monitor system behavior and testing of the dynamically changing features in unstructured environment must be invented. In a first step, we survey industry practitioners to understand the challenges and existing approaches for testing within autonomous domain, secondly we focus on improving testing of autonomous applications in specific contexts such as self-driving car, and thirdly, we integrate these solutions to form a holistic understanding and approach to improve overall testing of autonomous systems.

Teodor Fredriksson (PhD student, Chalmers University of Technology), Jan Bosch (advisor, Chalmers University of Technology), Helena Holmström-Olsson(co-advisor, Malmö University)

To train high-accuracy machine learning models we need large amounts of data, this is especially true for deep neural networks. The majority of machine learning algorithms are supervised. This means that we not only need huge amounts of data, but also labeled data. This a big problem for the industry. In this project we will study how we can perform labeling of data with as little manual work as possible. So far we have conducted a systematic literature review, a case study, and now we are working on a simulation study. In the systematic literature review we learned about machine learning techniques such as semi-supervised learning (SSL) and active learning (AL), tools that can help with labeling and learning with less data. The results gave us an overview of what SSL and AL algorithms are popular to use and what type of data they are used on. Our case study was performed with industry and we conducted interviews with several participants from two companies. After the study we found several challenges that data scientist face when labeling and we were able to plan mitigation strategies to mitigate these challenges. Our ongoing simulation study will provide an in-depth analysis of several different AL and SSL algorithms performed on many benchmark datasets. Finally, the algorithms will be evaluated in terms of accuracy, applicability and effort in terms of manual work.

Rebekka Wohlrab (industrial PhD student, Systemite AB, Chalmers), Patrizio Pellicione (advisor, Gothenburg University), Eric Knauss (co-advisor, Gothenburg University), Mats Larsson (Systemite AB)

Link to PhD Thesis

The ambition of this project is to address the challenge of coordination between multidisciplinary teams in large-scale agile organizations. When developing autonomous systems in practice, many practitioners from different disciplines are involved. To coordinate effectively, organizations need to identify what knowledge is required across team borders and how it can be managed over time. This subproject aims to improve how practitioners can manage knowledge for inter-team coordination in large-scale agile development. We focus especially on how knowledge can be made explicit in documents, models, and other artifacts that are evolved over time. We coined the concept of “living boundary objects” to manage knowledge for inter-team coordination. Living boundary objects are boundary objects that are traced to other artifacts, kept up to date, and serve for inter-team coordination. Our contributions help to establish knowledge management practices that are considered beneficial by practitioners and focus on the crucial aspects to align agile teams on. We suggest concepts and requirements for knowledge management tools that take the distinct role of living boundary objects into consideration and can be adjusted as organizations’ needs evolve.

Aleksander Fabijan (Affiliated PhD student Malmö University), Helena Holmström Olsson (advisor, Malmö University), Jan Bosch (Co-advisor, Chalmers University of Technology)

Link to PhD Thesis

Accurately learning what customers value is critical for the success of every company. Despite the extensive research on identifying customer preferences, only a handful of software companies succeed in becoming truly data-driven at scale. Benefiting from novel approaches such as experimentation in addition to the traditional feedback collection is challenging, yet tremendously impactful when performed correctly.

In this thesis, we explore how software companies evolve from data-collectors with ad-hoc benefits, to trustworthy data-driven decision makers at scale. We base our work on a 3.5-year longitudinal multiple-case study research with companies working in both embedded systems domain (e.g. engineering connected vehicles, surveillance systems, etc.) as well as in the online domain (e.g. developing search engines, mobile applications, etc.).

The contribution of this thesis is three-fold. First, we present how software companies use data to learn from customers. Second, we show how to adopt and evolve controlled experimentation to become more accurate in learning what customers value. Finally, we provide detailed guidelines that can be used by companies to improve their experimentation capabilities. With our work, we aim to empower software companies to be- come truly data-driven at scale through trustworthy experimentation. Ultimately this should lead to better software products and services.