WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
Reverse Engineering Feature Models From Software Variants to Build Software Product Lines
1. Reverse Engineering Feature Models From Software Variants to
Build Software Product Lines
Ra'Fat AL-Msie'Deen
RE-engineering Software Variants into Software Product LINE
Marianne Huchard ………………………………………………...............… Directrice de Thèse
Abdelhak-Djamel Seriai ……………………………………................... Co-Directeur de Thèse
Christelle Urtado ……………………………………………….............. Co-Encadrante de Thèse
Sylvain Vauttier ………………………………………………............... Co-Encadrant de Thèse
2. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
2
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
3. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
3
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
4. 1. Software product variants
Are similar software
o Share mandatory features
o Differ in optional features
o Developed via clone-and-own approach
Examples
o Mobile media « http://www.ic.unicamp.br/~tizzei/mobilemedia/ »
o ArgoUML « http://argouml-spl.tigris.org/ »
4
Software product variants
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
5. Software product Line
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
Domain Engineering Application Engineering
e.g., Source code
Software Product Line Engineering
FM
F1 F0
Feature Model
F2
Product
Derivation
Solution Space Problem Space
Software
5
6. 6
Instance-1 Instance-2
Software product Line
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
7. Software product variants
Difficulties for:
• Reuse
• Maintenance
• Understanding
7
... Feature (mandatory, optional) ?
... Feature Name and description ?
... Feature dependencies (feature model) ?
Problem
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
8. Software-1
Software-2
Software-3
Reverse engineering FM from the source code of software product variants
8
Thesis
F1 F2
F3
Feature ModelSource code
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
9. Commonality and Variability
9
Commonality Variability
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
10. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
10
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
11. 11
Software Variants Source Code
Extracting Features
Documenting Features
Feature Names
Feature Implementations
Building the Feature Model
1
2
3
Product-by-Feature Matrix
Identifying cross-tree constraints
Identifying groups of features (and, or and xor)
Process
Use-case diagrams
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
12. Used Technique
1. Classification Methods:
Formal Concept Analysis (FCA)
Relational Concept Analysis (RCA)
2. Information Retrieval Method:
Latent Semantic Indexing (LSI)
12
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
13. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
13
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
14. 1. Feature location: [Rubin and Chechik, 2013]
Identifying group of source code elements that implement functionality
1. Feature location in a single software system [Dit et al., 2013]
The majority of existing approaches
Code-To-Feature traceability link
Search space = all source code elements
14
Feature Location
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
15. 1. Feature location in a collection of software product variants [Xue et al., 2012]
Code-To-Feature traceability link approaches
Inputs: source code and feature descriptions
Feature identification approaches [Ziadi et al., 2012]
Input: only the source code of software variants
Variability at package and class levels
Gather all mandatory features as a single feature
Gather optional features which always appear together as a single feature
15
Feature Location
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
16. 1. Source code documentation in a single software system [Lucia et al., 2012]
The process of taking computer source code and understanding it
Existing approaches extract labels, names, topics or code summarization
2. Feature documentation in a collection of software product variants [Ziadi et al., 2012]
The process of taking the mined feature implementation and naming it
All approaches manually assign feature names to the mined feature implementations
16
Feature Documentation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
17. Reverse engineering FM from high level models [Acher et al., 2012]
- such as product configurations, product description, etc ….
Reverse engineering basic FM without cross-tree constraints [Ryssel et al., 2011]
- require and exclude constraints
Numerous candidate FMs can be extracted from the same input product configurations
- only a few of them are meaningful and correct [Acher et al., 2013]
The majority of approaches are designed to identify the dependencies between features
- doesn’t consider FM hierarchy [Haslinger et al., 2011]
17
Reverse Engineering FM
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
18. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
18
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
19. Overview
19
Software Variants Source Code
Extracting Features
Documenting Features
Feature Names
Feature Implementations
Building the Feature Model
1
2
3
Product-by-Feature Matrix
Identifying cross-tree constraints
Identifying groups of features (and, or and xor)
Use-case diagrams
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
20. 20
REVPLINE
Proposal
Step 1 in the identification of FM is:
Identifying optional and mandatory features
P1
P2 Pn
Implementation Space
Feature-1
Feature Space
Software variants Feature implementation
Feature-N
Input Output
...
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
21. 21
Exploit commonality and variability at the source code level
- Reduce the search space
- Apply IR methods in an efficient way
Use two types of similarity between source code elements
- Lexical similarity
- Structural similarity
Consider variability at different levels of source code elements
- Package, class, attribute, method or method body
Two techniques
- FCA and LSI
Contribution
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
22. Lexical vs Structural Similarity Between The Source Code Elements
Lexical Similarity
- LSI method on the source code elements
Structural Similarity
- Five coupling between the source code elements:
1. Inheritance
2. Method invocation
3. Composition
4. Attribute access
5. Combined
22
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
23. 23
Feature Location Process
P1
P2 Pn
Implementation Space OBEs
Atomic
Block
Feature
Static Analysis
Commonalities and
variabilities computation
Lexical and structural
similarity computation
Clustering
Similarity
Matrix
Feature Space
1
2
(Block of Variation)N
Variable OBEs
Variable OBEs
Variable OBE
Common Block
Common OBE nCommon OBE nCommon OBE
Software variants
Feature implementation
Process
Output
Block
Legend:
1 2
3
45
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
Output
Input
24. Drawing Shapes Software Variants
24
Features
Software
An Illustrative Example
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
25. 1. A formal context describing drawing shapes software variants by their source code elements
25
OBEs
Software
Identifying the Common Block and Blocks of Variation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
26. 2. The AOC-poset
26
Common block
Identifying the Common Block and Blocks of Variation
Blocks of variation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
27. 27
2
3
4
5
1
Measuring The Source Code Elements Similarity Based on Lexical Similarity
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
28. Measuring The Source Code Elements Similarity Based on Lexical & Structural Similarity
2828
1
2
3 4
5
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
29. We efficiently extract feature implementations
From the source code of a collection of software product variants
By exploiting commonality and variability at the source code level
By using the REVPLINE approach, Based on
FCA (reduce search space)
LSI (lexical similarity)
Code Dependency (structural similarity)
29
Introduction Overview State of the art Feature Location Reverse Engineering FM Experimentation Conclusion
Conclusion
30. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
30
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
31. Overview
31
Software Variants Source Code
Extracting Features
Documenting Features
Feature Names
Feature Implementations
Building the Feature Model
1
2
3
Product-by-Feature Matrix
Identifying cross-tree constraints
Identifying groups of features (and, or and xor)
Use-case diagrams
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
32. 32
Proposal
Step 2 in the identification of FM is
Documenting the identified feature implementations
Use-case Diagrams
Feature Implementations
public ….. ( ) {
……….
………....
…………………
……
}
Description
View
map
Input
Feature Documentation
Feature Name
Feature Description
Output
REVPLINE
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
33. Exploits commonality and variability at feature implementation and use-cases levels
- Reduce the search space
- Apply IR methods in an efficient way
Gives to each feature implementation a name and description based on the use-case name
Three techniques
- FCA, LSI and RCA
33
Contribution
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
34. 34
Process
ToRCATables
Use-case Diagrams
Feature Implementations
Feature Documentation
Feature Name
Feature Description
Filtering
RCA
LSI
FCA
Legend Process Technique Output
Concept Lattice Family
Object - Attribute Tables
Object - Object Table
Use-case diagrams
Feature implementations
F F F
U X X
U X X
P P P
U X
U X
P P P
F X
F X
public ….. ( ) {
……….
………....
…………………
……
}
Description
View
map
Clustering
Lexical Similarity Computation
Cosine similarity matrix
Input The Feature Documentation Process
Output
Documents
F1 F2
Queries
U1 0.08 0.80
U2 0.75 0.02
View
map
public ….. ( ) {
……….
………....
…………………
……
}
(Hybrid block)i
1
2
3
4
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
35. 35
The use-case diagrams of the second and fourth MTG software variants
Mined
Feature
Implementations
Software
Software
Use-cases
Mobile Tourist Guide (MTG) Software Variants
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
36. 36
Relational Context Family (RCF)
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
37. 37
Concept Lattice Family (CLF)
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
38. 38
Exploring and Filtering the Hybrid Blocks From CLF
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
39. 39
Constructing a Raw Corpus From Hybrid Block
Documents (Feature Implementations)
The tourist can view maps via mobile
device …………………………………
………………………………...........
…………………………………………
View Map
viewMap
a
…………………
…………………
…………………
…………………
View Map Implementation
Hybrid Block_i
public viewMap(){
int a = 0;
while (a > 5) {
if (a != 20) {
} else {
a = 30;
}}}
View Map
Queries (use-cases)
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
40. 40
2
3
4
1
Measuring Hybrid Block Contents’ Similarity Based on LSI
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
42. Conclusion
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
We efficiently document the mined feature implementations
From the source code of a collection of software product variants
By exploiting commonality and variability at feature implementations and use-cases
levels
By using the REVPLINE approach, Based on
RCA (reduce search space)
LSI (lexical similarity)
FCA (clustering technique)
42
43. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
43
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
44. 44
Overview
Software Variants Source Code
Extracting Features
Documenting Features
Feature Names
Feature Implementations
Building the Feature Model
1
2
3
Product-by-Feature Matrix
Identifying cross-tree constraints
Identifying groups of features (and, or and xor)
Use-case diagrams
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
45. 45
F-1 F-2 F-3
S-1 x x
S-2 x x
S-3 x x
Reverse Engineering
Source code Software Configurations
Product-by-feature matrix
Feature model
Reverse Engineering FMs
SynthesisFeature implementation and documentation
variant 1
variant 2
Proposal
Step 3 in the identification of FM is:
Identifying the dependencies between the mined and documented features
REVPLINE
Input Output
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
46. Automatic approach
Features are organized in a canonical tree which highlights
- Mandatory features
- Optional features
- Feature groups (and, or, xor groups)
- Cross-tree constraints: require and exclude constraints
Technique
- FCA
46
Contribution
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
47. 47
Process
Product-by-Feature matrix
Analysis
FM
Extracting Root Feature
Extracting Atomic Sets of Features
Extracting Inclusive-Or
Extracting Exclusive-Or
Extracting Require Constraints
The Common Feature Set
The Optional Feature SetThe AOC-poset
Extracting Mandatory Features
Formal Context
FM Reverse Engineering Process
Synthesize
1
2
3
4
5
6
Extracting Exclude Constraints
7
8
Input Output
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
48. 48
Existing Cell Phone SPL Feature Model
Cell_Phone
Wireless Accu_Cell Display Games
Infrared Bluetooth Strong Medium Weak Multi_Player Single_Player
Artificial_Opponent
requires
requires
excludes
Mandatory
Optional
Or
Alternative
Legend:
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
49. 49
Valid Product Configurations of Cell Phone SPL
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
50. 50
The root feature
The Base feature
The top conceptExtracting Root and Mandatory Features
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
51. 51
The AND feature
Extracting Atomic Set of Features
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
52. 52
The XOR feature
Minimum concepts
Extracting Exclusive-or relation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
53. 53
The OR feature
Extracting Inclusive-or relation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
54. 54
require constraint
Extracting Require Constraint
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
55. 55
The OR feature
Extracting Exclude Constraint
exclude constraint
minimum
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
56. 56
The mined FM
Cell_Phone
Wireless
Accu_
Cell
Display Games InfraredBluetoothStrong Medium Weak
Multi_
Player
Base AND XOR OR
Single_
Player
Artificial_
Opponent
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
57. Introduction Overview State of the art Feature Location Reverse Engineering FM Experimentation Conclusion
Conclusion
We efficiently synthesize large scale FMs
with approach that uses FCA and software configurations
Requirements for FM Synthesis
Input: Software Configurations
Sound and Complete: Derive an exact feature model describing the input
Scalable: Support 10 to 1000's of features
Hierarchy: two levels
57
58. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
5. Experimentation
6. Conclusion
58
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
59. ArgoUML-SPL = real SPL, 10 products, large systems, Java, well documented
Health complaint-SPL = real SPL, 10 products, medium systems, Java, well documented
Mobile Media = real software variants, 4 products, small systems, Java, well documented
Evaluation Metrics: precision, recall and F-Measure
Used Tools:
eRCA : https://code.google.com/p/erca/
FAMA Tool Suite: http://www.isa.us.es/fama/
SPLOT homepage: http://www.splot-research.org/
59
Experimentation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
61. 61
Health Complaint SPL
Health Complaint screenshot
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
62. 62
Mobile Media software product variants
Mobile Media screenshots
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
63. Results show that the precision and recall metrics appear high
Results show that the F-Measure metric appears high
We cannot use a fixed number of topics for LSI
63
0
20
40
60
80
100
120
Precision Recall F-Measure
ArgoUML-SPL
Health complaint-SPL
Mobile Media
Average of evaluation metrics for feature location
Feature Location
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
64. The lexical and structural similarity approach gives better results than the lexical approach
alone
64
Part of the sequence diagram feature implementation
Feature Location
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
65. Results show that recall value in all cases is 100%
Results show that precision value either 100% or 50%
Number of topics for LSI = # of feature implementations
65
0
20
40
60
80
100
120
Precision Recall F-Measure
ArgoUML-SPL
Health complaint-SPL
Mobile Media
Average of evaluation metrics for Feature Documentation
Feature Documentation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
66. Feature Documentation
Example (Feature Name and Description)
1. View sorted photos: "the device sorts the photos based on the number of times photo has
been viewed"
66
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
67. FM Reverse Engineering
Considering the recall metric, it is value is 100% for all case studies
Results show that precision appears to be not very high for all case studies
67
Evaluation metrics for FM Reverse Engineering
0
20
40
60
80
100
120
Precision Recall F-Measure
ArgoUML-SPL
Health complaint-SPL
Mobile Media
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
68. Threats to validity
1. Lexical similarity
2. We consider junction as feature implementations
3. Dynamic analysis techniques
4. There is a limitation of using FCA as clustering technique
5. Each use-case represents a single feature
6. The mined FM defines more configurations than the initial FM
68
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
69. Outline
1. Context
2. Overview
3. State of the art
4. REVPLINE approach:
o Feature Location
o Feature Documentation
o Reverse Engineering FM
3. Experimentation
4. Conclusion
69
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
70. Conclusion
Conclusion
REVPLINE approach
Thesis: Reverse engineering FM from the source code of software product variants
Input: The source code and use-case diagrams of a set of software variants
Outputs: Feature implementations, features documentation, correct FM
Strategy: Reduce search space by exploiting commonality and variability
Use cases: ArgoUML-SPL, Health complaint-SPL, Mobile media
Variability at different levels of source code elements
Automatically naming the mined feature implementations
Features are organized in a canonical tree which represents the mined FM
The experiments have proven the effectivity of our approach
70
71. Future Directions
1. Extending the Scope
Feature evolution
Dynamic analysis techniques
Design first-cut SPL core assets
71
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
72. Future Directions
2. Improving techniques
We plan to use search based algorithms as clustering technique
Automatically identify junctions between feature implementations
Enhance the extracted FM by increasing the levels of hierarchy
72
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
73. Bibliography
1. [Rubin and Chechik, 2013] A survey of feature location techniques. In Domain Engineering, pages 29–58.
Springer Berlin Heidelberg, 2013.
2. [Dit et al., 2013] Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and
Process, 25(1):53–95, 2013.
3. [Xue et al., 2012] Feature location in a collection of product variants. WCRE ’12, pages 145–154, 2012. IEEE.
4. [Ziadi et al., 2012] Feature identification from the source code of product variants. In CSMR ’12, pages 417–422,
2012.
5. [Lucia et al., 2012] Using IR methods for labeling source code artifacts: Is it worthwhile? In ICPC, pages 193–
202, 2012.
6. [Acher et al., 2012] On extracting feature models from product descriptions. VaMoS ’12, pages 45–54, 2012.
ACM.
7. [Ryssel et al., 2011] Extraction of feature models from formal contexts. SPL , Volume 2, SPLC ’11, pages 4:1–
4:8, 2011.
8. [Acher et al., 2013] Support for reverse engineering and maintaining feature models. VaMoS ’13, pages 20:1–
20:8, 2013.
9. [Haslinger et al., 2011] Reverse engineering feature models from programs’ feature sets. In WCRE ’11, pages
308–312, 2011.
73
74. Personal Bibliography
1. "Feature location in a collection of software product variants using FCA,". In ICSR, 2013.
2. "Mining features from the object-oriented source code of a collection of software variants using formal
concept analysis and latent semantic indexing,". In SEKE, 2013.
3. "Mining features from the object-oriented source code of software variants by combining lexical and
structural similarity,". In IRI, 2013.
4. "Documenting the Mined Feature Implementations from the Object-oriented Source Code of a
Collection of Software Product Variants,". In SEKE, 2014.
5. "Concept lattices: a representation space to structure software variability,". In ICICS, 2014.
6. "Reengineering Software Product Variants Into Software Product Line: REVPLINE Approach,". LAP
Lambert Academic Publishing, 2014.
7. "Mining feature models from the object-oriented source code of a collection of software product
variants,". In Doctoral Symposium - ECOOP, 2013.
8. "An approach to recover feature models from object-oriented source code,". In Actes de la Journée
Lignes de Produits, 2012.
9. "A methodology to recover feature models from object-oriented source code,“ poster presented at
VARY Workshop (VARY: VARiability for You @ MODELS), 2012. 74