SlideShare une entreprise Scribd logo
1  sur  37
Concept lattices: a representation
space to structure software variability
R. AL-msie’deen1, M. Huchard1, A.-D. Seriai1, C. Urtado2, S. Vauttier2and A. Al-Khlifat3
1LIRMM / CNRS & Montpellier 2 University, Montpellier, France
{al-msiedee, huchard, seriai}@lirmm.fr
2LGI2P / Ecole des Mines d’Al`es, Nˆımes, France
{Christelle.Urtado, Sylvain.Vauttier}@mines-ales.fr
3Al-Balqa’ Applied University Salt, Jordan
{amak n}@hotmail.com
1
Introduction
• Software variants
– Are similar software
• Share some features, called common features, and differ in
others, called optional features (variability)
• Software product Line (SPL)
– SPL supports efficient development of related software
products (software family) .
– Manages common and optional features (variability
management).
– Central and unique to SPLE is the management of
variability
2
The context
• Variability in SPL is an assumption about how members of a
family may differ from each other.
• Variability may be identified from different viewpoints.
• Feature model is presently the most popular technique to
model variability.
3
• Software Product Line
– Feature model (FM)
• Is a tree-like graph of features and relationships among
them (constraints)
• Used to represent commonality and variability of SPL
members at different levels of abstraction
The context
Software Product Line Engineering (SPLE):
• A software product line (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” [Clements, 2001].
5
Software Product Line Engineering (SPLE):
Domain Engineering Application Engineering
e.g., Source code
FM
F1 F0
Feature Model
F2
6
Reengineering existing software variants into a software product line.
Copy-paste-modify (delete, add, modify)
SPLE: Variability
• Central and unique to SPLE is the management of variability. It is one of the
fundamental principles to successful SPLE. Variability management of a product
family is the core aspect of SPLE [Al-Msie’deen, 2013].
Product Gamma
Product AlfaProduct Beta
The common source code elements
among all software product variants
The shared source code elements between Alfa and
Beta products
source code elements
unique to product Beta
8
SPLE: Feature Model
Fig. 1. Cell Phone SPL Feature Model (using FeatureIDE plugin).
Requires
Excludes
1. Group of features constraints : or + Xor
2. Cross-tree constraints
9
Issue
• Software variants
– Difficulties for :
• Reuse
• Maintenance
• Comprehension
• Impact analysis
• Software Product Line
– Design from scratch is a hard task (domain engineering)
10
Software_A
I1 I1I2 I3
Implementation Space
Software_B
F1 F1F2 F3
Feature Space
Our Goal
• Reengineering existing software variants into a
software product line.
A
C
B
3
AB
3 B
C
A
Formal concept analysis
Introduction: Formal Concept Analysis
• Formal Concept Analysis (FCA) is a theoretical framework
which structures a set of objects described by properties.
• Formal Concept Analysis is a classification technique that
takes data sets of objects and their attributes, and extracts
relations between these objects according to the attributes they
share.
• FCA is a methodology for: (application)
1 - data analysis, data mining.
2- knowledge representation.
12
Formal Concept Analysis: Formal Context
• 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.
flying nocturnal feathered migratory with crest with membrane
flying squirrel x X
bat X X X
ostrich X
flamingo X X X
chicken X X X
Table 1: A formal context for describing animals.
objects
attributes
13
Formal Concept Analysis: Formal Concept
• Formal Concept: Given a formal context K = (O, A, R), a
formal concept is a pair (E, I) composed of an object set E ⊆ O
and an attribute set I ⊆ A. E = {o ∈ O|∀a ∈ I, (o, a) ∈ R} is the
extent of the concept, I = {a ∈ A|∀o ∈ E, (o, a) ∈ R} is the
intent of the concept.
Intent
Extent
14
Formal Concept Analysis: Concept Lattice
• Let CK be the set of all concepts of a formal context K. This set
of concepts provided with the specialization order (CK, ≤s) has a
lattice structure, and is called the concept lattice associated with
K.
 Concept : maximal group of entities sharing characteristics.
 Concept lattice : concepts with a partial order relation.
15
Top Concept
Bottom Concept
Intent
Extent
Formal Concept
Figure 1: The concept lattice for the formal context of Table 1.
More general concept
More specific concept
16
Formal Concept Analysis: AOC-poset
• In our approach, we will consider the AOC-poset (without empty
concepts).
• The AOC-poset (for Attribute-Object-Concept poset) is the sub-order
of (CK, ≤s) restricted to object-concepts and attribute-concepts.
17
For our example, it would correspond to the concept lattice of Figure 1 deprived of
Concept_0, Concept_4 and Concept_5 (cf. Figure 2). Tools (rename).
Cont ….
Figure 2. The AOC-poset for the formal context of Table 1.
Concept Lattice & AOC-poset
• There is a drastic difference of complexity between the two
structures, because the concept lattice may have 2min(|O|,|A|) concepts,
while the number of concepts in the AOC-poset is bounded by
|O|+|A|.
• Algorithms for building AOC-posets are introduced in [Ganter,
1997].
• Extents and intents are presented in a simplified form, removing top-
down inherited attributes and bottom- up included objects.
19
SPL reverse engineering approaches
• Ziadi et al. [Ziadi, 2012] proposed semi-atomic approach to identify feature from
OO source code.
• Their approach takes as input the source code of a set of product variants.
• They propose an ad hoc algorithm to identify the feature candidates of a given set
of products.
• Their algorithm gathers all construction primitives that common to all product
variants as one feature (base feature).
• For the construction primitives that unique to a single product or common to two
or more products but not all products their algorithm gathers these construction
primitives as one feature.
 Feature Identification from the Source Code of Product Variants
20
SPL reverse engineering approaches
Table 3. A formal context describing bank systems by construction primitives.
CreatePackage(bs) … … … … … … … CreateAttribute(cons,Bank)
Product1Bank x … … … … … … … x
Product2Bank x … … … … … … …
Product3Bank x … … … … … … … x
Product4Bank x … … … … … … …
Product5Bank x … … … … … … … x
Product6Bank x … … … … … … …
Product7Bank x … … … … … … … x
Product8Bank x … … … … … … …
21
First, a formal context, where objects are product variants and
attributes are construction primitives (Table 3), is defined. The
corresponding AOC-poset is then calculated.
 Feature Identification from the Source Code of Product Variants
SPL reverse engineering approaches
In the AOC-poset, the intent of each concept represents
construction primitives common to two or more products.
As concepts of AOC-posets are ordered, the intent of the most
general (top) concept gathers primitives that are common to all
products. They constitute the mandatory features.
The intents of all remaining concepts are block of variation
(variability). They gather sets of primitives common to a subset
of products and correspond to the implementation of one or
more features. The extent of each of these concepts is the set
of products having these primitives in common.
22
 Feature Identification from the Source Code of Product Variants
Figure 5. Concept Lattice of formal context in Table 3.
Common features
Or
Mandatory
features
Variable features
Empty Concept
23
Figure 6. The AOC-poset for the FC of Table 3.
24
Excludes
Requires
SPL reverse engineering approaches
• Acher et al. [Acher, 2012] present an procedure (semi-automatic procedure) to
synthesize FM based on the product descriptions.
• Their approach takes as input product description for a collection of product variants
to build the FM.
• Products are described by characteristics (language, license) with different patterns
on values (many-valued, one-valued).
• Product descriptions are interpreted to build as much FMs as there are products.
• Finally, the FMs of the products are merged, producing a new FM that compactly
represents valid combinations of features supported by the set of products.
 Extracting Feature Models From Product Descriptions
25
SPL reverse engineering approaches
Table 4. A formal context describing wiki systems by characteristics.
License Unicode RSS … … LicenseCostFree Community
Confluence x x x … …
Pbwiki x x x … …
MoinMoin x x x … …
DokuWiki x x x … …
PmWiki x x x … …
DrupalWiki x x x … …
Twiki x x x … … x
MediaWiki x x x … …
The formal context, where objects are wiki variants and attributes
are characteristics (Table 4), is defined. The corresponding AOC-
poset is then calculated.
 Extracting Feature Models From Product Descriptions
Figure 5. Concept Lattice of formal context in Table 3.
Common features
feature Language_PHP requires feature Licence_GPL2
Atomic set of features
10,1,3
27
feature storage _files excludes feature LCF_Differeent L
requires
Cell phone SPL feature model
Excludes
Requires
SPLE: Software Configurations
Cell_Phone Wireless Infrared Bluetooth Accu_Cell Strong Medium Weak Display Games Multi_Player Single_Player Artificial_Opponent
P1 x x x x x x x
P2 x x x x x x x
P3 x x x x x x x
P4 x x x x x x x x x
P5 x x x x x x x x
P6 x x x x x x x x x x
P7 x x x x x x x x x
P8 x x x x x x x x
P9 x x x x x x x x x x
P10 x x x x x x x x x
P11 x x x x x x x x
P12 x x x x x x x x x x
P13 x x x x x x x x x
P14 x x x x x x x x x x
P15 x x x x x x x x x
P16 x x x x x x x x x x x
Table 2. product-by-feature matrix (i.e., formal context) of cell phone SPL.
29
Figure 3. The AOC-poset for the FC of Table 2.
SPLE: Restructuring Variability in SPLs using Concept Analysis of Product Configurations
30
Mandatory features
requires
Root feature
Tools:
• Erca plugin.
• Erca is a framework that eases the use of Formal and
Relational Concept Analysis, a neat clustering technique.
• Link: https://code.google.com/p/erca/
31
Conclusion
• In this paper, we focused on concept structures and the opportunities they
offer for structuring variability.
• Concept structures can be seen a summary of known data (artifacts,
features, etc.) for a set of products.
• In this paper, we revisit two papers (to show some illustrative example)
from the literature of the software product line domain. We point to key
contributions and limits of the representation of variability by concept
lattices, with illustrative examples. We present tools to implement the
approach and open a discussion.
32
Future Direction 1/2
• Reverse engineering feature models (FM) from software
variants source code (object-oriented).
• Feature location in collection of software product variants
(functional feature == source code implementation).
• Split source code elements of each concept into a set of
features based on the lexical similarity (based on LSI
method).
33
Future Direction 2/2
S/F F_1 F_2 F_3
S_1 x x
S_2 x x
S_3 x x
Reverse Engineering
Source code Configurations
Product-by-feature matrix
Feature model
Forward Engineering
Build systems
Reverse Engineering FMs
SynthesisFeature location & documentation
variant 1
Product configurations
Configuration files
Requirements
34
References
• [Ganter, 1997] B. Ganter and R. Wille, Formal Concept Analysis: Mathematical Foundations, 1st ed.
Secaucus, NJ, USA: Springer-Verlag New York, Inc., 1997.
• [Clements, 2001] P. C. Clements and L. M. Northrop, Software product lines: practices and patterns.
Addison-Wesley, 2001.
• [Al-Msie’deen, 2013] R. Al-Msie’deen, A. Seriai, M. Huchard, C. Urtado, S. Vauttier, and H. E. Salman,
“Feature location in a collection of software product variants using formal concept analysis,” in ICSR.
Springer, 2013, pp. 302–307.
• [Ziadi, 2012] T. Ziadi, L. Frias, M. A. A. da Silva, and M. Ziane, “Feature identification from the source
code of product variants,” in CSMR, 2012, pp. 417–422.
• [Acher, 2012] M. Acher, A. Cleve, G. Perrouin, P. Heymans, C. Vanbeneden, P. Collet, and P. Lahire, “On
extracting feature models from product descriptions,” in VaMoS, 2012, pp. 45–54.
35
Thank You For Your Attention
36
Concept lattices: a representation
space to structure software variability
R. AL-msie’deen1, M. Huchard1, A.-D. Seriai1, C. Urtado2, S. Vauttier2and A. Al-Khlifat3
1LIRMM / CNRS & Montpellier 2 University, Montpellier, France
{al-msiedee, huchard, seriai}@lirmm.fr
2LGI2P / Ecole des Mines d’Al`es, Nˆımes, France
{Christelle.Urtado, Sylvain.Vauttier}@mines-ales.fr
3Al-Balqa’ Applied University Salt, Jordan
{amak n}@hotmail.com
37

