Configuration wizards and software product lines
Jiménez Pérez, Guillermo
MetadataShow full item record
The idea of software product lines is suggested to reduce both development time and cost. In search of scalable approaches for deploying large-scale software product lines, researchers and practitioners have been conducting work in several largely intertwined fields. Two áreas are component-based development and product-line architectures whose goal is that application families can be produced by integrating components as prescribed by the architecture. A third field is generator technology, whose aim is the automatic production of software from a (preferably) formal specification. A fourth technology is expert systems, developed in the artificial intelligence field, which demonstrated that when knowledge in restricted domains is well-understood, it can be conveniently structured, stored, and manipulated thus problems can be solved by following different reasoning chains appropriate to each particular problem, and explanations displayed to justify the resulting solution. This dissertation shows that it is possible to define an approach that combines component-based development, product-line architectures, and generativo technologies to construct expert tools for automatic software production called configuration wizards. A configuration wizard is a software assistant incorporating domain-specific topological knowledge (i.e. a product-line architecture) and a library of parameterized components which can be adapted to fit in different compositions, realizing members of a system family. Configuration wizards have the additional advantage that with appropriate modularization, their evolution can be automatized by describing them as metamodels. These meta-models are processed by a meta-generator which produces specific configuration wizards. Our work has several contributions in the área of product lines, as is showing that relatively simple generator-based tools are enough to produce application families, the identification of a general approach and minimal extensions to programming languages necessary to implement configuration wizards. Additionally, we show how the approach can be extended to produce configuration wizards from meta-specifications. This last idea is used to gracefully evolve configuration wizards to incorpórate new features or exclude desired features.