SlideShare a Scribd company logo
1 of 36
Download to read offline
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 speciļ¬c 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 deļ¬ne a block of variations (BV) as a set of VOBE which are always associated (i.e., which are
always identiļ¬ed 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 identiļ¬cation 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 identiļ¬cation using FCA:
The concept lattice for the formal context of previous Table.
The common block
Block of Variations
26
Atomic block of variations (feature) identiļ¬cation 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) identiļ¬cation 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) identiļ¬cation 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 identiļ¬cation 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 Identiļ¬cation 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
Conļ¬gurationsā€, 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 Classiļ¬cation: 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:

More Related Content

What's hot

A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...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...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 VObject oriented design-UNIT V
Object oriented design-UNIT VAzhar Shaik
Ā 
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)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 introductionVhdl introduction
Vhdl introductionashokqis
Ā 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...Shinpei Hayashi
Ā 
The Database Environment Chapter 14
The Database Environment Chapter 14The Database Environment Chapter 14
The Database Environment Chapter 14Jeanie Arnoco
Ā 
Programming in c++ ppt
Programming in c++ pptProgramming in c++ ppt
Programming in c++ pptMalarMohana
Ā 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2Techglyphs
Ā 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsShanmuganathan C
Ā 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLSSBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLScsandit
Ā 
Vb net xp_04
Vb net xp_04Vb net xp_04
Vb net xp_04Niit Care
Ā 
A Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol ApplicationsA Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol ApplicationsCognizant
Ā 
Ch 12 O O D B Dvlpt
Ch 12  O O  D B  DvlptCh 12  O O  D B  Dvlpt
Ch 12 O O D B Dvlptguest8fdbdd
Ā 
Interoduction to c++
Interoduction to c++Interoduction to c++
Interoduction to c++Amresh Raj
Ā 

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...A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
A Case Elaboration Methodology for a Semantic Web Service Discovery System Ba...
Ā 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Ā 
Object oriented design-UNIT V
Object oriented design-UNIT VObject oriented design-UNIT V
Object oriented design-UNIT V
Ā 
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Ā 
Vhdl introduction
Vhdl introductionVhdl introduction
Vhdl introduction
Ā 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
Ā 
The Database Environment Chapter 14
The Database Environment Chapter 14The Database Environment Chapter 14
The Database Environment Chapter 14
Ā 
Programming in c++ ppt
Programming in c++ pptProgramming in c++ ppt
Programming in c++ ppt
Ā 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2
Ā 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
Ā 
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLSSBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
SBML FOR OPTIMIZING DECISION SUPPORT'S TOOLS
Ā 
Vb net xp_04
Vb net xp_04Vb net xp_04
Vb net xp_04
Ā 
A Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol ApplicationsA Checklist for Migrating Big Iron Cobol Applications
A Checklist for Migrating Big Iron Cobol Applications
Ā 
Ch 12 O O D B Dvlpt
Ch 12  O O  D B  DvlptCh 12  O O  D B  Dvlpt
Ch 12 O O D B Dvlpt
Ā 
Interoduction to c++
Interoduction to c++Interoduction to c++
Interoduction to c++
Ā 

Similar to Recover Feature Models from OO Code

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 VariantsRa'Fat Al-Msie'deen
Ā 
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 Languagesfranciscoortin
Ā 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Mumbai Academisc
Ā 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
Ā 
Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...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 Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionA Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionJames Heller
Ā 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software qualityUtkarsh Agarwal
Ā 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...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
Ā 
Software Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of ClonesSoftware Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of ClonesRSIS International
Ā 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...ijseajournal
Ā 
Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...ijseajournal
Ā 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...ijseajournal
Ā 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principlesdeonpmeyer
Ā 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSijseajournal
Ā 
Searching Repositories of Web Application Models
Searching Repositories of Web Application ModelsSearching Repositories of Web Application Models
Searching Repositories of Web Application ModelsMarco Brambilla
Ā 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design SolidSai Venkat
Ā 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationCoen De Roover
Ā 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigmsIvano Malavolta
Ā 

Similar to Recover Feature Models from OO Code (20)

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
Ā 
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
Ā 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...
Ā 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Ā 
Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...Feature location in a collection of software product variants using formal co...
Feature location in a collection of software product variants using formal co...
Ā 
A Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism DetectionA Source Code Similarity System For Plagiarism Detection
A Source Code Similarity System For Plagiarism Detection
Ā 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
Ā 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...
Ā 
Software Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of ClonesSoftware Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of Clones
Ā 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
Ā 
Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...
Ā 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
Ā 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
Ā 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
Ā 
Searching Repositories of Web Application Models
Searching Repositories of Web Application ModelsSearching Repositories of Web Application Models
Searching Repositories of Web Application Models
Ā 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
Ā 
Unit i
Unit iUnit i
Unit i
Ā 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X Transformation
Ā 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
Ā 
4213ijsea02
4213ijsea024213ijsea02
4213ijsea02
Ā 

More from 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.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'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.pdfRa'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 ReportsRa'Fat Al-Msie'deen
Ā 
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...Ra'Fat Al-Msie'deen
Ā 
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...Ra'Fat Al-Msie'deen
Ā 
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...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 ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachRa'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
Ā 
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 variantsRa'Fat Al-Msie'deen
Ā 
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 CodeRa'Fat Al-Msie'deen
Ā 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignRa'Fat Al-Msie'deen
Ā 
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 documentationRa'Fat Al-Msie'deen
Ā 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change managementRa'Fat Al-Msie'deen
Ā 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineeringRa'Fat Al-Msie'deen
Ā 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineeringRa'Fat Al-Msie'deen
Ā 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - referencesRa'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

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
Ā 
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”soniya singh
Ā 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
Ā 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
Ā 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
Ā 
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...soniya singh
Ā 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
Ā 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
Ā 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
Ā 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
Ā 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
Ā 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
Ā 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto GonzƔlez Trastoy
Ā 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
Ā 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
Ā 

Recently uploaded (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
Ā 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Ā 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Ā 
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Call Girls in Naraina Delhi šŸ’ÆCall Us šŸ”8264348440šŸ”
Ā 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Ā 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
Ā 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Ā 
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi āž”ļø 8264348440 šŸ’‹šŸ“ž Independent Escort S...
Ā 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
Ā 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Ā 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
Ā 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Ā 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
Ā 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
Ā 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Ā 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
Ā 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
Ā 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Ā 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Ā 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
Ā 

Recover Feature Models from OO 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 speciļ¬c 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 deļ¬ne a block of variations (BV) as a set of VOBE which are always associated (i.e., which are always identiļ¬ed 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 identiļ¬cation 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 identiļ¬cation 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) identiļ¬cation 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) identiļ¬cation 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) identiļ¬cation 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 identiļ¬cation 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 Identiļ¬cation 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 Conļ¬gurationsā€, 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 Classiļ¬cation: 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