Increasingly, software products are designed to include many variants, collec- tively constituting a software product line (SPL). In mass consumption prod- ucts, this software flexibility has become necessary in order to achieve the level of customisation required to meet the needs of an ever more demanding market (e.g. ERPs, telecommunication services, e-business, e-government services, open source software, etc).
CALiPro is focusing on the improvement of the Application Engineering phase, which is the phase during which a product is assembled and configured from intermediary reusable components. There is a lack of tool support in that phase confirmed by several companies that have engaged in such an approach.
The CALiPro project produces a set of innovative tools, services and methods to provide support for modelling and reasoning on SPL of industrial size. The tooling is also supporting reasoning on any product line. More precisely:
- definition and formalisation of a TVL2 supporting key industrial features like cardinalities and richer types;
- support of the configuration process through efficient queries and verifica- tion checks across definition, filtering, propagation, validation, and explana- tion operations;
- definition of a generic solver interface and integration of powerful SMT solver implementing the above verification checks, based on experience acquired in collaboration with the CSAIL lab of MIT;
- validation on several case studies including a very large industrial problem in the electrical engineering domain.
CALiPro contributes to the industrial adoption of product lines in the software domain but is not restricted to it as it mostly focuses on the design stage. It helps reducing the cost in engaging in a product line approach by providing faster return on investment through better and systematic reuse, faster time-to-market of prod- uct variants and more efficient quality control.