Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
ShowUs: Improved DoIt
ShowUs: Improved DoIt
Loading in …3
×

Check these out next

1 of 43 Ad

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

Download to read offline

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

Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval

IWST 2022

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

Boubou Thiam Niang, Giacomo Kahn, Nawel Amokrane, Yacine Ouzrout, Mustapha Derras and Jannik Laval

IWST 2022

Advertisement
Advertisement

More Related Content

Advertisement

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

  1. 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. 2. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Context – SPL Engineering 12 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  13. 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. 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. 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. 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. 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. 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. 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. 20. DeltaJava 20 Delta operation Core Class Decorator Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  21. 21. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  22. 22. Use case – Variability in connectors 22 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  23. 23. Use case – Variability in connectors 23 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  24. 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. 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. 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. 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. 28. Details of the process – Application Engineering 28 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  29. 29. Details of the process – Application Engineering 29 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  30. 30. Details of the process – Application Engineering 30 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  31. 31. Details of the process – Application Engineering 31 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  32. 32. Details of the process – Application Engineering 32 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  33. 33. Details of the process – Application Engineering 33 Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout"
  34. 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. 35. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  36. 36. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 36
  37. 37. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 37
  38. 38. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 38
  39. 39. The tool prototype Modifier Titre : Insertion>En-tête/Pied>Compléter le titre puis "Appliquer Partout" 39
  40. 40. Context Illustrative case study Overview of the tool prototype Ongoing and future work Outline
  41. 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. 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. 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"

×