Contenu connexe

Tendances

Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Coen De Roover
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of PatternsChris Eargle
 
2013 bookmatter learn_javaforandroiddevelopment
2013 bookmatter learn_javaforandroiddevelopment2013 bookmatter learn_javaforandroiddevelopment
2013 bookmatter learn_javaforandroiddevelopmentCarlosPineda729332
 
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
 
Embedded architect a tool for early performance evaluation of embedded software
Embedded architect a tool for early performance evaluation of embedded softwareEmbedded architect a tool for early performance evaluation of embedded software
Embedded architect a tool for early performance evaluation of embedded softwareMr. Chanuwan
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppteShikshak
 
Basics of C programming
Basics of C programmingBasics of C programming
Basics of C programmingavikdhupar
 
Programming in C Presentation upto FILE
Programming in C Presentation upto FILEProgramming in C Presentation upto FILE
Programming in C Presentation upto FILEDipta Saha
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...Luca Berardinelli
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
 
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONS
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONSGENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONS
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONSijseajournal
 
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
 
What is keyword in c programming
What is keyword in c programmingWhat is keyword in c programming
What is keyword in c programmingRumman Ansari
 

Tendances (20)

Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
 
10. sub program
10. sub program10. sub program
10. sub program
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
HDL (hardware description language) presentation
HDL (hardware description language) presentationHDL (hardware description language) presentation
HDL (hardware description language) presentation
 
