EN FR
EN FR


Section: New Results

Empirical Studies in Software Product Line Engineering

Participant : Nicolas Anquetil.

Software Product Line Engineering (SPLE) is a new developpement paradigm that promises to offer faster develppement, with better quality. The idea is to develop a generic application (the Software Product Line) with pre-defined variation points. From this, new applications are derived from the generic application and the options are chosen for the possible variation points. Because it is still a new paradigm, Software Product Line developement is still an active research domain where empirical research is useful to check the validity of the results.

These publications are the results of an earlier research project to which N. Anquetil participated.

Managing information flow in the SPL development processes. Traceability is a quality attribute in software engineering that establishes the ability to describe and follow the life of a requirement in both the forward and backward directions (i.e. from its origins throughout its specification, implementation, deployment, use and maintenance, and vice-versa). The IEEE Standard Glossary of Software Engineering Terminology defines traceability as “the degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or master-subordinate relationship to one another”. According to (Palmer, 1997) “traceability gives essential assistance in understanding the relationships that exist within and across software requirements, design, and implementation”. Thus, trace relationships help in identifying the origin and rationale for artefacts generated during development lifecycle and the links between these artefacts. Identification of sources helps understanding requirements evolution and validating implementation of stakeholders' requirements. The main advantages of traceability are: (i) to relate software artefacts and design decisions taken during the software development cycle; (ii) to give feedback to architects and designers about the current state of the development, allowing them to reconsider alternative design decisions, and to track and understand bugs; and (iii) to ease communication between stakeholders. [26]

Empirical research in software product line engineering. Empirical evaluation has for many years been utilized to validate theories in other science disciplines. One of the first well-known reported examples of empirical evaluation occurred when Galileo wanted to prove that the rate of descent of objects was independent of their mass. This would disprove a theory put forward by Aristotle that the rate of descent is directly proportional to their weight. To prove his theory Galileo dropped two balls made from the same material but different masses from the top of the Tower of Pisa. When the experiment was performed Galileo's theory was proved correct through the empirical evidence collected. What this story demonstrates is the importance of empirical validation to verify or disprove theories and hypotheses. The purpose of this publication [27] is to emphasize the importance and difficulties of empirical evaluation in the domain of SPLE.