Software Product Lines
Competency Leader
A Software Product Line is a set of software products that share a common, managed set of features that are developed from a common set of core assets in a prescribed way. An example of such a product line would be a set of engine management systems. Each system would be able to monitor and control the ignition and fuelling requirements of an internal combustion engine, but one variant would be created for four cylinder engines, another for six cylinders and yet another for eight cylinders. The product line can then be extended to cope with ten or twelve cylinders in future.
Software Product Line Engineering involves two concerted development processes: Domain Engineering and Application Engineering. In Domain Engineering the scope of the product line is defined and aligned to the business goals of the organisation. Common development artefacts that can be shared among the products are identified and points of variation are analysed. This information is used to design a reference architecture and implement it based on suitable and tested components. In Application Engineering the reference architecture and the pre-developed components together with their variation points are exploited to derive and compose customer-specific products. Domain and Application Engineering are supported and coordinated by Technical and Organisational Management.
Why are Software Product Lines Important?
Software Product Line Engineering is particularly beneficial in circumstances where several related software products are being developed - a family of products as it were. It comprises activities to identify all areas that are common to every product and areas where there are variations between the family members. These activities provide a capability for strategic reuse and mass customisation.
Software Product Lines are extensively used in the automotive, telecommunications, aerospace and other industry sectors, where the number of product variants can run into thousands. Being able to derive and customise a particular product of the product line in a straightforward and efficient manner allows the achievement of major production economies.
What are the Problem Areas?
The size of commercial software product lines is usually large and could easily incorporate thousands of variation points and configuration parameters. This makes systematic product derivation extremely difficult. At present much of the work on product derivation is carried out mostly manually, leading to an error prone and time consuming process. Further, current research in product derivation is limited to problems in small-sized product lines.
It is also important that the architecture derived for a product, the product architecture, conforms to the product line architecture and that the architecture of the implemented product conforms to the product architecture and to the product line architecture as violations of the architecture may have a major impact on the product not meeting its functional or non-functional (quality) requirements.
News
Posters
| Researcher | Title |
|---|---|
| Andreas Pleuss | Modelling the Evolution of Software Product Lines |






