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.

Lub: a DSL for Dynamic Context Oriented Programming

244 views

Published on

Presentation of IWST16, Prag

Video: https://www.youtube.com/watch?v=A1LvlT0_x3I

Published in: Software
  • Video: https://www.youtube.com/watch?v=A1LvlT0_x3I
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Lub: a DSL for Dynamic Context Oriented Programming

  1. 1. Lub A language for Dynamic Context Oriented Programming Steven Costiou Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec UMR CNRS 6285, Lab-STICC/MOCS Université de Bretagne Occidentale
  2. 2. Drone 1 + GPS Drone 2 + GPS Target
  3. 3. Drone 2 NO GPS GPS loss Drone 1 + GPS
  4. 4. Unanticipated
  5. 5. Unanticipated = Not foreseen at design time
  6. 6. Unanticipated = Not foreseen at design time = The behavior we need was not expected
  7. 7. ▪ Schéma 4 : Adaptation proposition GPS sharing Drone 1 + GPS Drone 2 NO GPS
  8. 8. Unanticipated behavior adaptation at runtime
  9. 9. Minimal anticipation
  10. 10. Minimal anticipation = Anticipate the need to face unanticipated adaptation
  11. 11. Minimal anticipation = Anticipate the need to face unanticipated adaptation = Build Support (frameworks)
  12. 12. Dynamic context oriented programming (COP)
  13. 13. What we adapt: Objects
  14. 14. ● Instance based adaptation ● Adapted object preserve their identity
  15. 15. How do we adapt ?
  16. 16. ● Free adaptation strategy ● Easy and controlled behavior selection
  17. 17. LUB An extension of Pharo
  18. 18. Behavior adaptation through dynamic lookup control
  19. 19. #pinPoint
  20. 20. Lookup base #pinPoint
  21. 21. Lookup starts in the object’s lookup base Lookup #pinPoint
  22. 22. New lookup base
  23. 23. lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker
  24. 24. bind
  25. 25. positionTracker lookupBase: lub. positionTracker pinPoint lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker
  26. 26. #pinPoint
  27. 27. #pinPoint
  28. 28. does-not-understand #pinPoint
  29. 29. does-not-understand #pinPoint
  30. 30. Selection of the behavior to adapt ?
  31. 31. lub := LookupBase named: ‘PeerTrackerLookupBase’ targetClass: PeerPositionTracker with: #(#pinPoint). positionTracker lookupBase: lub. positionTracker pinPoint. positionTracker position.
  32. 32. #pinPoint
  33. 33. #position
  34. 34. ● Instance based adaptation ● Adapted object preserve their identity Binding an object to a meta object that controls the lookup ● Free adaptation strategy ● Easy and controlled behavior selection
  35. 35. Issues ?
  36. 36. States consistency with an adaptation ?
  37. 37. pinpoint ^peerTracker pinPoint
  38. 38. Validation and consistency of the adapted behavior ?
  39. 39. Experiments on a physical device ?
  40. 40. Lub A language for Dynamic Context Oriented Programming Steven Costiou Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec UMR CNRS 6285, Lab-STICC/MOCS Université de Bretagne Occidentale

×