Achieving quality in customer-configurable products
Customers of products that include or are determined by software nowadays expect the product to be individually configurable. At the same time high quality and short delivery times are expected. As a consequence the producer of the software must be able to develop systems that can be easily configured according to the customer's needs in such a way that each individually configured system satisfies all quality requirements. Especially in the case of high numbers of possible configurations it is obvious that it is not feasible to construct all system configurations and check the properties of each of them. Rather, there must be means to assure quality generically, that means, once and for all configurations at the same time. The chapter considers software product line engineering as the base technology how to construct configurable systems and adds generic quality assurance means to this process. The mechanism can be understood as a general pattern how to carry over quality assurance techniques to configurable systems. For two concrete techniques this is done in the chapter: model-based testing as technique for the assurance of functional quality and model-based deployment as a technique for the assurance of real-time properties like responsiveness, availability, and reliability. The techniques are demonstrated at the example of a configurable flight management system as used in modern airplanes.