Starting a Software Product Line by Reengineering a Set of Existing Product Variants 2006-01-1238
Today’s vehicles integrate many diverse types of electronic control units, many of which can be found in every vehicle, such as in braking systems, engine control systems, or body control units. For every type of vehicle, however, individual variants (of each of these units) must be created to fulfill system requirements, which vary as to vehicle types, characteristics, wishes and strategy of vehicle manufacturers, or laws valid in different target markets. Nevertheless, variants of the same type of control unit share many common characteristics, as well as partially vary within a well-defined spectrum determined by a set of system parameters. In order to make system development more efficient, commonalities and predictable variability should be systematically exploited; software product line engineering, for example, is an approach that aims at such a systematic exploitation. The goal of product line engineering (high-level of reuse across products) is clear. Its implementation in practice, however, is a challenge in many domains and organizations.
This paper presents early software product line activities which have been performed during the initialization phase of the Fraunhofer PuLSE™ (Product Line Software and System Engineering) approach. The activities analyze an existing set of related control units and identify common and varying characteristics of these solutions delivered to customers in the past. Based on the results of the analysis, an action plan is derived for merging pieces of different, existing systems to form the basis of a future software product line.