Guidelines - HestiaProject/PAxSPL GitHub Wiki

To suggest the addition of new techniques please fill up our form.

Introduction

The main goal of this section is to describe each technique which we recommended to apply during the Feature Search sub-process. Furthermore, we intend to help whoever is applying this process to choose the best combination of techniques for their needs.

SPL Concepts

How to choose a strategy?

According to (Assunção et al. 2017), the most used strategies when performing a re-engineering process for SPL are: Expert Driven, Static Analysis, Information Retrieval, Dynamic Analysis and Search-based. However, we decided to not include search-based and dynamic analysis because not many works make use of these techniques, also they are generally used as a supporting technique.

Based on the information analysed from the SMS performed by (Assunção et al. 2017), we have categorized a set of recommended techniques and created a feature model to represent them:

Feature Model of Techniques

Static Analysis

Static analysis is done by analyzing a program without its execution. Information analyzed may include structure, static artifacts and so on.

Recommended Situations

Static analysis techniques are recommended when analyzing source code. Furthermore, is recommended that the used code possesses low coupling and high cohesion. We also recommend to use static analysis techniques along side at least one information retrieval technique such as formal concept analysis.

Information Retrieval

This strategy collects and analyzes information in artifacts considering text structure, similarity,etc. Information retrieval techniques commonly use documents written in natural language.

Recommended Situations

Information retrieval techniques are generally used in requirements artifacts. However, they can also be used in source code, but to do that the both the code and the requirements must have meaningful names. We also recommend to use information retrieval techniques along side at least one static analysis technique such as clustering.

Support Techniques

These techniques are used along side information retrieval or static analysis techniques. Their goal is to improve the results of some techniques.

Recommended Situations

Support techniques may never be performed alone. Their use is recommended according to the other techniques selected, such as Formal Concept Analysis.

Feature Retrieval Techniques

Static Analysis Techniques

Information Retrieval Techniques

Support Techniques

SPL Scoping Concepts

SPL scoping concepts are applicable when analyzing the SPL viability and planning its development. Such concepts may also be applied to the re engineering strategy. As showed below concepts may be divided in Scoping Types (Domain, Asset and Product) and Supporting concepts. SPL Scoping Concepts

Domain Scoping

Asset Scoping

Product Scoping

Supporting Concepts

Generic Scoping Process

This concepts should be assembled into a generic process, divided according to the scoping types. Support concepts may be used in parallel to the scoping types concepts.

Generic Scoping Process

Support Checklist

We created a checklist to help the execution of PAxSPL. The checklist contains items for every activity of the process. The checklist is available here.

Tool Support

There is also additional SPL re-engineering tools found in the literature. A summary of these tools can be accessed here.