SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
1
Using Moose platform for the implementation of a
Software Product Line according to Model-Based
Delta-Oriented Programming
IWST22 — International Workshop on Smalltalk Technologies
Novi Sad, Serbia; August 24th-26th, 2022
Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context
Illustrative case study
Overview of the tool prototype
Ongoing and future work
Outline
Context – Software providers
▪ Software companies provide dozens of products to customers.
3
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Software providers
▪ Software companies provide dozens of products to different customers.
▪ Products can share common characteristics.
4
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Constantly evolving systems
▪ Products represent business applications and technical components.
5
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Constantly evolving systems
▪ Products represent business applications and technical components.
▪ Systems and components are constantly evolving.
6
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Constantly evolving systems
▪ Products represent business applications and technical components.
▪ Systems and components are constantly evolving.
▪ We need to increase the reusability of functionality across multiple products.
7
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Common reuse approach
▪ Clone-and-Own (CaO)
8
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Common reuse approach
▪ Clone-and-Own (CaO)
▪ Component-Based Software Engineering: limited possibility
9
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Common reuse approaches
▪ Clone-and-Own (CaO)
▪ Component-Based Software Engineering: limited possibility
▪ Software Product Line
10
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – Software Product Line
11
▪ Software Product Line
• A set of products with common
• Variability is applied to create a specific software
Interface
Interface
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – SPL Engineering
12
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – SPL implementation
13
▪ Paradigms
Interface
Interface
Paradigms Approaches Approaches comment
Feature oriented programming (FOP) [Ferreira et al., 2014]
Compositional
(positive
variability)
• Implement feature as distinct
code units.
• Generate a product for a
feature selection, the
corresponding code units are
determined and composed.
Aspect-Oriented Programming (AOP) [Kiczales et al., 1997]
Delta-Oriented Programming (DOP) [Schulze et al., 2013]
Preprocessor [Kästner 2013]
Annotative
(Negative
variability)
Implement features with some
form of explicit or implicit
annotations in the source code
(Preprocessor #ifdef…endIf)
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context – SPL implementation
14
▪ Paradigms
▪ We opt for DOP paradigms
Interface
Interface
Paradigms Approaches Approaches comment
Feature oriented programming (FOP) [Ferreira et al., 2014]
Compositional
(positive
variability)
• Implement feature as distinct
code units.
• Generate a product for a
feature selection, the
corresponding code units are
determined and composed.
Aspect-Oriented Programming (AOP) [Kiczales et al., 1997]
Delta-Oriented Programming (DOP) [Schulze et al., 2013]
Preprocessor [Kästner 2013]
Annotative
(Negative
variability)
Implement features with some
form of explicit or implicit
annotations in the source code
(Preprocessor #ifdef…endIf)
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Positioning – DOP paradigms
▪ Delta-Oriented Programming
• A recent paradigm for the implementation of software product lines.
15
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Positioning – DOP paradigms
▪ Delta-Oriented Programming
• A recent paradigm for the implementation of software product lines.
▪ Delta-Oriented Programming principle
16
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Positioning – DOP paradigms
▪ Delta-Oriented Programming
• A recent paradigm for the implementation of software product lines.
▪ Delta-Oriented Programming principle
▪ Motivation for using Delta-Oriented Programming
• Its ability to introduce variability into an existing software product
• Interesting for ensuring the scalability of software and systems.
17
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Problem
18
▪ Not many examples of concrete implementations the DOP
• Lack of tools
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Problem
19
▪ Not many examples of concrete implementations the DOP
• Lack of tools
▪ There two main tools
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
DeltaJava
20
Delta operation
Core Class
Decorator
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context
Illustrative case study
Overview of the tool prototype
Ongoing and future work
Outline
Use case – Variability in connectors
22
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Use case – Variability in connectors
23
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Domain Engineering
24
▪ Variability analysis
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Domain Engineering
25
▪ Variability modeling
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Domain Engineering
26
▪ The software product line implementation using the Delta-Oriented Programming.
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Domain Engineering
27
▪ The software product line implementation using the Delta-Oriented Programming.
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
28
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
29
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
30
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
31
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
32
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Details of the process – Application Engineering
33
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Tool Perimeter
▪ Software Product Line steps covered by the process.
34
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Context
Illustrative case study
Overview of the tool prototype
Ongoing and future work
Outline
The tool prototype
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 36
The tool prototype
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 37
The tool prototype
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 38
The tool prototype
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 39
Context
Illustrative case study
Overview of the tool prototype
Ongoing and future work
Outline
Progression
▪ Ongoing work
• Parser
→ Metamodel of feature model
→ Population of the metamodel and generating the Expression Product Line (EPL)
• Generation of the EPL
41
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Progression
▪ Ongoing work
• Parser
→ Metamodel of feature model
→ Population of the metamodel and generating the Expression Product Line (EPL)
• Generation of the EPL
▪ Future work
• Validation of the Expression product Line
• Configurator interface
• The model difference calculation engine
→ Plan to exploit Orion and the FamixDiff Project
• Derivation engine
42
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
Thank you. Question?
43
Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval
Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"

Mais conteúdo relacionado

Semelhante a Using Moose platform for the implementation of a Software Product Line according to Model-Based Delta-Oriented Programming

Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
itSMF France
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
Marc Bojoly
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
TasnimBenAmmar
 
Eurocopter L’approche par l’amélioration continue
Eurocopter L’approche par l’amélioration continueEurocopter L’approche par l’amélioration continue
Eurocopter L’approche par l’amélioration continue
itSMF France
 

Semelhante a Using Moose platform for the implementation of a Software Product Line according to Model-Based Delta-Oriented Programming (20)

Code, ship and run
Code, ship and runCode, ship and run
Code, ship and run
 
Conception assistée de documents structurés - Cas client Eurocopter
Conception assistée de documents structurés - Cas client EurocopterConception assistée de documents structurés - Cas client Eurocopter
Conception assistée de documents structurés - Cas client Eurocopter
 
SIP@iPLM2015
SIP@iPLM2015SIP@iPLM2015
SIP@iPLM2015
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
 
templates.iafactory, guide de prise en main
templates.iafactory, guide de prise en maintemplates.iafactory, guide de prise en main
templates.iafactory, guide de prise en main
 
Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
Gestions des Asset et des changements appliquées au Datacenter: Du concept à ...
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Perf university
Perf universityPerf university
Perf university
 
Zoom sur le Métier de Développeur
Zoom sur le Métier de DéveloppeurZoom sur le Métier de Développeur
Zoom sur le Métier de Développeur
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
 
Eurocopter L’approche par l’amélioration continue
Eurocopter L’approche par l’amélioration continueEurocopter L’approche par l’amélioration continue
Eurocopter L’approche par l’amélioration continue
 
Alphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentaux
 
Architecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisationArchitecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisation
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeks
 

Mais de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mais de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Using Moose platform for the implementation of a Software Product Line according to Model-Based Delta-Oriented Programming

  • 1. 1 Using Moose platform for the implementation of a Software Product Line according to Model-Based Delta-Oriented Programming IWST22 — International Workshop on Smalltalk Technologies Novi Sad, Serbia; August 24th-26th, 2022 Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 2. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  • 3. Context – Software providers ▪ Software companies provide dozens of products to customers. 3 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 4. Context – Software providers ▪ Software companies provide dozens of products to different customers. ▪ Products can share common characteristics. 4 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 5. Context – Constantly evolving systems ▪ Products represent business applications and technical components. 5 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 6. Context – Constantly evolving systems ▪ Products represent business applications and technical components. ▪ Systems and components are constantly evolving. 6 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 7. Context – Constantly evolving systems ▪ Products represent business applications and technical components. ▪ Systems and components are constantly evolving. ▪ We need to increase the reusability of functionality across multiple products. 7 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 8. Context – Common reuse approach ▪ Clone-and-Own (CaO) 8 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 9. Context – Common reuse approach ▪ Clone-and-Own (CaO) ▪ Component-Based Software Engineering: limited possibility 9 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 10. Context – Common reuse approaches ▪ Clone-and-Own (CaO) ▪ Component-Based Software Engineering: limited possibility ▪ Software Product Line 10 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 11. Context – Software Product Line 11 ▪ Software Product Line • A set of products with common • Variability is applied to create a specific software Interface Interface Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 12. Context – SPL Engineering 12 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 13. Context – SPL implementation 13 ▪ Paradigms Interface Interface Paradigms Approaches Approaches comment Feature oriented programming (FOP) [Ferreira et al., 2014] Compositional (positive variability) • Implement feature as distinct code units. • Generate a product for a feature selection, the corresponding code units are determined and composed. Aspect-Oriented Programming (AOP) [Kiczales et al., 1997] Delta-Oriented Programming (DOP) [Schulze et al., 2013] Preprocessor [Kästner 2013] Annotative (Negative variability) Implement features with some form of explicit or implicit annotations in the source code (Preprocessor #ifdef…endIf) Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 14. Context – SPL implementation 14 ▪ Paradigms ▪ We opt for DOP paradigms Interface Interface Paradigms Approaches Approaches comment Feature oriented programming (FOP) [Ferreira et al., 2014] Compositional (positive variability) • Implement feature as distinct code units. • Generate a product for a feature selection, the corresponding code units are determined and composed. Aspect-Oriented Programming (AOP) [Kiczales et al., 1997] Delta-Oriented Programming (DOP) [Schulze et al., 2013] Preprocessor [Kästner 2013] Annotative (Negative variability) Implement features with some form of explicit or implicit annotations in the source code (Preprocessor #ifdef…endIf) Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 15. Positioning – DOP paradigms ▪ Delta-Oriented Programming • A recent paradigm for the implementation of software product lines. 15 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 16. Positioning – DOP paradigms ▪ Delta-Oriented Programming • A recent paradigm for the implementation of software product lines. ▪ Delta-Oriented Programming principle 16 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 17. Positioning – DOP paradigms ▪ Delta-Oriented Programming • A recent paradigm for the implementation of software product lines. ▪ Delta-Oriented Programming principle ▪ Motivation for using Delta-Oriented Programming • Its ability to introduce variability into an existing software product • Interesting for ensuring the scalability of software and systems. 17 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 18. Problem 18 ▪ Not many examples of concrete implementations the DOP • Lack of tools Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 19. Problem 19 ▪ Not many examples of concrete implementations the DOP • Lack of tools ▪ There two main tools Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 20. DeltaJava 20 Delta operation Core Class Decorator Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 21. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  • 22. Use case – Variability in connectors 22 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 23. Use case – Variability in connectors 23 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 24. Details of the process – Domain Engineering 24 ▪ Variability analysis Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 25. Details of the process – Domain Engineering 25 ▪ Variability modeling Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 26. Details of the process – Domain Engineering 26 ▪ The software product line implementation using the Delta-Oriented Programming. Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 27. Details of the process – Domain Engineering 27 ▪ The software product line implementation using the Delta-Oriented Programming. Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 28. Details of the process – Application Engineering 28 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 29. Details of the process – Application Engineering 29 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 30. Details of the process – Application Engineering 30 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 31. Details of the process – Application Engineering 31 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 32. Details of the process – Application Engineering 32 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 33. Details of the process – Application Engineering 33 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 34. Tool Perimeter ▪ Software Product Line steps covered by the process. 34 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 35. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  • 36. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 36
  • 37. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 37
  • 38. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 38
  • 39. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 39
  • 40. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  • 41. Progression ▪ Ongoing work • Parser → Metamodel of feature model → Population of the metamodel and generating the Expression Product Line (EPL) • Generation of the EPL 41 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 42. Progression ▪ Ongoing work • Parser → Metamodel of feature model → Population of the metamodel and generating the Expression Product Line (EPL) • Generation of the EPL ▪ Future work • Validation of the Expression product Line • Configurator interface • The model difference calculation engine → Plan to exploit Orion and the FamixDiff Project • Derivation engine 42 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  • 43. Thank you. Question? 43 Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"