Continuous Integration in Component-Based Embedded Software Development: Problems and Causes - Gautsson, Ívar; Hafsteinsdóttir, Thórhildur (My University, 2017)
Background: Continuous integration is a widely used practice in which software developers are expected to do frequent changes to a common code base. Potential integration issues can therefore be identified early on and fixed quickly. However, adopting continuous integration may sometimes be difficult, e.g. when developing embedded software, since specialized hardware is needed to run and test the software. Aim: The goal of this study is to assess what problems come with the use of continuous integration in the context of component-based embedded software development together with identifying the causes for those problems. The continuous integration system being used for the development of an automotive infotainment head unit software system is analyzed, and the main problems and their causes are then identified. Method: The aforementioned continuous integration system is modeled using the Cinders framework to gain an understanding of the system. Interviews with seven employees working on the project reveal what problems they are facing with regards to continuous integration. Ishikawa diagrams are used to show the main problems and some of their causes. Results: Four main problems associated with using continuous integration in the development of component-based embedded software are identified: late discovery of defects, the overall integration process takes too much time, the system build breaks too often and interrupted development flow. The causes for these problems are also identified. Conclusion: This study reveals some of the continuous integration related problems in the development of a component-based embedded software project. The results might not be relevant to all projects using continuous integration as some of the results are specific to component-based and/or embedded software development. Only one software project was under study and the results might therefore not be generalizable.
Keywords: Data- och informationsvetenskap; Computer and Information Science