Skip to main content

Table 1 PLA recovery guideline

From: Product line architecture recovery with outlier filtering in software families: the Apo-Games case study

PLA recovery guideline

Intent: recover the PLA from a set of variants

Problem

It is not uncommon for software companies to adopt SPL using a clown-and-own strategy, by copying, adding, or removing functions from existing products [29]. This approach leads to ad hoc product portfolios of multiple yet similar variants [30]. With the growth of products’ portfolio, the management of variability and reuse becomes more complex [31]. A PLA for the SPL could be recovered from its variants and be used to tame complexity and drive SPL evolution.

However, SAR for SPL requires additional effort to identify the variability spread on several implemented variants and represent them at the architectural level. In this context, we may ask:

How do we recover a software architecture that unveils variability and commonality for such a portfolio of clone-and-own related variants?

This problem is difficult because:

• Variants may be large and complex.

• Each cloned variant may have evolved independently from others occasionally becoming an outlier.

Yet, solving this problem is feasible because:

• There are many SAR techniques for single systems.

• You have the source code of a set of variants.

• Good design practices promote the implementation of well-modularized units.

Solution

Application of the PLA recovery approach in set of variants with the support of the PLAR tool [24].

Preconditions

1. Set of variants’ source code developed using clone-and-own strategy available.

Steps

1. Get the variants’ source code.

2. Select an extraction tool to recover the variants’ structural information.

3. Select an adapter to verify the elements names eliminating information specific to a variant.

4. Perform the variability identification using the PLAR tool support to automate the process.

5. Analyze the collected metrics, report, and visualization of the recovered PLA.

6. Run the threshold analysis according to the specified threshold value.

7. [optional]—Go back to step 5 until you reach the desired metric values.

Post conditions

1. Set of reports, metrics, design structure matrices (DSMs), development views, and UML diagrams from the recovered PLAs according to threshold values.

Hints for improving the PLA recovery

• Use the report to identify the elements’ frequency.

• Perform threshold analysis according to the elements’ frequency.

Trade-offs

• The higher the threshold value, the higher will be the elimination of variable elements.