SlideShare a Scribd company logo
AN APPROACH TO RECOVER FEATURE MODELS FROM
OBJECT-ORIENTED SOURCE CODE
R. AL- Msie’deen, A. Djamel Seriai, M. Huchard, C. Urtado, S.
Vauttier, and H. S. Eyal Salman
Outlines:
 INTRODUCTION.
 SOFTWARE PRODUCT LINE ENGINEERING (SPLE).
 FEATURE AND FEATURE MODEL (FM).
 FORMAL CONCEPT ANALYSIS (FCA).
 INFORMATION RETRIEVAL (IR) & LATENT SEMANTIC INDEXING (LSI).
 MOTIVATIONS.
 APPROACH OVERVIEW => THE MAPPING MODEL + FEATURE EXTRACTION PROCESS.
 OBJECT-ORIENTED SOURCE CODE VARIATIONS.
 OBJECT-ORIENTED BUILDING ELEMENTS (OBE).
 COMMONALITY AND VARIATION IDENTIICATION USING FCA.
 ATOMIC BLOCK OF VARIATIONS (FEATURE) IDENTIFICATION USING LSI AND FCA.
 RELATED WORK.
 CONCLUSION.
 FUTURE WORK.
 REFERENCES.
2
Introduction:
Software product variants are a set of similar products that are developed by
copy-paste-modify technique not by software product line (SPL) strategy.
Copy - paste - modify
Software product variants represent a starting point to build software product line
(SPL) [FIG 08]
3
Software Product Line [SPL]:
A SPL is "a set of software intensive systems sharing a common, managed set of features that
satisfy the specific needs of a particular market segment or mission and are developed from a
common set of core assets in a prescribed way" [CLE 01]
Products Features
Domain
Core Assets Production Plan
4
Software Product Line Engineering [SPLE]:
SPLE consists in two major steps: [CLE 01]
1. Domain Engineering: Core Assets + Feature Model.
2. Application Engineering: Product Configurations.
5
Feature and Feature Model:
The Feature is a system property relevant to some stakeholder used to capture commonalities or
discriminate [variations] among systems in a family [CZA 00]
Feature models FMs are tree-like graph of features and relationships among them. FMs in SPLE
are used to represent commonality and variability of SPL members at different levels of
abstraction [POH 10]
Feature
Feature Models
Optional Feature Mandatory Feature
6
Feature and Feature Model:
Text editing system 1 FM
Text Editing System
File Management
Basic
Help
Edit
Basic Edit Select All
Resize Case conversion
Clear
Read Only Font ColorSearch Split
Require
ExcludeAND
OR
XOROptional Feature
Mandatory Feature
Legend
Change Display Settings
Replacement
Unsplit AllHorizontal Vertical
require
exclude
1 http://www.lirmm.fr/TextEditingSystemSPL 7
Formal Concept Analysis (FCA):
FCA is a mathematical method that provides a way to identify "meaningful groupings of objects
that have common attributes“ [LOE 07]
A formal context is a triple K = (O, A, R) where O and A are sets (objects and attributes,
respectively) and R is a binary relation, i.e., R ⊆ O × A.
Galois lattices [BAR 70] and concept lattices [GAN 99] are core structures of a data analysis
framework (Formal Concept Analysis, or FCA for short) for extracting an ordered set of concepts
from a dataset, called a Formal Context, composed of objects described by attributes.
8
Formal Concept Analysis (FCA):
Class (Open) Class (Close) Class (Edit) Class ( Print) Class (Select All) Class (Red) Class (Green) Class (Blue) Class (Black)
Product 1 x x x x x x
Product 2 x x x x x
Product 3 x x x x x x
Product 4 x x x x x x
Product 5 x x x x x x
A formal context describing product variants by Source code elements
The concept lattice for the formal context of Table above
Common Concept
Concept shared by two Products
Concept specific for one product
9
Information Retrieval (IR) & Latent Semantic Indexing (LSI):
INFORMATION RETRIEVAL (IR) has proven useful in many disciplines such as software
maintenance and evolution, image extraction, speech recognition and horizontal search
engines like Google. Furthermore feature location is one of the most common applications of IR
in software engineering [DAV 11]
LATENT SEMANTIC INDEXING (LSI) assumed that there are some implicit relationships among
the words of documents that always appear together even if they do not share any terms; that is
to say, there are some latent semantic structures in free text [DAV 11]
The effectiveness of IR methods is measured using IR METRICS: RECALL and PRECISION.
10
Latent Semantic Indexing (LSI):
In our work, we consider the most widely used threshold for cosine similarity that equals to 0.70
[MAR 03]
In LSI all information must be manipulated and normalized to become suitable as input of LSI.
This preprocessing step include: all capital letters must be transformed into lower case letters,
removing stop words (such as: numbers, etc.), all Documents must be split into terms and
performing word stemming.
Similarity between Documents is described by similarity matrix. The similarity is computed based
on cosine similarity.
11
Motivations:
Many companies at first develop a number of similar software products without explicitly
planning for strategic reuse. Once released, if the product is SUCCESSFUL and meets the market,
similar products are to be developed [JOH 09]
INDIVIDUAL SYSTEMS
A B C D E F G
A B V G O J L
A B F D E R X
A B C D E F G
A B V G
A B F D E
SOFTWARE PRODUCT LINE
12
Motivations:
Creating manually a feature model for an existing system is time-consuming, error-prone, and
requires substantial effort from a modeler [SHE 11]
13
Motivations:
REVERSE ENGINEERING FM from source code aims to improve product maintenance, ease
system migration [CHI 90], and the extracted feature model may lead to the production of
new products.
Feature Model
P1
P2
Product Variants
REVERSE ENGINEERING FM
14
Motivations:
The general OBJECTIVE of our approach is to EXTRACT INITIAL FM which model common and
variable features of product variants. We present IN THIS PAPER the part concerning about
FEATURE IDENTIFICATION from the OO source code of product variants using FCA and LSI.
We Assumed in this paper That The Product
Variants Use The Same Vocabulary To Name
Packages, Classes, Attributes And Methods
In Its Source Code.
15
Motivations:
Reverse engineering a feature model from source code for a set of product variants make
system features and dependencies explicit and clear.
There are needs to extract feature models, especially from source code the most important
source of information, where features and dependencies are hidden.
16
Approach Overview:
Optional Feature
Product Variants
Product
Source code elements
Package
Source code
Source code variation Block of variations
1..*
Has a 1
Class
Attribute
Method
1..*
1..*
Atomic block of variations
Feature
1..*
1..*
1..*
1
1
correspond
Feature Model
1..*
Mandatory Feature
1..*
1..*
1..*
A. The Mapping Model:
To identify features we rely on a mapping model between these features and object-oriented
building elements (OBE).
Object-oriented source code variations
17
Approach Overview:
For object-oriented source code, the mandatory features are realized by OBE that are common
to all product variants.
The optional features are realized by variable OBE that can appear in some product variants or
in single product but not all product variants.
We consider that a feature corresponds to one and only one set (group) of OBE. This means
that a feature always has the same implementation in all products where it is present.
18
Approach Overview:
As a feature corresponds to one and only one set of OBE, then an optional feature is
implemented by the same set of Variables OBE (VOBE) in all products where it is present.
We define a block of variations (BV) as a set of VOBE which are always associated (i.e., which are
always identified together in all the products in which they appear).
The subsets of VOBE that belong to a BV and represent one and only one feature are called
Atomic Blocks Of Variations (ABV). A BV is composed of set of ABVs. To determine its various
parts (sub-groups), we rely on the clustering of the closest VOBEs considering the similarity
measures that are related to LSI method.
19
Approach Overview: An illustrative example:
20
Approach Overview:
B. Feature extraction process:
The approach that we propose is illustrated in Figure below. Feature extraction process consists
of the following steps:
1. OO Source code is analyzed to extract object-oriented building elements (packages, classes,
methods, attributes) for all product variants.
2. Commonalities and variations are extracted for all product variants using FCA. “Blocks of
variations are given by using FCA”
3. Blocks of variations are divided into atomic blocks of variations. Each atomic block of
variations corresponds to one and only one feature. “using LSI and FCA“
21
Object-oriented source code variations:
Package Variation
Package Set Variation Package Content Variation
Class Variation
Class Content Variation
Class Signature Variation
Attributes Set Variation
Methods Set Variation
Method Variation
Signature Body
Attribute Variation ( Access Level, Data Type. etc.)
1:
2:
3:
4:
(Name)
(Name)
Relationship
Public , Private, ...Access Level
Access Level
Returned Data Type
Parameters List order & data type
Exception
Local Variable
Invocation
Access
22
Object-oriented source code variations example:
Package Set Variation
Package Content Variation
23
Object-oriented building elements OBE:
in our case each product variant PN is abstracted as a set of OBE as follow:
OBE for PN ={
Package (name);
Class (name, owner);
Attribute (name, owner);
Method (name, owner);
Parameter (name, owner);
Local Variable (name, owner);
Method Invocation (name, accessed in, owner);
Method Exception (name, owner)}.
24
Commonality and variation identification using FCA:
Formal context describing text editing systems by object-oriented building elements (OBE)
In the Formal context
products constitute the
rows of the Table.
In the Formal context OBE constitute the columns of the Table.
25
Commonality and variation identification using FCA:
The concept lattice for the formal context of previous Table.
The common block
Block of Variations
26
Atomic block of variations (feature) identification using LSI and FCA:
To identify the atomic block of variations that represent a single feature from a block of
variations, we consider LSI and FCA to recover all atomic block of variations.
27
Atomic block of variations (feature) identification using LSI and FCA:
In our case, each line in the block of variations represents a single document and at the same
time represents a query.
.
.
1 0.70
0.70 1
10 0
0
0
x x
x x
x0 0
0
0
The Similarity Matrix
The Context (Similarity Matrix) For θ= 0.70
28
Atomic block of variations (feature) identification using LSI and FCA:
Concept lattice shows three atomic blocks of variations extracted from one block of variations.
29
Related Work:
Ziadi et al. [ZIA 12] propose an automatic approach for feature identification from source code
for a set of product variants.
30
Their approach only investigates products in which the variability is represented in the name of
classes, methods and attributes, without considering a product lines in which the variability is
mainly represented in the body of methods
Related Work:
Ziadi approach gather all common features as a single mandatory feature under title base
feature.
We use FCA to extract commonalities and variations from product variants and distinguish
between the mandatory features by using LSI and FCA based on the lexical similarity, and
extracts all optional features and constraints such as: "and" and "require".
31
Conclusion:
In this paper, we proposed an approach based on FCA and LSI to extract a features from the
object-oriented source code of software system variants.
FCA can be used to extract common block and blocks of variations.
LSI is used with FCA to recover atomic blocks of variations that represent a single feature, using
the textual similarity.
32
Future Work:
We will use both textual and semantic similarity to determine more precisely each feature
implementation from the OO source code .
We will organize the extracted features as a feature model including all cross-tree constraints
and group of feature constraints, using the information contained in the concept lattice.
We will Integrate our approach with the linguistic matching techniques; in case product variants
use different vocabulary to names packages, classes, attributes, and methods.
33
[ZIA 12] ZIADI T., FRIAS L., DA SILVA M. A. A., ZIANE M., “Feature Identification from the Source Code of Product Variants”, MENS T.
CLEVE A. F. R., Ed., Proceedings of the 15th European Conference on Software Maintenance and Reengineering, Los Alamitos, CA, USA, 2012,
IEEE, p. 417–422.
[CLE 01] CLEMENTS P. C., NORTHROP L. M., Software product lines: practices and patterns, Addison-Wesley, 2001.
[JOH 09] JOHN I., EISENBARTH M., “A decade of scoping: a survey”, Proceedings of the 13th International Software Product Line
Conference, Pittsburgh, PA, USA, 2009, Carnegie Mellon University, p. 31–40.
[FIG 08] FIGUEIREDO E., CACHO N., SANT’ANNA C., MONTEIRO M., KULESZA U., GARCIA A., SOARES S., FERRARI F., KHAN S.,
CASTOR FILHO F., DANTAS F., “Evolving software product lines with aspects: an empirical study on design stability”, Proceedings of the 30th
international conference on Software engineering, ICSE ’08, New York, NY, USA, 2008, ACM, p. 261-270.
[CZA 00] CZARNECKI K., EISENECKER U. W., Generative programming: methods, tools, and applications, ACM Press/Addison-Wesley
Publishing Co., New York, NY, USA, 2000.
[POH 10] POHL K., BCKLE G., VAN DER LINDEN F. J., Software Product Line Engineering: Foundations, Principles and Techniques,
Springer Publishing Company, Incorporated, 1stedition, 2010.
[LOE 07] LOESCH F., PLOEDEREDER E., “Restructuring Variability in Software Product Lines using Concept Analysis of Product
Configurations”, KRIKHAAR R. L. VERHOEF C. L. G. A. D., Ed., Proceedings of the 11th European Conference on Software Maintenance and
Reengineering, Amsterdam, Netherlands, March 2007, IEEE, p. 159–170.
[GAN 99] GANTER B., WILLE R., Formal Concept Analysis, Mathematical Foundations, Springer-Verlag, 1999.
[BAR 70] BARBUT M., MONJARDET B., Ordre et Classification: Algèbre et combinatoire, vol. 2, Hachette, 1970.
[DAV 11] DAVID B., LAWRIE D., “Information Retrieval Applications in Software Maintenance and Evolution”, In Encyclopedia of Software
Engineering, 2011, p. 454-463.
[SHE 11] SHE S., LOTUFO R., BERGER T., WASOWSKI A., CZARNECKI K., “Reverse engineering feature models”, ICSE, 2011, p. 461-470.
[MAR 03] MARCUS A., MALETIC J. I., “Recovering documentation-to-source-code traceability links using latent semantic indexing”,
Proceedings of the 25th International Conference on Software Engineering, ICSE ’03, Washington, DC, USA, 2003, IEEE Computer Society, p.
125–135.
References:
34
35
Banking systems example:
Ad

