Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Lub
A language for Dynamic Context
Oriented Programming
Steven Costiou
Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec
UMR ...
Drone 1 + GPS
Drone 2 + GPS
Target
Drone 2 NO GPS
GPS loss
Drone 1 + GPS
Unanticipated
Unanticipated
=
Not foreseen at design time
Unanticipated
=
Not foreseen at design time
=
The behavior we need was
not expected
▪ Schéma 4 : Adaptation proposition
GPS sharing
Drone 1 + GPS
Drone 2 NO GPS
Unanticipated behavior
adaptation at runtime
Minimal anticipation
Minimal anticipation
=
Anticipate the need to face
unanticipated adaptation
Minimal anticipation
=
Anticipate the need to face
unanticipated adaptation
=
Build Support
(frameworks)
Dynamic context oriented
programming (COP)
What we adapt:
Objects
● Instance based adaptation
● Adapted object preserve
their identity
How do we adapt ?
● Free adaptation strategy
● Easy and controlled
behavior selection
LUB
An extension of Pharo
Behavior adaptation through
dynamic lookup control
#pinPoint
Lookup base
#pinPoint
Lookup starts in the
object’s lookup base
Lookup
#pinPoint
New lookup base
lub := LookupBase
named: ‘PeerTrackerLookupBase’
targetClass: PeerPositionTracker
bind
positionTracker lookupBase: lub.
positionTracker pinPoint
lub := LookupBase
named: ‘PeerTrackerLookupBase’
targetClass: Pe...
#pinPoint
#pinPoint
does-not-understand
#pinPoint
does-not-understand
#pinPoint
Selection of the behavior to
adapt ?
lub := LookupBase
named: ‘PeerTrackerLookupBase’
targetClass: PeerPositionTracker
with: #(#pinPoint).
positionTracker look...
#pinPoint
#position
● Instance based
adaptation
● Adapted object
preserve their identity
Binding an object to a meta
object that controls the ...
Issues ?
States consistency with an
adaptation ?
pinpoint
^peerTracker pinPoint
Validation and consistency of
the adapted behavior ?
Experiments on a physical
device ?
Lub
A language for Dynamic Context
Oriented Programming
Steven Costiou
Mickaël Kerboeuf, Glenn Cavarlé, Alain Plantec
UMR ...
Lub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented Programming
Lub: a DSL for Dynamic Context Oriented Programming
Nächste SlideShare
Wird geladen in …5
×

Lub: a DSL for Dynamic Context Oriented Programming

252 Aufrufe

Veröffentlicht am

Presentation of IWST16, Prag

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

Veröffentlicht in: Software
  • Video: https://www.youtube.com/watch?v=A1LvlT0_x3I
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Gehören Sie zu den Ersten, denen das gefällt!

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

×