Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Prototyping Software Product Lines analysis with Pharo


Published on

Presentation of IWST16, Prag


Published in: Software
  • Video:
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Prototyping Software Product Lines analysis with Pharo

  1. 1. Prototyping So,ware product lines with Pharo Abdelghani Alidra Badji Mokhtar university- Algeria
  2. 2. About me and this project •  I am doing Phd on So,ware run@me adapta@on –  based on So,ware Product Lines (SPL) –  prototype new algorithms for SPL-based adapta@on planning –  focus on scalability issues –  enlarge the project to reasoning on features model using dependencies between features. → A simple API to do complex reasoning algos 2
  3. 3. So,ware Product Lines •  Is another step towards the industrializa@on of so,ware development. •  Addresses a par@cular market segment or domain •  Automo@ve (Renault) •  SmartPhones (Nokia) •  …. •  Can have impressive impact on costs and delays •  If there are a lot of products that vary by some aspects but that share many components
  4. 4. clients So,ware Factory 4 All phones most havea batery, asceen , a mic … BaQery life exclude large screen Videogames requires up to i5 processor Products Core assets Variability info HD camera requires HD screen Selec2on policies camera can be either HD or SD
  5. 5. Feature modeling Smart Phone Screen CPU Camera Audio I/O Storage HD SD BaQery internal external HD SD Double capacity Simple capacity Mandatory Op@onal Parent feature Sub features Xor Or Allows some kind of reasoning Require
  6. 6. Some reasoning algorithms Smart Phone Screen CPU Camera Audio I/O Storage HD SD BaQery internal external HD SD Double capacity Simple capacity Dead Features SPL validity Is a valid derivable product?
  7. 7. Reasoning on variability: exis@ng approaches •  Mainly SAT/CSP solvers •  Drawback – Consider direct dependencies only. – Example: 7 I want a phone with an HD camera. PLEASE…
  8. 8. Exis@ng approaches : cri@sism Smart Phone Screen CPU Camera Audio I/O Storage HD SD BaQery internal external HD SD Double capacity Simple capacity Step1: include parent and required features. Exclude alterna@ve feature Step2: include parent of Camera Step3: include all mandatory features Step4: include mandatory features of BaQery Step5: include Parent of external Step6: include required feature of HD sceern Step7: exclude alterna@ve of Screen-HD RECURSIVE Many minutes Feature knows all its dependencies
  9. 9. Our proposal : transi@ve dependencies •  We pre-compute all the dependencies of every feature. –  A Dijkstra like algorithm •  Every feature knows all the features that it directly or indirectly: –  requires –  excludes –  Is required by •  When a feature is set, it sets all the dependent ones in one step. 9
  10. 10. Our solu@on Smart Phone Screen CPU Camera Audio I/O Storage HD SD BaQery internal external HD SD Double capacity Simple capacity Camera-HD transi@vely requires: Camera, SmartPhone,Audio I/O, Screen, CPU, BaQery, SimpleCapacity, DoubleCapaciQy, SceenHD, External, Strorage. Camera-HD transi@vely excludes: Screen-SD One step instead of 7 steps
  11. 11. An infrastrucute for reasoning of large feature models 11 X-FAMILIAR: Our large SPLs analysis pladorm The Moose agile reengineering pladorm FAMILIAR Project FM Meta model Internal/external constraints visualiza@ons Extended FM Meta model Transi@ve Selec@on operator Dependencies generatorTransi@ve Features Dependencies Random FMs generator Dead Features Detec@on … Sa@sfiability Op@miza@on (GA) Visualiza@on Visualiza@on External parser/ reverse engineering engine XML Descriptor Visual FM Editor False op@onals Detec@on Decision Propaga@on Product valida@on
  12. 12. Evalua@on of the proposal •  Do algorithms based on transi@ve dependency perform beQer (faster) than exis@ng ones? •  The op@mal features selec@on problem (very complex) •  Two algorithms are compared: – GA of Guo et al – GA based on transi@ve dependency 12
  13. 13. Experimental results 0.00 500.00 1000.00 1500.00 2000.00 2500.00 100 200 500 800 1000 2000 13 99% gain of @me Number Of features Execu@on @me Gene@c Algorithm of GUO et al
  14. 14. Some issues though •  Not able to create FM larger than 5000 features because memory availability problems –  Spur will bring a solu@on? •  The gene@c algorithm of Guo et al is rather slow compared to one implemented in other languages (order of minutes/seconds) –  LiQle code op@miza@on –  The meta model is perhaps a bit complex –  maybe the Moose image and the VM compared to compiled languages 14
  15. 15. Future works •  Implement the other tools –  Agile Visualiza@ons –  Importer/exporter –  Visual editor –  Reverse engineering –  … •  Extend the meta model –  AQributes –  Complex crosstree constraints •  More comparisons –  Other reasoning algorithms –  SAT/CSP algorithms –  May be try some hybridiza@ons (SAT solver based on feature dependencies) •  Finish and Document the Gene@c Algorithms framwork –  Available at: hQp://!/~Alidra/Gene@cAlgorithmsFramework –  Please use it/contribute 15
  16. 16. 16 Thank you