Recommended

Function pointer - Wikipedia, the free encyclopedia
Function pointer - Wikipedia, the free encyclopedia
Rishikesh Agrawani
 
Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variability
Ra'Fat Al-Msie'deen
 
Simple Obfuscation Tool for Software Protection
Simple Obfuscation Tool for Software Protection
QUESTJOURNAL
 
Cso gaddis java_chapter5
Cso gaddis java_chapter5
mlrbrown
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Coen De Roover
 
Toward Structured Location of Features
Toward Structured Location of Features
Hiroshi Kazato
 
Java 8 - An Overview
Java 8 - An Overview
Indrajit Das
 
A recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templates
Coen De Roover
 
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
IJERA Editor
 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Coen De Roover
 
Object oriented design-UNIT V
Object oriented design-UNIT V
Azhar Shaik
 
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Alkis Vazacopoulos
 
Vhdl introduction
Vhdl introduction
ashokqis
 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
Institute of Science Tokyo
 
The Database Environment Chapter 14
The Database Environment Chapter 14
Jeanie Arnoco
 
Programming in c++ ppt
Programming in c++ ppt
MalarMohana
 
Bt0066 database management system2
Bt0066 database management system2
Techglyphs
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
csandit
 
Vb net xp_04
Vb net xp_04
Niit Care
 
A Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol Applications
Cognizant
 
Ch 12 O O D B Dvlpt
Ch 12 O O D B Dvlpt
guest8fdbdd
 
Interoduction to c++
Interoduction to c++
Amresh Raj
 
Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product Variants
Ra'Fat Al-Msie'deen
 
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Ra'Fat Al-Msie'deen
 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...
Ra'Fat Al-Msie'deen
 
Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...
Ra'Fat Al-Msie'deen
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
CSCJournals
 
TEFSE05.ppt
TEFSE05.ppt
Ptidej Team
 
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Ra'Fat Al-Msie'deen
 

More Related Content

What's hot (15)

A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
IJERA Editor
 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Coen De Roover
 
Object oriented design-UNIT V
Object oriented design-UNIT V
Azhar Shaik
 
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Alkis Vazacopoulos
 
Vhdl introduction
Vhdl introduction
ashokqis
 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
Institute of Science Tokyo
 
The Database Environment Chapter 14
The Database Environment Chapter 14
Jeanie Arnoco
 
Programming in c++ ppt
Programming in c++ ppt
MalarMohana
 
Bt0066 database management system2
Bt0066 database management system2
Techglyphs
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
csandit
 
Vb net xp_04
Vb net xp_04
Niit Care
 
A Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol Applications
Cognizant
 
