An expressive and modular layer activation mechanism for Context-Oriented Programming

被引:2
|
作者
Leger, Paul [1 ]
Cardozo, Nicolas [2 ]
Masuhara, Hidehiko [3 ]
机构
[1] Univ Catolica Norte, Escuela Ingeniria, Coquimbo, Chile
[2] Univ Andes, Syst & Comp Engn Dept, Bogota, Colombia
[3] Tokyo Inst Technol, Tokyo, Japan
关键词
Context -Oriented Programming; Activation mechanisms; EMA; LANGUAGE;
D O I
10.1016/j.infsof.2022.107132
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context. There is a trend in the software industry towards building systems that dynamically adapt their behavior in response to their surrounding environment, given the proliferation of various technological devices, such as notebooks, smartphones, and wearables, capable of capturing their execution context. Context-oriented Programming (COP) allows developers to use layer abstractions to adapt software behavior to the context. A layer is associated with a context and can be dynamically activated in direct response to gathered information from its surrounding execution environment. However, most existing layer activation mechanisms have been tailored specifically to address a particular concern; implying that developers need to tweak layer definitions in contortive ways or create new specialized activation mechanisms altogether if their specific needs are not supported. Objective. Complementing ideas to expressively declare activation mechanism models with interfaces that define conditionals of activation mechanisms modularly, this paper proposes an Expressive and Modular Activation mechanism, named EMA. Method. To propose EMA, we analyze existing activation mechanisms in COP regarding activation features and scope strategies. After, we propose the design of EMA and validate it with a case study discussion. Results. Using a concrete JavaScript implementation of EMA, named EMAjs, we can implement two Web applications: a smartphone application as an example to illustrate EMAjs in action, and an application of home automation to discuss and compare our proposal. Conclusions. Our proposed mechanism allows developers to instantiate different activation scope strategies and interfaces to decouple the declaration of activation mechanism conditionals from the base code.
引用
收藏
页数:14
相关论文
共 50 条
  • [21] An open implementation for context-oriented layer composition in ContextJS']JS
    Lincke, Jens
    Appeltauer, Malte
    Steinert, Bastian
    Hirschfeld, Robert
    SCIENCE OF COMPUTER PROGRAMMING, 2011, 76 (12) : 1194 - 1209
  • [22] Prototype of FPGA Dynamic Reconfiguration based-on Context-Oriented Programming
    Ohkawa, Takeshi
    Tanigawa, Ikuta
    Sato, Mikiko
    Hisazumi, Kenji
    Ogura, Nobuhiko
    Watanabe, Harumi
    2019 IEEE 13TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC 2019), 2019, : 116 - 122
  • [23] Programming language implementations for context-oriented self-adaptive systems
    Cardozo, Nicolas
    Mens, Kim
    INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 143
  • [24] Next Generation Context-oriented Programming: Embracing Dynamic Generation of Adaptations
    Cardozo, Nicolas
    Dusparic, Ivana
    JOURNAL OF OBJECT TECHNOLOGY, 2022, 21 (02):
  • [25] Context-oriented domain analysis
    Desmet, Brecht
    Vallejos, Jorge
    Costanza, Pascal
    De Meuter, Wolfgang
    D'Hondt, Theo
    MODELING AND USING CONTEXT, 2007, 4635 : 178 - +
  • [26] Context-oriented image retrieval
    O'Sullivan, D
    McLoughlin, E
    Bertolotto, M
    Wilson, D
    MODELING AND USING CONTEXT, PROCEEDINGS, 2005, 3554 : 339 - 352
  • [27] Proceedings of the 12th InternationalWorkshop on Context-Oriented Programming and Advanced Modularity
    Proceedings of the 12th International Workshop on Context-Oriented Programming and Advanced Modularity, COP 2020, 2020,
  • [28] A Context-Oriented Extension of F#
    Canciani, Andrea
    Degano, Pierpaolo
    Ferrari, Gian-Luigi
    Galletta, Letterio
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2015, (201): : 18 - 32
  • [29] Requirements Analysis for Context-oriented Systems
    Kirsch-Pinheiro, Manuele
    Mazo, Raul
    Souveyet, Carine
    Sprovieri, Danillo
    7TH INTERNATIONAL CONFERENCE ON AMBIENT SYSTEMS, NETWORKS AND TECHNOLOGIES (ANT 2016) / THE 6TH INTERNATIONAL CONFERENCE ON SUSTAINABLE ENERGY INFORMATION TECHNOLOGY (SEIT-2016) / AFFILIATED WORKSHOPS, 2016, 83 : 253 - 261
  • [30] Language Abstractions and Techniques for Developing Collective Adaptive Systems Using Context-oriented Programming
    Cardozo, Nicolas
    Dusparic, Ivana
    2020 IEEE INTERNATIONAL CONFERENCE ON AUTONOMIC COMPUTING AND SELF-ORGANIZING SYSTEMS COMPANION (ACSOS-C 2020), 2020, : 133 - 138