Monday, December 14, 2009

Traceability in Software Product Lines

The quality of any product line depends largely on the importance attached to the development process and its evolution. A good software development process takes place in an integrated environment that manages the process of product development as well as its evolution. This is possible only if the development process sends back information relating to its behavior to the process management and the process management is able to use this information to control the evolution process. Therefore, in order for this to take place, a well managed traceability mechanisms are required. These mechanisms are based on the dependency relationships between the different artifacts of the product line development process and its environment. To evolve a product line development process, it is necessary to analyze the factors that contribute to the evolution.

First of all, in order to design the primitive mechanisms to support the evolution, Samuel A. Ajila and Ali B. Kaba [1] suggest that we need to be able to answer the folIowing questions:

  1. What are the different types of changes that can occur in a software product line process?

  2. How can these changes be classified?

  3. Based on the identified changes, is it possible to provide a (reference) model of change that will define the different change management processes?

  4. Can the model of change be used to capture the interactions between the different artifacts in the product line and can it be used to identify the basic mechanisms to support the evolution process?

Moreover, Samuel A. Ajila and Ali B. Kaba [1] show the dependency relationships between the product line (PL) artifacts. The relationships between the artifacts of a PL life cycle phase (e.g. product line phase) are divided into two: intra-relationships and inter-relationships. These relationships allow for two levels of horizontal traceability while the relationships between the phases allow for vertical traceability. Each product in the product line has a three-dimensional plane consisting of a set of intra-relationships, inter-relationships, and vertical relationships.

Therefore, we can see that the task of maintaining the traceability between artifacts is a challenge.

Traceability relations can be used to mitigate the difficulties associated with product line engineering. More specifically, traceability relations can assist with the:

  1. Identification of common and variable functionalities in product members;

  2. Reduction of inconsistencies between product members;

  3. Reuse of core assets that are available in a product line system;

  4. Maintenance of historical information of the development process;

  5. Establishment of relationships between product line and product members specification documents.

However, the majority of the approaches concerning traceability for product line systems focus on traceability metamodels and do not provide ways of generating traceability relations automatically.

Recently, Waraporn Jirapanthong and Andrea Zismanhas[2] have been working in a rule-based approach to support automatic generation of traceability relations between feature-based object-oriented documents.

[1] Ajila, S.A.a, K.A. Using traceability mechanisms to support software product line evolution Memon A.M., Z. N. (ed.) Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, IRI-2004, 2004, pp. 157-162

[2] Jirapanthong, W. & Zisman, A. XTraQue: traceability for product line systems. Software and System Modeling, 2009, Vol. 8(1), pp. 117-144

No comments: