In industrial embedded software, are some compilation errors easier to localize and fix than others?

Han Fu,Sigrid Eldh,Kristian Wiklund,Andreas Ermedahl,Philipp Haller,Cyrille Artho
2024-04-23
Abstract:Industrial embedded systems often require specialized hardware. However, software engineers have access to such domain-specific hardware only at the continuous integration (CI) stage and have to use simulated hardware otherwise. This results in a higher proportion of compilation errors at the CI stage than in other types of systems, warranting a deeper study.
Software Engineering
What problem does this paper attempt to address?
This article primarily discusses whether certain compilation errors in industrial embedded software are easier to locate and fix than other errors. The research background is that in the environment of hardware and software co-development, software engineers often only have access to dedicated hardware in the integration phase (CI), while using simulated hardware in other phases, which leads to a higher proportion of compilation errors in the CI phase. The researchers created a CI diagnostic solution called "Shadow Job", analyzed over 40,000 build instances, categorized compilation errors into 14 types, and found that the top 5 common types accounted for 89% of all compilation errors. They also analyzed the time, scale, and distance it took to resolve each error type to determine the difficulty of locating and fixing different types of compilation errors. The research results indicate that resolution time, scale, and distance are independent of each other, providing insights into the manpower required to fix the most common industrial compilation errors. In addition, the research also identifies promising research directions for fault localization in the future. The contribution of the paper lies in the in-depth analysis of compilation errors, providing a basis for developing automated solutions, including measurements in terms of time and space, such as resolution time, code modification scope, and fix distance. These measurements reveal that longer resolution time for frequent error types does not necessarily mean a larger resolution scale. Through this study, the authors aim to improve fault localization and program fixing, especially in this unique setting, in order to optimize the process.