@article{14051, author = {Hong Lu and Tao Yue and Shaukat Ali and Li Zhang}, title = {Model-based Incremental Conformance Checking to Enable Interactive Product Configuration}, abstract = {Context: Model-based product line engineering (PLE) is a paradigm that can enable automated product configuration of large- scale software systems, in which models are used as an abstract specification of commonalities and variabilities of products of a product line. Objective: In the context of PLE, providing immediate feedback on the correctness of a manual configuration step to users has a practical impact on whether a configuration process with tool support can be successfully adopted in practice. Method: In an existing work, an UML-based variability modeling methodology named as SimPL and an interactive configuration process was proposed. Based on the existing work, we propose an automated, incremental and efficient conformance checking approach to ensure that the manual configuration of a variation point conforms to a set of pre-defined conformance rules specified in the Object Constraint Language (OCL). The proposed approach, named as Zen-CC, has been implemented as an integrated part of our product configuration and derivation tool: Zen-Configurator. Results: The performance and scalability of Zen-CC have been evaluated with a real-world case study. Results show that Zen- CC significantly outperformed two baseline engines in terms of performance. Besides, the performance of Zen-CC remains stable during the configuration of all the 10 products of the product line and its efficiency also remains un-impacted even with the growing product complexity, which is not the case for both of the baseline engines. Conclusion: The results suggest that Zen-CC performs practically well and is much more scalable than the two baseline engines and is scalable for configuring products with a larger number of variation points.}, year = {2016}, journal = {Information and Software Technology}, volume = {72}, pages = {68-89}, month = {04/2016}, publisher = {Elsevier}, }