Ch 12 O O D B Dvlpt
Ch 12 O O D B Dvlpt
guest8fdbdd
 
Interoduction to c++
Interoduction to c++
Amresh Raj
 
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
IJERA Editor
 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Coen De Roover
 
Object oriented design-UNIT V
Object oriented design-UNIT V
Azhar Shaik
 
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Alkis Vazacopoulos
 
Vhdl introduction
Vhdl introduction
ashokqis
 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
Institute of Science Tokyo
 
The Database Environment Chapter 14
The Database Environment Chapter 14
Jeanie Arnoco
 
Programming in c++ ppt
Programming in c++ ppt
MalarMohana
 
Bt0066 database management system2
Bt0066 database management system2
Techglyphs
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
csandit
 
Vb net xp_04
Vb net xp_04
Niit Care
 
A Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol Applications
Cognizant
 
Ch 12 O O D B Dvlpt
Ch 12 O O D B Dvlpt
guest8fdbdd
 
Interoduction to c++
Interoduction to c++
Amresh Raj
 

Similar to An Approach to Recover Feature Models From Object-Oriented Source Code (20)

Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product Variants
Ra'Fat Al-Msie'deen
 
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Ra'Fat Al-Msie'deen
 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...
Ra'Fat Al-Msie'deen
 
Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...
Ra'Fat Al-Msie'deen
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
CSCJournals
 
TEFSE05.ppt
TEFSE05.ppt
Ptidej Team
 
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Ra'Fat Al-Msie'deen
 
