Managing Product-line Architectures


Often the evolution of a business critical software system leads to a product-line architecture (PLA). A PLA is an architecture for a family of software products sharing similar structure and functionality. Usually a PLA consists of a product platform and a set of components, to be reused in several independently distributed products. A PLA aims at flexibility, trying to provide support for individual products without losing its generality.

A PLA has many benefits. It promotes software reuse by allowing several products to share both code and design. This in turn leads to shortened time-to-market, without sacrificing the quality of the products. In fact, the quality of the products is improved as the platform matures. Product development process becomes less risky and more systematic and predictable: the process (together with the applied methods and tools) becomes reusable, too. PLAs often allow fast prototyping, making it possible to develop very quickly high-quality prototypes, to be evaluated by customers. Product development personnel acquire a company-specific software culture, making it easy to exchange personnel from one product project to another.

However, the design of a PLA is hard. Often a PLA is a result of a long, untraceable evolution rather than the outcome of a systematic, conscious design process. In such a case the platform becomes easily corrupted and poorly maintainable, as the architectural principles are not clearly understood. On the other hand, there is relatively little knowledge about the design process for a PLA. Besides certain general guidelines for PLA design, methods have been proposed to assess software architectures from the point of view of flexibility.

The general purpose of the project is to increase the understanding of the significance of software architectures as a means to rationalize software production. In particular, the project studies product-line architectures from an industrial perspective, providing practically motivated methodological support for PLAs. A central aim of the project is to transfer knowledge about real, practical PLAs from industry to academia, and knowledge about existing methodological support for PLAs from academia to the industry. To achieve its aims, the project has the following subgoals:

  • Mapping out, improving and applying existing methods for domain analysis and PLA feasibility study (including cost estimation techniques)
  • Mapping out, improving and applying existing methods for PLA design and documentation
  • Mapping out, improving and applying existing methods for PLA assessment
  • Mapping out, improving and applying existing methods for PLA reuse

The work will be carried out in close co-operation with the participating industrial partners. Each industrial partner provides a case study consisting of either an existing PLA or a requirement specification for a PLA. In the former case the project produces an evaluation of the PLA, in the latter case the project produces a design rationale according to the requirements.

The project is roughly divided into three phases. In the first phase, existing methodological support for PLAs is surveyed and presented in a systematic way. In the second phase, case studies given by industrial partners are elaborated using the found methods. In the third phase, the results and experiences are synthesized into a PLA handbook.

ARCHIMEDES is a 3-year project (2001-2004) funded by TEKES (National Technology Agency) and several Finnish industrial partners (Ionific, Ingenix, Profit and Almare).