Pptchapter04
Pptchapter04Pptchapter04
Pptchapter04
 
2013 bookmatter learn_javaforandroiddevelopment
2013 bookmatter learn_javaforandroiddevelopment2013 bookmatter learn_javaforandroiddevelopment
2013 bookmatter learn_javaforandroiddevelopment
 
Functions
FunctionsFunctions
Functions
 
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...
 
C language ppt
C language pptC language ppt
C language ppt
 
Embedded architect a tool for early performance evaluation of embedded software
Embedded architect a tool for early performance evaluation of embedded softwareEmbedded architect a tool for early performance evaluation of embedded software
Embedded architect a tool for early performance evaluation of embedded software
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppt
 
Basics of C programming
Basics of C programmingBasics of C programming
Basics of C programming
 
Programming in C Presentation upto FILE
Programming in C Presentation upto FILEProgramming in C Presentation upto FILE
Programming in C Presentation upto FILE
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
ASE02 DMP.ppt
ASE02 DMP.pptASE02 DMP.ppt
ASE02 DMP.ppt
 
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONS
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONSGENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONS
GENERATING PYTHON CODE FROM OBJECT-Z SPECIFICATIONS
 
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
 
What is keyword in c programming
What is keyword in c programmingWhat is keyword in c programming
What is keyword in c programming
 
C by balaguruswami - e.balagurusamy
C   by balaguruswami - e.balagurusamyC   by balaguruswami - e.balagurusamy
C by balaguruswami - e.balagurusamy
 

Similaire à Concept lattices for structuring software variability

An Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeAn Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeRa'Fat Al-Msie'deen
 
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
 
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
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigmsIvano Malavolta
 
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 Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesAngelos Kapsimanis
 
object oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxobject oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxurvashipundir04
 
C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1ReKruiTIn.com
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019XavierDevroey
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1Shahzad
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaopenseesdays
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageAnton Kolotaev
 
Presentation1.2.pptx
Presentation1.2.pptxPresentation1.2.pptx
Presentation1.2.pptxpranaykusuma
 
Library management system
Library management systemLibrary management system
Library management systemSHARDA SHARAN
 
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDYPROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDYijseajournal
 

Similaire à Concept lattices for structuring software variability (20)

An Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeAn Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source Code
 
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
 
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
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
 
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 Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniquesSoftware Architectures, Week 2 - Decomposition techniques
Software Architectures, Week 2 - Decomposition techniques
 
object oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxobject oriented programming part inheritance.pptx
object oriented programming part inheritance.pptx
 
Unit 1
Unit  1Unit  1
Unit 1
 
C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1C, C++ Interview Questions Part - 1
C, C++ Interview Questions Part - 1
 
tutorialSCE
tutorialSCEtutorialSCE
tutorialSCE
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
Technical Interview
Technical InterviewTechnical Interview
Technical Interview
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition Language
 
Presentation1.2.pptx
Presentation1.2.pptxPresentation1.2.pptx
Presentation1.2.pptx
 
