1 Language-Based Technology, Department of Informatics and Mathematical Modeling, Technical University of Denmark2 Department of Informatics and Mathematical Modeling, Technical University of Denmark3 Department of Applied Mathematics and Computer Science, Technical University of Denmark
Product configuration systems play an important role in the development of Mass Customisation, allowing the companies to reduce their costs while offering highly customised products. Such systems are often based on a configuration model, representing the product knowledge necessary to perform the configuration task. Several challenges arise when dealing with product configuration. One of those issues concerns how to model a configurable product family, i.e. how to represent the dierent types of conguration knowledge and their interactions. Another challenge is to provide adequate formalisms and efficient algorithms to solve the dependencies of the models at runtime. In this dissertation, we present a constraint-based framework for configuration. The design of this framework is partly based on a study of product configuration requirements as well as a comparison of several general modelling languages. We then develop ProCoLa, a configuration-specific modelling language based on a conceptual framework that synthesizes, unies and extends several approaches to modelling configuration in different design disciplines, e.g. physical products, software or services. A rigorous formalisation of the ProCoLa language is given and used to verify and analyse the configuration models. Another goal of this dissertation is to describe the semantics of ProCoLa by providing a translation to a Constraint Satisfaction Problem (CSP) representation. For that purpose, several CSP formalisms are discussed and a new algorithm DnSTR is developed in order to solve the dynamic addition and retraction of table constraints at runtime. Finally, we present and evaluate a prototype implementation of ProCoLa and the configuration framework, including the integration in a development environment, tool support and interaction with UML, databases and spreadsheet applications.