Guidelines - HestiaProject/PAxSPL GitHub Wiki
form.
To suggest the addition of new techniques please fill up ourIntroduction
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
- What is a software product line (SPL)?
- Benefits for adopting SPLs
- SPL development strategies
- The SPL re-engineering process
- Variability Management
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:
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.
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.
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.