Context-Oriented Behavioral Programming

被引:13
|
作者
Elyasaf, Achiya [1 ]
机构
[1] Ben Gurion Univ Negev, Dept Software & Informat Syst Engn, Beer Sheva, Israel
关键词
Behavioral programming; Scenario-based programming; Programming paradigm; Context awareness; Context-oriented programming; Context-Oriented Behavioral Programming;
D O I
10.1016/j.infsof.2020.106504
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: Modern systems require programmers to develop code that dynamically adapts to different contexts, leading to the evolution of new context-oriented programming languages. These languages introduce new software-engineering challenges, such as: how to maintain the separation of concerns of the codebase? how to model the changing behaviors? how to verify the system behavior? and more. Objective: This paper introduces Context-Oriented Behavioral Programming (COBP) - a novel paradigm for developing context-aware systems, centered on natural and incremental specification of context-dependent behaviors. As the name suggests, we combine behavioral-programming (BP) - a scenario-based modeling paradigm - with context idioms that explicitly specify when scenarios are relevant and what information they need. The core idea is to connect the behavioral model with a data model that represents the context, allowing an intuitive connection between the models via update and select queries. Combining behavioral-programming with context-oriented programming brings the best of the two worlds, solving issues that arise when using each of the approaches in separation. Methods: We begin with providing abstract semantics for COBP and two implementations for the semantics, laying the foundations for applying reasoning algorithms to context-aware behavioral programs. Next, we exemplify the semantics with formal specifications of systems, including a variant of Conway's Game of Life. Then, we provide two case studies of real-life context-aware systems (one in robotics and another in IoT) that were developed using this tool. Throughout the examples and case studies, we provide design patterns and a methodology for coping with the above challenges. Results: The case studies show that the proposed approach is applicable for developing real-life systems, and presents measurable advantages over the alternatives - behavioral programming alone and context-oriented programming alone. Conclusion: We present a paradigm allowing programmers and system engineers to capture complex context-dependent requirements and align their code with such requirements.
引用
收藏
页数:19
相关论文
共 50 条
  • [21] Programming language implementations for context-oriented self-adaptive systems
    Cardozo, Nicolas
    Mens, Kim
    INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 143
  • [22] Next Generation Context-oriented Programming: Embracing Dynamic Generation of Adaptations
    Cardozo, Nicolas
    Dusparic, Ivana
    JOURNAL OF OBJECT TECHNOLOGY, 2022, 21 (02):
  • [23] Context-oriented domain analysis
    Desmet, Brecht
    Vallejos, Jorge
    Costanza, Pascal
    De Meuter, Wolfgang
    D'Hondt, Theo
    MODELING AND USING CONTEXT, 2007, 4635 : 178 - +
  • [24] Context-oriented image retrieval
    O'Sullivan, D
    McLoughlin, E
    Bertolotto, M
    Wilson, D
    MODELING AND USING CONTEXT, PROCEEDINGS, 2005, 3554 : 339 - 352
  • [25] 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,
  • [26] 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
  • [27] 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
  • [28] 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
  • [29] Scoping changes in self-supporting development environments using context-oriented programming
    Hasso-Plattner-Institut, Universität Potsdam, Germany
    Int. Workshop Context-Oriented Program., COP - Co-located Eur. Conf. Object-Oriented Program., ECOOP, 1600,
  • [30] Context-oriented design of industrial exoskeletons
    Hoffmann, Niclas
    Ralfs, Lennart
    Weidner, Robert
    Konstruktion, 2024, 76 (8-9): : 64 - 70