Understanding Technical Debt and Assumption-Related Challenges in the Domain of Cyber-Physical Systems

Abstract: In today's world software is contributing a substantial part of the new functionalities and innovations of the automotive industry. So the size and the complexity of the software is dramatically increasing with time, which comes with additional challenges, e.g., implicit assumptions or technical debt. The problems of assumptions have been identified as one of the key reasons to software system projects and catastrophic system failures. On the other hand, unreasonable accumulation of technical debt can seriously reduce the reusability and maintainability of the software.This thesis elaborates the idea of unveiling and understanding technical debt and challenges of assumptions for software by applying model-driven engineering (MDE) on the example of a self-driving car. First, we explore the challenges of assumptions in various areas of software and system development and show how assumptions are related to other knowledge artifacts. Then we focus on reporting advantages and disadvantages of different approaches to capture and automatically check architectural assumptions.Incorporating formal methods in a rigorous assumption management tool supports various aspects of assumptions such as traceability. From our experience with formalizing assumptions, such an approach toward managing assumptions needs to combine several formal methods/languages. Developing and using a dedicated tool for assumption management is possible but the practicality of using such a tool in terms of time, budget, and manpower needs to be researched.Considering the heavy weight of a dedicated rigorous formal approach, a practical step toward managing assumptions is to better incorporate the capabilities of the tools that are already being used in a project. Using existing capabilities is a light-weight approach because it does not cost extra money to procure new tools, train developers to use the new tools, and adjust the development process to incorporate it. To check the feasibility of such a light-weight assumption management approach, we perform a study on the development of a self-driving miniature vehicle. We particularly check whether MDE tools can be leveraged to capture assumptions related to the sensor management. We also explain how capturing assumptions reduces technical debt related to knowledge distribution and documentation.From our experience with the self-driving miniature vehicle development, we see that MDE reduces knowledge debt through successfully capturing structural architectural assumptions and it reduces code debt and environmental debt through automated code generation. Thus, MDE is able to leverage the challenges of assumptions to the extent of capturing and checking them automatically, hence, reducing knowledge debt without necessarily using a dedicated assumptions management tool. Our contributions include realizing a light-weight assumption management approach through MDE and our preliminary results show that legacy or 3rd-party code has influence in the development of technical debt.