Icsm05.ppt
Icsm05.ppt
Yann-Gaël Guéhéneuc
 
Software variability management - 2019
Software variability management - 2019
XavierDevroey
 
Sub1583
Sub1583
International Journal of Science and Research (IJSR)
 
Feature-Oriented Software Evolution
Feature-Oriented Software Evolution
Leonardo Passos
 
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
ijseajournal
 
Software variability management - 2017
Software variability management - 2017
XavierDevroey
 
Query expansion using novel use case scenario relationship for finding featur...
Query expansion using novel use case scenario relationship for finding featur...
IJECEIAES
 
CORRELATING FEATURES AND CODE BY DYNAMIC AND SEMANTIC ANALYSIS
CORRELATING FEATURES AND CODE BY DYNAMIC AND SEMANTIC ANALYSIS
ijseajournal
 
Meet Tom and his Fish
Meet Tom and his Fish
Thomas Zimmermann
 
Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...
Ra'Fat Al-Msie'deen
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
Thomas Zimmermann
 
Preservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategy
GarethKnight
 
Reverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software Configurations
Ra'Fat Al-Msie'deen
 
Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product Variants
Ra'Fat Al-Msie'deen
 
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Mining Features from the Object-Oriented Source Code of a Collection of Softw...
Ra'Fat Al-Msie'deen
 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...
Ra'Fat Al-Msie'deen
 
Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...
Ra'Fat Al-Msie'deen
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
CSCJournals
 
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Mining Features from the Object-Oriented Source Code of Software Variants by ...
Ra'Fat Al-Msie'deen
 
Software variability management - 2019
Software variability management - 2019
XavierDevroey
 
Feature-Oriented Software Evolution
Feature-Oriented Software Evolution
Leonardo Passos
 
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
ijseajournal
 
Software variability management - 2017
Software variability management - 2017
XavierDevroey
 
Query expansion using novel use case scenario relationship for finding featur...
Query expansion using novel use case scenario relationship for finding featur...
IJECEIAES
 
CORRELATING FEATURES AND CODE BY DYNAMIC AND SEMANTIC ANALYSIS
CORRELATING FEATURES AND CODE BY DYNAMIC AND SEMANTIC ANALYSIS
ijseajournal
 
Documenting the Mined Feature Implementations from the Object-oriented Source...
Documenting the Mined Feature Implementations from the Object-oriented Source...
Ra'Fat Al-Msie'deen
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
Thomas Zimmermann
 
Preservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategy
GarethKnight
 
Reverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software Configurations
Ra'Fat Al-Msie'deen
 
Ad

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

Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
Supporting software documentation with source code summarization
Supporting software documentation with source code summarization
Ra'Fat Al-Msie'deen
 
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Ra'Fat Al-Msie'deen
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
Ra'Fat Al-Msie'deen
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
Ra'Fat Al-Msie'deen
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
Ra'Fat Al-Msie'deen
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change management
Ra'Fat Al-Msie'deen
 
Requirements change - requirements engineering
Requirements change - requirements engineering
Ra'Fat Al-Msie'deen
 
Requirements validation - requirements engineering
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Smart City: Definitions, Architectures, Development Life Cycle, Technologies,...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
ScaMaha: A Tool for Parsing, Analyzing, and Visualizing Object-Oriented Softw...
Ra'Fat Al-Msie'deen
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
Supporting software documentation with source code summarization
Supporting software documentation with source code summarization
Ra'Fat Al-Msie'deen
 
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Ra'Fat Al-Msie'deen
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
Ra'Fat Al-Msie'deen
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
Ra'Fat Al-Msie'deen
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
Ra'Fat Al-Msie'deen
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change management
Ra'Fat Al-Msie'deen
 
Requirements change - requirements engineering
Requirements change - requirements engineering
Ra'Fat Al-Msie'deen
 
Requirements validation - requirements engineering
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
Ad

Recently uploaded (20)

Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
HPE Reseller in uae by numerosystom.pptx
HPE Reseller in uae by numerosystom.pptx
aadibva452
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
NVIDIA GPU Technologies for AI and High-Performance Computing
NVIDIA GPU Technologies for AI and High-Performance Computing
SandeepKS52
 
Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
HPE Reseller in uae by numerosystom.pptx
HPE Reseller in uae by numerosystom.pptx
aadibva452
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
NVIDIA GPU Technologies for AI and High-Performance Computing
NVIDIA GPU Technologies for AI and High-Performance Computing
SandeepKS52
 
Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 

