A model-driven component based software product line framework to facilitate software reuse
Consumer electronics (CE) software is becoming increasingly large and complex. As a result, consumer electronics manufacturers want to reuse more of the software they produce. To achieve this goal, manufacturers are adopting software engineering methods such as component-based development and product line architectures. These methods are enabled by architecture description languages (ADLs), which describe software systems as compositions of configurable components, and by software product lines, which relates to engineering techniques for creating a portfolio of similar software systems from a shared set of software assets.
The goal of the COMPETENCE project is to create a development environment for CE product lines, based on a standard modeling framework (UML), and with tooling to automate transformations from models to product artifacts and build scripts. The solution is based on the Rational toolset (see picture below). Our approach enables the model driven development of new components. It incorporates product line enablement in the composition of components and it provides for automated production of many of the product artifacts, including build scripts and production level code. It will also facilitate the move from legacy components and methodologies to model driven development with its accompanying benefits of higher abstraction and increased automation.
The problems addressed by this project are not unique to the CE industry. Similar arguments apply to other industries, like SoC, automotive, telco, and others. The modeling framework will be open and extensible to other industry specific languages. We will also produce a set of principles and guidelines for the creation of similar development environments in other industries, and for generic product lifecycle management engagements.

