Using software product line engineering to construct products with different certification levels - An Industrial Action Research Study - Evertsson, Oscar; Reitmaier, Rebecka (My University, 2019)
Background: Software product line engineering (SPLE) is used to derive multiple products from a common platform and has many industry examples of its benefits such as reduced development cost and decreased time to market. However, there is no research to our knowledge on how well it functions with agile development when there is a need to create both safety-critical products and non safety-critical products. The regulatory difference between these two is that the safety-critical products require certification to be sold. Aim: This thesis investigates which SPLE variability approaches can be used to differentiate code associated to a safety-critical and a non safety-critical product. The research was done at the company 1928 Diagnostics, with the goal of finding the most suitable variability approach for the company and how this might affect their business, architecture, process and organization. Method: We investigate variability approaches by looking at current SPLE literature and by using an action research methodology. The data is collected through interviews, focus groups, a mockup of a chosen variability approach and discussions at the company. Results: We identify five variability approaches that can support differentiation: design patterns, components, preprocessor, parameter-based and version control. We found that the most suitable variability approach for 1928 Diagnostics was components. From the evaluation of the mockup we found that potential effects primarily would be related to the architecture and the assistance it could provide to the process later. Finally, we present a methodology for how to derive the most suitable variability approach.
Keywords: Software Product Line; Agile Development; Safety-critical system; Development Process; CE-marked products; Certification; Medical Device; Software Engineering