SlideShare a Scribd company logo
1 of 76
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
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
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
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
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
Instance-1 Instance-2
Software product Line
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
 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
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
Commonality and Variability
9
Commonality Variability
Context Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
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
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
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
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
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
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
 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
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
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
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
 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
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
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
 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
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
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
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
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
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
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
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
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
 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
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
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
Relational Context Family (RCF)
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
37
Concept Lattice Family (CLF)
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
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
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
41
The Product-by-Feature Matrix
Features
Software
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
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
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
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
 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
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
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
Valid Product Configurations of Cell Phone SPL
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
The AND feature
Extracting Atomic Set of Features
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
The OR feature
Extracting Inclusive-or relation
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
54
require constraint
Extracting Require Constraint
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
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
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
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
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
 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
60
ArgoUML SPL
ArgoUML screenshot
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
61
Health Complaint SPL
Health Complaint screenshot
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
62
Mobile Media software product variants
Mobile Media screenshots
Introduction Overview State of the art Feature Location Feature Documentation Reverse Engineering FM Experimentation Conclusion
 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
 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
 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
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
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
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
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
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
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
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
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
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
75
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

More Related Content

What's hot

Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVCUpgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
FPGA Central
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
Nirav Desai
 
Verilog Lecture5 hust 2014
Verilog Lecture5 hust 2014Verilog Lecture5 hust 2014
Verilog Lecture5 hust 2014
Béo Tú
 

What's hot (20)

CMPT470-usask-guest-lecture
CMPT470-usask-guest-lectureCMPT470-usask-guest-lecture
CMPT470-usask-guest-lecture
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flow
 
introduction of c langauge(I unit)
introduction of c langauge(I unit)introduction of c langauge(I unit)
introduction of c langauge(I unit)
 
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVCUpgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
Upgrading to System Verilog for FPGA Designs, Srinivasan Venkataramanan, CVC
 
Compiler Engineering Lab#3
Compiler Engineering Lab#3Compiler Engineering Lab#3
Compiler Engineering Lab#3
 
An Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl pprAn Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl ppr
 
verilog
verilogverilog
verilog
 
Verilog Lecture1
Verilog Lecture1Verilog Lecture1
Verilog Lecture1
 
Unit 5 cspc
Unit 5 cspcUnit 5 cspc
Unit 5 cspc
 
10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprograms
 
Linux binary analysis and exploitation
Linux binary analysis and exploitationLinux binary analysis and exploitation
Linux binary analysis and exploitation
 
Hardware description languages
Hardware description languagesHardware description languages
Hardware description languages
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
 
system verilog
system verilogsystem verilog
system verilog
 
An Introduction to PC-Lint
An Introduction to PC-LintAn Introduction to PC-Lint
An Introduction to PC-Lint
 
Toward Automatic Generation of Models with Probes from the SDL System Specifi...
Toward Automatic Generation of Models with Probes from the SDL System Specifi...Toward Automatic Generation of Models with Probes from the SDL System Specifi...
Toward Automatic Generation of Models with Probes from the SDL System Specifi...
 
An integrated approach for designing and testing specific processors
An integrated approach for designing and testing specific processorsAn integrated approach for designing and testing specific processors
An integrated approach for designing and testing specific processors
 
Verilog Lecture5 hust 2014
Verilog Lecture5 hust 2014Verilog Lecture5 hust 2014
Verilog Lecture5 hust 2014
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language
 

Similar to Reverse Engineering Feature Models From Software Variants to Build Software Product Lines

OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
lienhard
 
Reusability-Oriented Software Engineering
Reusability-Oriented Software EngineeringReusability-Oriented Software Engineering
Reusability-Oriented Software Engineering
Codecamp Romania
 

Similar to Reverse Engineering Feature Models From Software Variants to Build Software Product Lines (20)

Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityConcept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variability
 
SEKE 11 presentation
SEKE 11 presentationSEKE 11 presentation
SEKE 11 presentation
 
An Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeAn Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source Code
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura
 
(Costless) Software Abstractions for Parallel Architectures
(Costless) Software Abstractions for Parallel Architectures(Costless) Software Abstractions for Parallel Architectures
(Costless) Software Abstractions for Parallel Architectures
 
Icsm19.ppt
Icsm19.pptIcsm19.ppt
Icsm19.ppt
 
Se
SeSe
Se
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
 
CHOReVOLUTION WP2 Enablers
CHOReVOLUTION  WP2 Enablers CHOReVOLUTION  WP2 Enablers
CHOReVOLUTION WP2 Enablers
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
 
Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product VariantsFeature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product Variants
 
QUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-SingaporeQUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-Singapore
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with Systemc
 
Ch1
Ch1Ch1
Ch1
 
Middleware
MiddlewareMiddleware
Middleware
 
Reusability-Oriented Software Engineering
Reusability-Oriented Software EngineeringReusability-Oriented Software Engineering
Reusability-Oriented Software Engineering
 
SCA Next Part 1 - Software Defined Radio (SDR) Webcast Slides
SCA Next Part 1 - Software Defined Radio (SDR) Webcast SlidesSCA Next Part 1 - Software Defined Radio (SDR) Webcast Slides
SCA Next Part 1 - Software Defined Radio (SDR) Webcast Slides
 

More from Ra'Fat Al-Msie'deen

BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 

More from Ra'Fat Al-Msie'deen (20)

SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
 
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsDetecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeNaming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentationPlanning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change management
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineering
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - references
 
Algorithms - "heap sort"
Algorithms - "heap sort"Algorithms - "heap sort"
Algorithms - "heap sort"
 
Algorithms - "quicksort"
Algorithms - "quicksort"Algorithms - "quicksort"
Algorithms - "quicksort"
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Recently uploaded (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

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
  • 41. 41 The Product-by-Feature Matrix Features Software 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
  • 60. 60 ArgoUML SPL ArgoUML screenshot 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
  • 75. 75
  • 76. 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