An Approach to Recover Feature Models From Object-Oriented Source Code

  • 1. AN APPROACH TO RECOVER FEATURE MODELS FROM OBJECT-ORIENTED SOURCE CODE R. AL- Msie’deen, A. Djamel Seriai, M. Huchard, C. Urtado, S. Vauttier, and H. S. Eyal Salman
  • 2. Outlines:  INTRODUCTION.  SOFTWARE PRODUCT LINE ENGINEERING (SPLE).  FEATURE AND FEATURE MODEL (FM).  FORMAL CONCEPT ANALYSIS (FCA).  INFORMATION RETRIEVAL (IR) & LATENT SEMANTIC INDEXING (LSI).  MOTIVATIONS.  APPROACH OVERVIEW => THE MAPPING MODEL + FEATURE EXTRACTION PROCESS.  OBJECT-ORIENTED SOURCE CODE VARIATIONS.  OBJECT-ORIENTED BUILDING ELEMENTS (OBE).  COMMONALITY AND VARIATION IDENTIICATION USING FCA.  ATOMIC BLOCK OF VARIATIONS (FEATURE) IDENTIFICATION USING LSI AND FCA.  RELATED WORK.  CONCLUSION.  FUTURE WORK.  REFERENCES. 2
  • 3. Introduction: Software product variants are a set of similar products that are developed by copy-paste-modify technique not by software product line (SPL) strategy. Copy - paste - modify Software product variants represent a starting point to build software product line (SPL) [FIG 08] 3
  • 4. Software Product Line [SPL]: A SPL is "a set of software intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and are developed from a common set of core assets in a prescribed way" [CLE 01] Products Features Domain Core Assets Production Plan 4
  • 5. Software Product Line Engineering [SPLE]: SPLE consists in two major steps: [CLE 01] 1. Domain Engineering: Core Assets + Feature Model. 2. Application Engineering: Product Configurations. 5
  • 6. Feature and Feature Model: The Feature is a system property relevant to some stakeholder used to capture commonalities or discriminate [variations] among systems in a family [CZA 00] Feature models FMs are tree-like graph of features and relationships among them. FMs in SPLE are used to represent commonality and variability of SPL members at different levels of abstraction [POH 10] Feature Feature Models Optional Feature Mandatory Feature 6
  • 7. Feature and Feature Model: Text editing system 1 FM Text Editing System File Management Basic Help Edit Basic Edit Select All Resize Case conversion Clear Read Only Font ColorSearch Split Require ExcludeAND OR XOROptional Feature Mandatory Feature Legend Change Display Settings Replacement Unsplit AllHorizontal Vertical require exclude 1 http://www.lirmm.fr/TextEditingSystemSPL 7
  • 8. Formal Concept Analysis (FCA): FCA is a mathematical method that provides a way to identify "meaningful groupings of objects that have common attributes“ [LOE 07] A formal context is a triple K = (O, A, R) where O and A are sets (objects and attributes, respectively) and R is a binary relation, i.e., R ⊆ O × A. Galois lattices [BAR 70] and concept lattices [GAN 99] are core structures of a data analysis framework (Formal Concept Analysis, or FCA for short) for extracting an ordered set of concepts from a dataset, called a Formal Context, composed of objects described by attributes. 8
  • 9. Formal Concept Analysis (FCA): Class (Open) Class (Close) Class (Edit) Class ( Print) Class (Select All) Class (Red) Class (Green) Class (Blue) Class (Black) Product 1 x x x x x x Product 2 x x x x x Product 3 x x x x x x Product 4 x x x x x x Product 5 x x x x x x A formal context describing product variants by Source code elements The concept lattice for the formal context of Table above Common Concept Concept shared by two Products Concept specific for one product 9
  • 10. Information Retrieval (IR) & Latent Semantic Indexing (LSI): INFORMATION RETRIEVAL (IR) has proven useful in many disciplines such as software maintenance and evolution, image extraction, speech recognition and horizontal search engines like Google. Furthermore feature location is one of the most common applications of IR in software engineering [DAV 11] LATENT SEMANTIC INDEXING (LSI) assumed that there are some implicit relationships among the words of documents that always appear together even if they do not share any terms; that is to say, there are some latent semantic structures in free text [DAV 11] The effectiveness of IR methods is measured using IR METRICS: RECALL and PRECISION. 10
  • 11. Latent Semantic Indexing (LSI): In our work, we consider the most widely used threshold for cosine similarity that equals to 0.70 [MAR 03] In LSI all information must be manipulated and normalized to become suitable as input of LSI. This preprocessing step include: all capital letters must be transformed into lower case letters, removing stop words (such as: numbers, etc.), all Documents must be split into terms and performing word stemming. Similarity between Documents is described by similarity matrix. The similarity is computed based on cosine similarity. 11
  • 12. Motivations: Many companies at first develop a number of similar software products without explicitly planning for strategic reuse. Once released, if the product is SUCCESSFUL and meets the market, similar products are to be developed [JOH 09] INDIVIDUAL SYSTEMS A B C D E F G A B V G O J L A B F D E R X A B C D E F G A B V G A B F D E SOFTWARE PRODUCT LINE 12
  • 13. Motivations: Creating manually a feature model for an existing system is time-consuming, error-prone, and requires substantial effort from a modeler [SHE 11] 13
  • 14. Motivations: REVERSE ENGINEERING FM from source code aims to improve product maintenance, ease system migration [CHI 90], and the extracted feature model may lead to the production of new products. Feature Model P1 P2 Product Variants REVERSE ENGINEERING FM 14
  • 15. Motivations: The general OBJECTIVE of our approach is to EXTRACT INITIAL FM which model common and variable features of product variants. We present IN THIS PAPER the part concerning about FEATURE IDENTIFICATION from the OO source code of product variants using FCA and LSI. We Assumed in this paper That The Product Variants Use The Same Vocabulary To Name Packages, Classes, Attributes And Methods In Its Source Code. 15
  • 16. Motivations: Reverse engineering a feature model from source code for a set of product variants make system features and dependencies explicit and clear. There are needs to extract feature models, especially from source code the most important source of information, where features and dependencies are hidden. 16
  • 17. Approach Overview: Optional Feature Product Variants Product Source code elements Package Source code Source code variation Block of variations 1..* Has a 1 Class Attribute Method 1..* 1..* Atomic block of variations Feature 1..* 1..* 1..* 1 1 correspond Feature Model 1..* Mandatory Feature 1..* 1..* 1..* A. The Mapping Model: To identify features we rely on a mapping model between these features and object-oriented building elements (OBE). Object-oriented source code variations 17
  • 18. Approach Overview: For object-oriented source code, the mandatory features are realized by OBE that are common to all product variants. The optional features are realized by variable OBE that can appear in some product variants or in single product but not all product variants. We consider that a feature corresponds to one and only one set (group) of OBE. This means that a feature always has the same implementation in all products where it is present. 18
  • 19. Approach Overview: As a feature corresponds to one and only one set of OBE, then an optional feature is implemented by the same set of Variables OBE (VOBE) in all products where it is present. We define a block of variations (BV) as a set of VOBE which are always associated (i.e., which are always identified together in all the products in which they appear). The subsets of VOBE that belong to a BV and represent one and only one feature are called Atomic Blocks Of Variations (ABV). A BV is composed of set of ABVs. To determine its various parts (sub-groups), we rely on the clustering of the closest VOBEs considering the similarity measures that are related to LSI method. 19
  • 20. Approach Overview: An illustrative example: 20
  • 21. Approach Overview: B. Feature extraction process: The approach that we propose is illustrated in Figure below. Feature extraction process consists of the following steps: 1. OO Source code is analyzed to extract object-oriented building elements (packages, classes, methods, attributes) for all product variants. 2. Commonalities and variations are extracted for all product variants using FCA. “Blocks of variations are given by using FCA” 3. Blocks of variations are divided into atomic blocks of variations. Each atomic block of variations corresponds to one and only one feature. “using LSI and FCA“ 21
  • 22. Object-oriented source code variations: Package Variation Package Set Variation Package Content Variation Class Variation Class Content Variation Class Signature Variation Attributes Set Variation Methods Set Variation Method Variation Signature Body Attribute Variation ( Access Level, Data Type. etc.) 1: 2: 3: 4: (Name) (Name) Relationship Public , Private, ...Access Level Access Level Returned Data Type Parameters List order & data type Exception Local Variable Invocation Access 22
  • 23. Object-oriented source code variations example: Package Set Variation Package Content Variation 23
  • 24. Object-oriented building elements OBE: in our case each product variant PN is abstracted as a set of OBE as follow: OBE for PN ={ Package (name); Class (name, owner); Attribute (name, owner); Method (name, owner); Parameter (name, owner); Local Variable (name, owner); Method Invocation (name, accessed in, owner); Method Exception (name, owner)}. 24
  • 25. Commonality and variation identification using FCA: Formal context describing text editing systems by object-oriented building elements (OBE) In the Formal context products constitute the rows of the Table. In the Formal context OBE constitute the columns of the Table. 25
  • 26. Commonality and variation identification using FCA: The concept lattice for the formal context of previous Table. The common block Block of Variations 26
  • 27. Atomic block of variations (feature) identification using LSI and FCA: To identify the atomic block of variations that represent a single feature from a block of variations, we consider LSI and FCA to recover all atomic block of variations. 27
  • 28. Atomic block of variations (feature) identification using LSI and FCA: In our case, each line in the block of variations represents a single document and at the same time represents a query. . . 1 0.70 0.70 1 10 0 0 0 x x x x x0 0 0 0 The Similarity Matrix The Context (Similarity Matrix) For θ= 0.70 28
  • 29. Atomic block of variations (feature) identification using LSI and FCA: Concept lattice shows three atomic blocks of variations extracted from one block of variations. 29
  • 30. Related Work: Ziadi et al. [ZIA 12] propose an automatic approach for feature identification from source code for a set of product variants. 30 Their approach only investigates products in which the variability is represented in the name of classes, methods and attributes, without considering a product lines in which the variability is mainly represented in the body of methods
  • 31. Related Work: Ziadi approach gather all common features as a single mandatory feature under title base feature. We use FCA to extract commonalities and variations from product variants and distinguish between the mandatory features by using LSI and FCA based on the lexical similarity, and extracts all optional features and constraints such as: "and" and "require". 31
  • 32. Conclusion: In this paper, we proposed an approach based on FCA and LSI to extract a features from the object-oriented source code of software system variants. FCA can be used to extract common block and blocks of variations. LSI is used with FCA to recover atomic blocks of variations that represent a single feature, using the textual similarity. 32
  • 33. Future Work: We will use both textual and semantic similarity to determine more precisely each feature implementation from the OO source code . We will organize the extracted features as a feature model including all cross-tree constraints and group of feature constraints, using the information contained in the concept lattice. We will Integrate our approach with the linguistic matching techniques; in case product variants use different vocabulary to names packages, classes, attributes, and methods. 33
  • 34. [ZIA 12] ZIADI T., FRIAS L., DA SILVA M. A. A., ZIANE M., “Feature Identification from the Source Code of Product Variants”, MENS T. CLEVE A. F. R., Ed., Proceedings of the 15th European Conference on Software Maintenance and Reengineering, Los Alamitos, CA, USA, 2012, IEEE, p. 417–422. [CLE 01] CLEMENTS P. C., NORTHROP L. M., Software product lines: practices and patterns, Addison-Wesley, 2001. [JOH 09] JOHN I., EISENBARTH M., “A decade of scoping: a survey”, Proceedings of the 13th International Software Product Line Conference, Pittsburgh, PA, USA, 2009, Carnegie Mellon University, p. 31–40. [FIG 08] FIGUEIREDO E., CACHO N., SANT’ANNA C., MONTEIRO M., KULESZA U., GARCIA A., SOARES S., FERRARI F., KHAN S., CASTOR FILHO F., DANTAS F., “Evolving software product lines with aspects: an empirical study on design stability”, Proceedings of the 30th international conference on Software engineering, ICSE ’08, New York, NY, USA, 2008, ACM, p. 261-270. [CZA 00] CZARNECKI K., EISENECKER U. W., Generative programming: methods, tools, and applications, ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 2000. [POH 10] POHL K., BCKLE G., VAN DER LINDEN F. J., Software Product Line Engineering: Foundations, Principles and Techniques, Springer Publishing Company, Incorporated, 1stedition, 2010. [LOE 07] LOESCH F., PLOEDEREDER E., “Restructuring Variability in Software Product Lines using Concept Analysis of Product Configurations”, KRIKHAAR R. L. VERHOEF C. L. G. A. D., Ed., Proceedings of the 11th European Conference on Software Maintenance and Reengineering, Amsterdam, Netherlands, March 2007, IEEE, p. 159–170. [GAN 99] GANTER B., WILLE R., Formal Concept Analysis, Mathematical Foundations, Springer-Verlag, 1999. [BAR 70] BARBUT M., MONJARDET B., Ordre et Classification: Algèbre et combinatoire, vol. 2, Hachette, 1970. [DAV 11] DAVID B., LAWRIE D., “Information Retrieval Applications in Software Maintenance and Evolution”, In Encyclopedia of Software Engineering, 2011, p. 454-463. [SHE 11] SHE S., LOTUFO R., BERGER T., WASOWSKI A., CZARNECKI K., “Reverse engineering feature models”, ICSE, 2011, p. 461-470. [MAR 03] MARCUS A., MALETIC J. I., “Recovering documentation-to-source-code traceability links using latent semantic indexing”, Proceedings of the 25th International Conference on Software Engineering, ICSE ’03, Washington, DC, USA, 2003, IEEE Computer Society, p. 125–135. References: 34
  • 35. 35