context-awareness is becoming even more critical for mobile and ubiquitous computing, where the application needs to dynamically adapt its behavior to its execution environment. context-oriented programming languages ...
详细信息
ISBN:
(纸本)9781479914609
context-awareness is becoming even more critical for mobile and ubiquitous computing, where the application needs to dynamically adapt its behavior to its execution environment. context-oriented programming languages support dynamic behavior adaptation, however, they do not support for dynamic changes in the application code. This makes that they provide little support for the runtime adaptation of application behavior in case of any instability encountered. In this paper, we present the design and implementation of DLA framework, which uses the application contract to separate the policy of layer activation from the application's business logic, and which uses object composition and delegation to dynamically adjust the behavior of objects. With these features, DLA framework enables the application behavior and code to be dynamically adapted according to its execution environment.
In modern software, including web applications, context-dependent behavior is one of the most important features. context-oriented programming (COP) is a suitable programming technique for developing such software. Ho...
详细信息
ISBN:
(纸本)9798400707551
In modern software, including web applications, context-dependent behavior is one of the most important features. context-oriented programming (COP) is a suitable programming technique for developing such software. However, we often need to work on handling parameter values in layers. This problem which we experience during the development of web application means inconvenience in setting parameters by each layer. We call it "layer parameter problem." Especially front-end web applications use a component-based approach with a DOM tree, making the layer parameter problem more complicated because they cannot handle COPs in class-in-layer and layer-in-class models. We propose ReactCOP, an implementation of an idea that applies COP to React, one of the front-end web application libraries. ReactCOP solves the parameter problem on a layer-in-component model. As the solution to this problem, we present Layer Parameter Management that dynamically switches values in a variable within a layer. In this paper, we propose ReactCOP with Layer Parameter Management. Finally, we investigate our proposed approach through two case studies.
Static analyses, as points-to analysis, are useful to determine and assure different properties about a program, such as security or type safety. While existing analyses are effective in programs restricted to static ...
详细信息
ISBN:
(纸本)9798400702464
Static analyses, as points-to analysis, are useful to determine and assure different properties about a program, such as security or type safety. While existing analyses are effective in programs restricted to static features, precision declines in the presence of dynamic language features, and even further when the system behavior changes dynamically. As a consequence, improved points-to sets algorithms taking into account such language features and uses are required. In this paper, we present and extension of the point-to sets analysis to incorporate the language abstractions introduced by context-oriented programming adding the capability for programs to adapt their behavior dynamically to the system's execution context. To do this, we extend WALA to detect the context-oriented language abstractions, and their representation within the system, to capture the dynamic behavior, in the particular case of the context Traits JavaScript language extension. To prove the effectiveness of our extension, we evaluate the precision of the points-to set analysis with respect to the state of the art, over four context-oriented programs taken from the literature.
The implementation of context-aware systems can be supported through the adoption of techniques at the architectural level such as middlewares or component-oriented architectures. It can also be supported by suitable ...
详细信息
The implementation of context-aware systems can be supported through the adoption of techniques at the architectural level such as middlewares or component-oriented architectures. It can also be supported by suitable constructs at the programming language level. context-oriented programming (COP) is emerging as a novel paradigm for the implementation of this kind of software, in particular in the field of mobile and ubiquitous computing. The COP paradigm tackles the issue of developing context-aware systems at the language-level, introducing ad hoc language abstractions to manage adaptations modularization and their dynamic activation. In this paper we review the state of the art in the field of COP in the perspective of the benefits that this technique can provide to software engineers in the design and implementation of context-aware applications. (C) 2012 Elsevier Inc. All rights reserved.
Feature-based context-oriented programming reconciles ideas from context-oriented programming, feature modelling and dynamic software product lines. It offers a programming language, architecture, tools and methodolog...
详细信息
Feature-based context-oriented programming reconciles ideas from context-oriented programming, feature modelling and dynamic software product lines. It offers a programming language, architecture, tools and methodology to develop software systems consisting of contexts and features that can become active at run-time to offer the most appropriate behaviour depending on the actual context of use. Due to their high run-time adaptivity, dedicated tool support to test such systems is needed. Building upon a pairwise combinatorial interaction testing approach from the domain of software product lines, we implement an algorithm to generate automatically a small set of relevant test scenarios, ordered to minimise the number of context activations between tests. We also explore how the generated scenarios can be enhanced incrementally when the software evolves, and how useful the proposed testing approach is in practice. (c) 2022 Elsevier Inc. All rights reserved.
In the times of mobility and pervasiveness of computing, contextual information plays an increasingly crucial role in applications. This kind of information becomes a first class citizen in context-oriented programmin...
详细信息
In the times of mobility and pervasiveness of computing, contextual information plays an increasingly crucial role in applications. This kind of information becomes a first class citizen in context-oriented programming (COP) paradigm. COP languages provide primitive constructs for easily writing applications that adapt their behaviour depending on the evolution of their operational environment, namely the context. We present these new constructs, the issues and the challenges that arise, reporting on our recent work on MLCoDa. It is a declarative language specifically designed for adaptation and equipped with a clear formal semantics and analysis tools. We will discuss some experiments done with a preliminary implementation of MLCoDa. Through them we will show how applications and context interactions can be better specified, analysed and controlled.
Based on context-oriented programming (COP), we implemented source code instrumentation for example-based live programming in a modular way. These tools provide programmers with feedback on the dynamic program behavio...
详细信息
ISBN:
(纸本)9781450368636
Based on context-oriented programming (COP), we implemented source code instrumentation for example-based live programming in a modular way. These tools provide programmers with feedback on the dynamic program behavior by showing traced values of example invocations of a program. For that, we have to trace intermediate, expression-level runtime states during the execution of an example. As the instrumentation is only intended to improve tool support, the default behavior of the system must not be altered. In this paper, we demonstrate how context-oriented programming can be used to keep the execution of examples separate from the default behavior even in the presence of expression-level behavior variations. We illustrate our approach by implementing Babylonian programming using contextS2 in Squeak/Smalltalk. Based on the implementation, we compare our COP-based Smalltalk implementation to the module-rewriting-based implementation for JavaScript.
context-awareness plays a central role in self-adaptive software. By a programming perspective, context is often used implicitly, and context-aware code is fragmented in the codebase. In context-oriented programming, ...
详细信息
ISBN:
(纸本)9781728124063
context-awareness plays a central role in self-adaptive software. By a programming perspective, context is often used implicitly, and context-aware code is fragmented in the codebase. In context-oriented programming, instead, context is considered a first-class citizen and is explicitly used to modularise context-sensitive functionality and behavioural variability. In this paper, we reflect on the role of context in collective adaptive systems, by a discussion from the special perspective of a macro paradigm, Aggregate programming, which supports the specification of collective behaviour by a global perspective through functional compositions of field computations. In particular, we consider the abstractions exposed in context-oriented and Aggregate programming, suggest potential synergies in both directions, and accordingly take the first steps towards a combined design.
context-oriented programming (COP) is a programming paradigm to encourage modularization of context-dependent software. Key features of COP are layers modules to describe context-dependent behavioral variations of a s...
详细信息
context-oriented programming (COP) is a programming paradigm to encourage modularization of context-dependent software. Key features of COP are layers modules to describe context-dependent behavioral variations of a software system and their dynamic activation, which can modify the behavior of multiple objects that have already been instantiated. Typechecking programs written in a COP language is difficult because the activation of a layer can even change objects' interfaces. Inoue et al. have informally discussed how to make JCop, an extension of Java for COP by Appeltauer et al., type-safe. In this article, we formalize a small COP language called contextFJ(<:) with its operational semantics and type system and show its type soundness. The language models main features of the type-safe version of JCop, including dynamically activated first-class layers, inheritance of layer definitions, layer subtyping, and layer swapping. (C) 2019 Elsevier B.V. All rights reserved.
context-oriented programming languages allow programmers to develop context-aware systems that can adapt their behaviour dynamically upon changing contexts. Due to the highly dynamic nature of such systems and the man...
详细信息
ISBN:
(纸本)9781450367455
context-oriented programming languages allow programmers to develop context-aware systems that can adapt their behaviour dynamically upon changing contexts. Due to the highly dynamic nature of such systems and the many possible combinations of contexts to which such systems may adapt, developing such systems is hard. Feature-based context-oriented programming helps tackle part of this complexity by modelling the possible contexts, and the different behavioural adaptations they can trigger, as separate feature models. Tools can also help developers address the underlying complexity of this approach. This paper presents a visualisation tool that is intricately related to the underlying architecture of a feature-based context-oriented programming language, and the context and feature models it uses. The visualisation confronts two hierarchical models (a context model and a feature model) and highlights the dependencies between them. An initial user study of the visualisation tool is performed to assess its usefulness and usability.
暂无评论