Understanding, Measuring, and Evaluating Maintainability of Automotive Software
Abstract: Context: The importance of software maintainability is well-addressed by software engineering research, in general. Particularly for object-oriented and open-source software, measurements as a means to represent maintainability are well-established. Nevertheless, there is a lack of a similar understanding for software maintainability of executable models, which are widely used in the automotive industry, predominantly, using Simulink. Maintainability for automotive software is the main setting of this thesis. Software growth and complexity which are concepts related to maintainability are also investigated. Objective: In this thesis, we aim to investigate maintainability for model-based software in the automotive domain. We explore the aspects it consists of, elicit maintainability measurements, and assess their applicability in practice. Additionally, we investigate two approaches to evaluate existing measurement data. First, we show how outliers with a significant impact on software quality can be identified in measurement data. Second, regarding software growth in the context of Simulink models, we show which predictions are relevant to practitioners, how these can be reliably conducted, and which environmental factors software growth is affected by. Lastly, in this thesis, we aim to present a practical implementation of software quality-focused design and evaluation of an automotive software architecture. Method: As Simulink models are widely used in the automotive industry, we always work in close collaboration with practitioners from industry. Hence, the majority of the work presented in this thesis has been performed in the form of case studies within the automotive industry in Sweden and Germany. In addition, we always associate findings from the industry with current research using literature. We use multiple qualitative and quantitative research methods. This includes literature reviews, interviews and workshops with practitioners in industry, surveys, and software measurement with consecutive data analysis and hypothesis testing. Results: In this thesis, we present a categorized list of aspects related to the maintainability of Simulink models, as well as a list of measures for the maintainability of Simulink models ranked by practitioners from industry. We provide evidence that simple size measures can be more applicable maintainability measures in practice than more complex measures. We present an approach to detect impactful outliers in measurement data. Furthermore, concerning software growth, we list environmental factors affecting software growth measurement and prediction. We further provide a collection of practitioners' expectations towards growth predictions and rank prediction approaches for growth measurements by their applicability in industry. Lastly, we present an approach to the design and evaluate a software architecture in the automotive industry. Conclusion: With these results, we provide a taxonomy of maintainability for Simulink models and respective measurements. Together with the methods for data analysis, we move a step towards a common understanding of maintainability for Simulink models which is presently missing. Next to that, we present approaches for maintainability measurement and analysis applicable in practical work environments. Thereby, we facilitate the application of rigorous measurements and analysis in the domain of automotive software.
This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.