Wi Fi documantation
Wi Fi documantationWi Fi documantation
Wi Fi documantation
 
Library management system
Library management systemLibrary management system
Library management system
 
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDYPROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
PROPERTIES OF A FEATURE IN CODE-ASSETS: AN EXPLORATORY STUDY
 
Sample SRS format
Sample SRS formatSample SRS format
Sample SRS format
 

Plus de 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
 

Plus de 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"
 

Dernier

Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
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
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Dernier (20)

Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
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
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Concept lattices for structuring software variability

  • 1. Concept lattices: a representation space to structure software variability R. AL-msie’deen1, M. Huchard1, A.-D. Seriai1, C. Urtado2, S. Vauttier2and A. Al-Khlifat3 1LIRMM / CNRS & Montpellier 2 University, Montpellier, France {al-msiedee, huchard, seriai}@lirmm.fr 2LGI2P / Ecole des Mines d’Al`es, Nˆımes, France {Christelle.Urtado, Sylvain.Vauttier}@mines-ales.fr 3Al-Balqa’ Applied University Salt, Jordan {amak n}@hotmail.com 1
  • 2. Introduction • Software variants – Are similar software • Share some features, called common features, and differ in others, called optional features (variability) • Software product Line (SPL) – SPL supports efficient development of related software products (software family) . – Manages common and optional features (variability management). – Central and unique to SPLE is the management of variability 2
  • 3. The context • Variability in SPL is an assumption about how members of a family may differ from each other. • Variability may be identified from different viewpoints. • Feature model is presently the most popular technique to model variability. 3
  • 4. • Software Product Line – Feature model (FM) • Is a tree-like graph of features and relationships among them (constraints) • Used to represent commonality and variability of SPL members at different levels of abstraction The context
  • 5. Software Product Line Engineering (SPLE): • A software product line (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” [Clements, 2001]. 5
  • 6. Software Product Line Engineering (SPLE): Domain Engineering Application Engineering e.g., Source code FM F1 F0 Feature Model F2 6 Reengineering existing software variants into a software product line.
  • 8. SPLE: Variability • Central and unique to SPLE is the management of variability. It is one of the fundamental principles to successful SPLE. Variability management of a product family is the core aspect of SPLE [Al-Msie’deen, 2013]. Product Gamma Product AlfaProduct Beta The common source code elements among all software product variants The shared source code elements between Alfa and Beta products source code elements unique to product Beta 8
  • 9. SPLE: Feature Model Fig. 1. Cell Phone SPL Feature Model (using FeatureIDE plugin). Requires Excludes 1. Group of features constraints : or + Xor 2. Cross-tree constraints 9
  • 10. Issue • Software variants – Difficulties for : • Reuse • Maintenance • Comprehension • Impact analysis • Software Product Line – Design from scratch is a hard task (domain engineering) 10 Software_A I1 I1I2 I3 Implementation Space Software_B F1 F1F2 F3 Feature Space
  • 11. Our Goal • Reengineering existing software variants into a software product line. A C B 3 AB 3 B C A Formal concept analysis
  • 12. Introduction: Formal Concept Analysis • Formal Concept Analysis (FCA) is a theoretical framework which structures a set of objects described by properties. • Formal Concept Analysis is a classification technique that takes data sets of objects and their attributes, and extracts relations between these objects according to the attributes they share. • FCA is a methodology for: (application) 1 - data analysis, data mining. 2- knowledge representation. 12
  • 13. Formal Concept Analysis: Formal Context • 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. flying nocturnal feathered migratory with crest with membrane flying squirrel x X bat X X X ostrich X flamingo X X X chicken X X X Table 1: A formal context for describing animals. objects attributes 13
  • 14. Formal Concept Analysis: Formal Concept • Formal Concept: Given a formal context K = (O, A, R), a formal concept is a pair (E, I) composed of an object set E ⊆ O and an attribute set I ⊆ A. E = {o ∈ O|∀a ∈ I, (o, a) ∈ R} is the extent of the concept, I = {a ∈ A|∀o ∈ E, (o, a) ∈ R} is the intent of the concept. Intent Extent 14
  • 15. Formal Concept Analysis: Concept Lattice • Let CK be the set of all concepts of a formal context K. This set of concepts provided with the specialization order (CK, ≤s) has a lattice structure, and is called the concept lattice associated with K.  Concept : maximal group of entities sharing characteristics.  Concept lattice : concepts with a partial order relation. 15
  • 16. Top Concept Bottom Concept Intent Extent Formal Concept Figure 1: The concept lattice for the formal context of Table 1. More general concept More specific concept 16
  • 17. Formal Concept Analysis: AOC-poset • In our approach, we will consider the AOC-poset (without empty concepts). • The AOC-poset (for Attribute-Object-Concept poset) is the sub-order of (CK, ≤s) restricted to object-concepts and attribute-concepts. 17
  • 18. For our example, it would correspond to the concept lattice of Figure 1 deprived of Concept_0, Concept_4 and Concept_5 (cf. Figure 2). Tools (rename). Cont …. Figure 2. The AOC-poset for the formal context of Table 1.
  • 19. Concept Lattice & AOC-poset • There is a drastic difference of complexity between the two structures, because the concept lattice may have 2min(|O|,|A|) concepts, while the number of concepts in the AOC-poset is bounded by |O|+|A|. • Algorithms for building AOC-posets are introduced in [Ganter, 1997]. • Extents and intents are presented in a simplified form, removing top- down inherited attributes and bottom- up included objects. 19
  • 20. SPL reverse engineering approaches • Ziadi et al. [Ziadi, 2012] proposed semi-atomic approach to identify feature from OO source code. • Their approach takes as input the source code of a set of product variants. • They propose an ad hoc algorithm to identify the feature candidates of a given set of products. • Their algorithm gathers all construction primitives that common to all product variants as one feature (base feature). • For the construction primitives that unique to a single product or common to two or more products but not all products their algorithm gathers these construction primitives as one feature.  Feature Identification from the Source Code of Product Variants 20
  • 21. SPL reverse engineering approaches Table 3. A formal context describing bank systems by construction primitives. CreatePackage(bs) … … … … … … … CreateAttribute(cons,Bank) Product1Bank x … … … … … … … x Product2Bank x … … … … … … … Product3Bank x … … … … … … … x Product4Bank x … … … … … … … Product5Bank x … … … … … … … x Product6Bank x … … … … … … … Product7Bank x … … … … … … … x Product8Bank x … … … … … … … 21 First, a formal context, where objects are product variants and attributes are construction primitives (Table 3), is defined. The corresponding AOC-poset is then calculated.  Feature Identification from the Source Code of Product Variants
  • 22. SPL reverse engineering approaches In the AOC-poset, the intent of each concept represents construction primitives common to two or more products. As concepts of AOC-posets are ordered, the intent of the most general (top) concept gathers primitives that are common to all products. They constitute the mandatory features. The intents of all remaining concepts are block of variation (variability). They gather sets of primitives common to a subset of products and correspond to the implementation of one or more features. The extent of each of these concepts is the set of products having these primitives in common. 22  Feature Identification from the Source Code of Product Variants
  • 23. Figure 5. Concept Lattice of formal context in Table 3. Common features Or Mandatory features Variable features Empty Concept 23
  • 24. Figure 6. The AOC-poset for the FC of Table 3. 24 Excludes Requires
  • 25. SPL reverse engineering approaches • Acher et al. [Acher, 2012] present an procedure (semi-automatic procedure) to synthesize FM based on the product descriptions. • Their approach takes as input product description for a collection of product variants to build the FM. • Products are described by characteristics (language, license) with different patterns on values (many-valued, one-valued). • Product descriptions are interpreted to build as much FMs as there are products. • Finally, the FMs of the products are merged, producing a new FM that compactly represents valid combinations of features supported by the set of products.  Extracting Feature Models From Product Descriptions 25
  • 26. SPL reverse engineering approaches Table 4. A formal context describing wiki systems by characteristics. License Unicode RSS … … LicenseCostFree Community Confluence x x x … … Pbwiki x x x … … MoinMoin x x x … … DokuWiki x x x … … PmWiki x x x … … DrupalWiki x x x … … Twiki x x x … … x MediaWiki x x x … … The formal context, where objects are wiki variants and attributes are characteristics (Table 4), is defined. The corresponding AOC- poset is then calculated.  Extracting Feature Models From Product Descriptions
  • 27. Figure 5. Concept Lattice of formal context in Table 3. Common features feature Language_PHP requires feature Licence_GPL2 Atomic set of features 10,1,3 27 feature storage _files excludes feature LCF_Differeent L requires
  • 28. Cell phone SPL feature model Excludes Requires
  • 29. SPLE: Software Configurations Cell_Phone Wireless Infrared Bluetooth Accu_Cell Strong Medium Weak Display Games Multi_Player Single_Player Artificial_Opponent P1 x x x x x x x P2 x x x x x x x P3 x x x x x x x P4 x x x x x x x x x P5 x x x x x x x x P6 x x x x x x x x x x P7 x x x x x x x x x P8 x x x x x x x x P9 x x x x x x x x x x P10 x x x x x x x x x P11 x x x x x x x x P12 x x x x x x x x x x P13 x x x x x x x x x P14 x x x x x x x x x x P15 x x x x x x x x x P16 x x x x x x x x x x x Table 2. product-by-feature matrix (i.e., formal context) of cell phone SPL. 29
  • 30. Figure 3. The AOC-poset for the FC of Table 2. SPLE: Restructuring Variability in SPLs using Concept Analysis of Product Configurations 30 Mandatory features requires Root feature
  • 31. Tools: • Erca plugin. • Erca is a framework that eases the use of Formal and Relational Concept Analysis, a neat clustering technique. • Link: https://code.google.com/p/erca/ 31
  • 32. Conclusion • In this paper, we focused on concept structures and the opportunities they offer for structuring variability. • Concept structures can be seen a summary of known data (artifacts, features, etc.) for a set of products. • In this paper, we revisit two papers (to show some illustrative example) from the literature of the software product line domain. We point to key contributions and limits of the representation of variability by concept lattices, with illustrative examples. We present tools to implement the approach and open a discussion. 32
  • 33. Future Direction 1/2 • Reverse engineering feature models (FM) from software variants source code (object-oriented). • Feature location in collection of software product variants (functional feature == source code implementation). • Split source code elements of each concept into a set of features based on the lexical similarity (based on LSI method). 33
  • 34. Future Direction 2/2 S/F F_1 F_2 F_3 S_1 x x S_2 x x S_3 x x Reverse Engineering Source code Configurations Product-by-feature matrix Feature model Forward Engineering Build systems Reverse Engineering FMs SynthesisFeature location & documentation variant 1 Product configurations Configuration files Requirements 34
  • 35. References • [Ganter, 1997] B. Ganter and R. Wille, Formal Concept Analysis: Mathematical Foundations, 1st ed. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 1997. • [Clements, 2001] P. C. Clements and L. M. Northrop, Software product lines: practices and patterns. Addison-Wesley, 2001. • [Al-Msie’deen, 2013] R. Al-Msie’deen, A. Seriai, M. Huchard, C. Urtado, S. Vauttier, and H. E. Salman, “Feature location in a collection of software product variants using formal concept analysis,” in ICSR. Springer, 2013, pp. 302–307. • [Ziadi, 2012] T. Ziadi, L. Frias, M. A. A. da Silva, and M. Ziane, “Feature identification from the source code of product variants,” in CSMR, 2012, pp. 417–422. • [Acher, 2012] M. Acher, A. Cleve, G. Perrouin, P. Heymans, C. Vanbeneden, P. Collet, and P. Lahire, “On extracting feature models from product descriptions,” in VaMoS, 2012, pp. 45–54. 35
  • 36. Thank You For Your Attention 36
  • 37. Concept lattices: a representation space to structure software variability R. AL-msie’deen1, M. Huchard1, A.-D. Seriai1, C. Urtado2, S. Vauttier2and A. Al-Khlifat3 1LIRMM / CNRS & Montpellier 2 University, Montpellier, France {al-msiedee, huchard, seriai}@lirmm.fr 2LGI2P / Ecole des Mines d’Al`es, Nˆımes, France {Christelle.Urtado, Sylvain.Vauttier}@mines-ales.fr 3Al-Balqa’ Applied University Salt, Jordan {amak n}@hotmail.com 37