Introduction
As part of the research carried out by IBM Haifa Research Lab, we are creating a model-driven framework for the development lifecycle of software and systems product lines. Our goal is to come up with a well-defined methodology and a set of tools that supports end-to-end software and systems product line development.
Embedded software is becoming increasingly large and complex. Often, products are developed for the international market and their software must be adapted to different legal or cultural environments and different languages. In addition, manufacturers usually develop software that supports a variety of physical devices, such as different mobile phones models or different printer models, etc. As a result, manufacturers need to reuse more of the software they produce. Techniques such as software product line engineering can help achieve this goal. These techniques relate to engineering methods that create a portfolio of similar software systems from a shared set of software assets.
While companies target the needs of their customers by creating a product line, today's development tools tend to focus on individual products. Thus, developing  software and systems product line using current tools becomes extremely complex. There is a need for a product line modeling framework that supports the full product line development lifecycle and enables teams to manage variability through all lifecycle phases. The framework should provide traceability among the lifecycle phases and also among the variability choices made in these phases.
According to Pohl et al [1], product line engineering consists of two separate processes of development: 1) domain engineering and 2) application engineering (see figure below, which is based on [1]). Domain engineering focuses on defining the overall architecture of a product line and implementing a set of core subsystems - usually called a platform - that can be reused in many different products within the product line. Application engineering focuses on developing a single product for a particular purpose. It reuses the assets from the platform to expedite the process of product development. Only those assets necessary for the development of a particular product are assembled.
Feature modeling is a useful technique for capturing the product line variability. A feature model captures all possible features of a product line and defines semantic relationships between these features. It allows the setting of dependencies between features to eliminate illegal product configurations. A feature model controls the product line development lifecycle variability as a separate model allowing the definition of variability in the product line requirements, architecture, implementation and testing.
In our work, we are creating a model-driven framework for the development lifecycle of software and systems product lines. Our goal is to come up with a well-defined methodology and a set of tools that supports end-to-end product line development.
Different lifecycle phases are controlled by feature models of different granularity. For example, a requirements feature model is less detailed than a design feature model. Also, different types of users require different degrees of detail depending on their perspective (e.g., customer - small degree of details, sales - middle degree of details, development - maximum degree of details). In addition, non-functional considerations, such as performance or cost trade-off should be taken into account. Hierarchy and traceability among the above different perspectives is essential to maintain.
Our work focuses on these issues and suggests an end-to-end software and systems product line development environment, which integrates various development tools, such as requirement management, design, development, and testing tools.
Projects
- Consumer Electronics Development Environment (COMPETENCE)
- Supply Chain Development Environment (MoDSoC)
[1] K. Pohl, G. B?ckle, and F. van der Linden, Software Product Line Engineering: Foundations, Principles, and Techniques, Springer, Berlin Heidelberg New York, August 2005.
