Regarding the composition of variants with new configurations, our approach can combine different feature revisions with 99% precision and recall on average. The extracted traces allowed composing variants with 99-100% precision, as well as with 97-99% average recall. To assess the correctness of our approach, we compared the artifacts of input variants with the artifacts from the corresponding composed variants based on the implementation of the extracted features. We evaluated ECSEST using feature revisions and variants from six highly configurable open source systems. Our work addresses this challenge with ECSEST (Extraction and Composition for Systems Evolving in Space and Time), an approach for locating feature revisions and composing variants with different feature revisions.
Inevitably, variants evolve orthogonally along these two dimensions, resulting in challenges for software maintenance. Software companies further must cope with variability in time, when updating system variants by revising existing software features. Thus, they must cope with variability in space. Software companies commonly develop and maintain variants of systems, with different feature combinations for different customers. As a running example to illustrate the design of an Adapter, we will consider the following scenario: A graphic artist wants to adopt an SPL from image variants that were ini- tially created following the copy-paste-modify reuse paradigm.
Activity 4: Reusable assets construction: Defining how to use Blocks (set of Elements) for Reusable Assets construction. Activity 3: Structural constraints definition: Identifying Structural Dependencies for the Elements. Activity 2: Similarity metric definition: Defining a Similarity metric between any pair of Elements. This will define the granularity of the Elements in a given artefact type. Designing an Adapter for a given Artefact type requires the following activities: Activity 1: Element identification: Identifying the Elements that compose an Artefact. More information about Adapters are presented in section 4.1.
Source Code can be adapted to Abstract Syntax Tree Elements which capture the modular structure of source code, Text file can be adapted to Line Elements, and EMF Models can be adapted to Meta-Object Facility Elements such as Class, Attribute and References. We can see how an Adapter allows two operations, (1) to adapt the artefact to Elements and (2) to take Elements as input to construct a reusable asset for this artefact type. Figure 1 shows examples of Adapters dealing with di ↵ erent artefact types. An Adapter is responsible for decomposing each artefact type into the Elements that constitute it, and for defining how a set of Elements should be constructed to create a reusable asset. These Adapters are implemented as the main components of the framework. Because our approach aims at supporting di ↵ erent types of artefacts, and to allow extensibility, we propose to rely on Adapters for the di ↵ erent artefact types. Principle (3) on the other hand promises to enable the construction of the reusable assets based on the Elements found in existing artefacts. Principles (1) and (2) make it possible to reason on a set of software artefacts for identifying commonalities and vari- abilities, which in turn will be exploited in feature identification and location processes. Brass - a mixture of copper and zinc - an example of an alloy, a metal mixture.Artefact types examples and Elements representation creation through the adapters (3) Given a set of Elements recovered from existing artefacts, a new artefact, or at least a part of it (which would be a reusable asset), can be constructed.
Ink - a mixture of colored dyes that can be separated using chromatography.
Air normally also contains water vapor as part of the mixture.)