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. |