This article contributes to the initial step of applying context-oriented programming to DevOps. In DevOps, we must maintain continuously. One of the critical problems in maintenance is caused by cross-cutting concern...
详细信息
ISBN:
(纸本)9798400706349
This article contributes to the initial step of applying context-oriented programming to DevOps. In DevOps, we must maintain continuously. One of the critical problems in maintenance is caused by cross-cutting concerns. In recent programs, the cross-cutting concerns occur at runtime. To solve this problem, we focus on context-oriented programming (COP). COP consists of layers, and it solves the runtime cross-cutting concern problem. However, the existing modeling methods are limited. In DevOps, we need a more strategic method. In the maintenance process, we must improve the software based on user data, in addition to bug fixing. This article introduces a method of DevOps modeling based on COP.
context-aware systems keep on emerging as an intrinsic part of everyday activities. To cope with such situations, programming languages are extended to support the notion of context. Although contextoriented programmi...
详细信息
context-aware systems keep on emerging as an intrinsic part of everyday activities. To cope with such situations, programming languages are extended to support the notion of context. Although contextorientedprogramming languages exist for over 15 years, they were tested for their suitability for developing context-aware systems only to a limited extent. In this paper, we propose a framework for analyzing the suitability of context-oriented languages from a wider viewpoint. Using this framework, we are able to examine context definition and activation, reasoning capabilities, process aspects of how to work with the language, and other pragmatic considerations. To demonstrate the use of the framework, we apply it to analyze three context-oriented programming languages: ServalCJ, Subjective-C, and COBPjs which represent the major context-oriented programming themes. We evaluate the capabilities of each language using the purposed framework. Developers of contextorientedprogramming languages can use the framework to improve their languages and the associated development and supporting tools. Furthermore, such analysis can support users of context-oriented programming languages in deciding the language that best suits their needs. (c) 2023 Elsevier Inc. All rights reserved.
context: Self-adaptive software systems continuously adapt in response to internal and external changes in their execution environment, captured as contexts. The context-oriented programming (COP) paradigm posits a te...
详细信息
context: Self-adaptive software systems continuously adapt in response to internal and external changes in their execution environment, captured as contexts. The context-oriented programming (COP) paradigm posits a technique for the development of self-adaptive systems, capturing their main characteristics with specialized programming language constructs. In COP, adaptations are specified as independent modules that are composed in and out of the base system as contexts are activated and deactivated in response to sensed circumstances from the surrounding environment. However, the definition of adaptations, their contexts and associated specialized behavior, need to be specified at design time. In complex cyber-physical systems this is intractable, if not impossible, due to new unpredicted operating conditions ***: In this paper, we propose Auto-COP, a new technique to enable generation of adaptations at run time. Auto-COP uses Reinforcement Learning (RL) options to build action sequences, based on the previous instances of the system execution (for example, atomic system actions enacted by human operators). Options are further explored in interaction with the environment, and the most suitable options for each context are used to generate the adaptations, exploiting COP ***: To validate Auto-COP, we present two case studies exhibiting different system characteristics and application domains: a driving assistant and a robot delivery system. We present examples of Auto-COP to illustrate the types of circumstances (contexts) requiring adaptation at run time, and the corresponding generated adaptations for each context. Results: We confirm that the generated adaptations exhibit correct system behavior measured by domain specific performance metrics (e.g., conformance to specified speed limit), while reducing the number of required execution/actuation steps by a factor of two showing that the adaptations are regularly selected by the runnin
This paper contributes to the runtime cross-cutting concerns problem by a layer structure model based on UML (Unified-Modeling Language) and code generation to COP (context-oriented programming). For software developm...
详细信息
ISBN:
(纸本)9789897584879
This paper contributes to the runtime cross-cutting concerns problem by a layer structure model based on UML (Unified-Modeling Language) and code generation to COP (context-oriented programming). For software development, the cross-cutting concerns problem is well-known to cause complicated models. The reason is that one cross-cutting concern affects multiple objects. Also, the problems occasionally occur at runtime. Recently, this problem has become more challenging. Modern software such as IoTs usually connect with many machines and devices and change context-dependent behavior at runtime. Thus, runtime crosscutting problems will occur increasingly. To solve this problem, we focus on the COP. It can gather scattered cross-cutting concerns in one module called the layer and change the layer at runtime. However, UML lacks the notation involving COP and also the code generation. Therefore, the first step to solve the runtime crosscutting concerns problem is to propose a layer structure model on UML and COP code generation from its model.
Acceleration by FPGA is expected for real-time edge processing as well as server applications in the cloud. A robot is one of the examples which need the acceleration of processing such as image recognition processing...
详细信息
ISBN:
(纸本)9781728148823
Acceleration by FPGA is expected for real-time edge processing as well as server applications in the cloud. A robot is one of the examples which need the acceleration of processing such as image recognition processing and actuation based on its visual feedback. As the system is more complex, it is required to introduce a management mechanism of FPGA dynamic reconfiguration. In this paper, we propose a method of system development which includes FPGA acceleration. The key idea of the proposed method is the FPGA reconfiguration based on a context, which is defined in context-oriented programming (COP). This idea contributes to solve the cross-cutting concern problem at runtime. The problem causes to decrease the efficiency of development. Thus, this idea makes easily manage to FPGA reconfiguration with software in case of changing a whole system. In evaluation, we compare the reconfiguration time of FPGA to switch a context with the context switching time of the COP software written in C++ language. It indicates that the proposed method is feasible to handle FPGA context.
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...
详细信息
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. Conclusio
context-oriented programs take into account detected contexts to alter an application so that it exhibits the most appropriate behaviour for that particular context. However context-oriented programming (COP) focuses ...
详细信息
ISBN:
(纸本)9781450358972
context-oriented programs take into account detected contexts to alter an application so that it exhibits the most appropriate behaviour for that particular context. However context-oriented programming (COP) focuses mostly on adapting behavioural aspects while mostly ignoring adaptation of the user interface aspect. In the HCI community, on the other hand, much research has been done on user interface adaptation but without paying much attention to the behavioural aspect. This PhD work seeks to reconcile both communities to allow programmers to build realistic applications that are more sensitive to their surrounding environment, as well as to evaluate the user acceptance of such systems.
Current trend of seamless connections between computing systems and their surrounding environments requires software to be more reactive and adaptable, and reactive programming (RP) and context-oriented programming (C...
详细信息
ISBN:
(纸本)9781450368636
Current trend of seamless connections between computing systems and their surrounding environments requires software to be more reactive and adaptable, and reactive programming (RP) and context-oriented programming (COP) have been studied to directly support reactive behavior and dynamic adaptation. Sometimes reactive behavior and dynamic adaptation interact with each other. One issue of such interactions is how to avoid a loop of reactive behavior and dynamic adaptation when there are mutually recursive dependencies between them. This paper proposes TinyCORP, a core calculus for context-oriented reactive programming that is designed in a main-stream, general-purpose language setting. This calculus is expressive enough to represent both features of signals (i.e., time-varying values in RP) and layer-based partial methods in COP, and their interactions including the ability to specify the mutually recursive dependencies between dynamic adaptation and reactive behavior. We also demonstrate that the computation in TinyCORP do not result in the loop of reactive behavior and dynamic adaptation.
context: The context-oriented programming paradigm is designed to enable self-adaptation, or dynamic behavior modification of software systems, in response to changes in their surrounding environment. contextoriented ...
详细信息
context: The context-oriented programming paradigm is designed to enable self-adaptation, or dynamic behavior modification of software systems, in response to changes in their surrounding environment. contextorientedprogramming offers an adaptation model, from a programming language perspective, that maintains a clean modularisation between the application and adaptation logic, as well as between the components providing adaptations. Objective: We use three implementation techniques for context-oriented programming languages to assess their appropriateness to foster self-adaptive systems. These approaches take advantage of the capabilities offered by the host programming language to realize self-adaptation as proposed by context-oriented languages. Method: We evaluate each of these approaches by assessing their modularity and complexity when defining adaptations, and by comparing their run-time performance on a simple benchmark. Results: Our results show a higher modularity than that for common architecture based self-adaptive systems, while maintaining comparable performance. Conclusion: We conclude that context-oriented programming is an appropriate paradigm to realize self adaptation.
Self-healing systems depend on following a set of predefined instructions to recover from a known failure state. Failure states are generally detected based on domain specific specialized metrics. Failure fixes are ap...
详细信息
ISBN:
(纸本)9798400705854
Self-healing systems depend on following a set of predefined instructions to recover from a known failure state. Failure states are generally detected based on domain specific specialized metrics. Failure fixes are applied at predefined application hooks that are not sufficiently expressive to manage different failure types. Self-healing is usually applied in the context of distributed systems, where the detection of failures is constrained to communication problems, and resolution strategies often consist of replacing complete components. However, current complex systems may reach failure states at a fine granularity not anticipated by developers (for example, value range changes for data streaming in IoT systems), making them unsuitable for existing self-healing techniques. To counter these problems, in this paper we propose a new self-healing framework that learns recovery strategies for healing fine-grained system behavior at run time. Our proposal targets complex reactive systems, defining monitors as predicates specifying satisfiability conditions of system properties. Such monitors are functionally expressive and can be defined at run time to detect failure states at any execution point. Once failure states are detected, we use a Reinforcement Learning-based technique to learn a recovery strategy based on users' corrective sequences. Finally, to execute the learned strategies, we extract them as context-oriented programming variations that activate dynamically whenever the failure state is detected, overwriting the base system behavior with the recovery strategy for that state. We validate the feasibility and effectiveness of our framework through a prototypical reactive application for tracking mouse movements, and the DeltaIoT exemplar for self-healing systems. Our results demonstrate that with just the definition of monitors, the system is effective in detecting and recovering from failures between 55% - 92% of the cases in the first application, and at pa
暂无评论