2 research outputs found
Context-Oriented Behavioral Programming
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 and keep the separation of concerns of the
codebase? how to model the changing behaviors? how to verify the system
behavior? and more.
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.
We begin with providing abstract semantics for COBP, laying the foundations
for applying reasoning algorithms to context-aware behavioral programs. We then
exemplify the semantics with formal specifications of systems, including a
variant of Conway's Game of Life. Finally, we present a JavaScript-based
implementation of the paradigm and 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.Comment: Submitted to: Information and Software Technology, special issue
"Bridging the gap in the engineering of context-aware software systems
Object Composition in Scenario-Based Programming
We investigate the classical notion of object composition in the framework of scenario-based specification and programming. We concentrate on live sequence charts (LSC), which extend the classical partial order semantics of sequence diagrams with universal/existential and must/may modalities. In order to tackle object composition, we extend the language with appropriate syntax and semantics that allow the specification and interpretation of scenario hierarchies β trees of scenarios β based on the object composition hierarchy in the underlying model. We then describe and implement a composition algorithm for scenario hierarchies, and discuss a trace-based semantics and operational semantics (play-out) for the extension. The extension has been fully implemented, and the ideas are demonstrated using a small example application