The paper presents a method to build a distributed real-time operating system for distributed embedded control systems using aspect-oriented programming. We define aspects to weave distributed computing mechanisms to ...
详细信息
ISBN:
(纸本)9781479976157
The paper presents a method to build a distributed real-time operating system for distributed embedded control systems using aspect-oriented programming. We define aspects to weave distributed computing mechanisms to an existing real-time operating system. By using the aspects, we can build a distributed operating system without modifying the original source code. This improves the maintainability of the source code of a real-time operating system family. We have applied the aspects to an OSEK OS and have got a distributed operating system that provides location-transparent system calls for task management and inter-task synchronization. The evaluation results show that the overhead of aspect-oriented programming is practically small enough.
The aspect-oriented programming (AOP) is gaining popularity for it offers a means to encapsulate crosscutting concerns in the development of complex software systems. The power of AOP enables more degree of separation...
详细信息
ISBN:
(纸本)9783642549007;9783642548994
The aspect-oriented programming (AOP) is gaining popularity for it offers a means to encapsulate crosscutting concerns in the development of complex software systems. The power of AOP enables more degree of separation-of-concerns which leads to more understandable, maintainable and extensible software. However, challenges arise when using AOP in the embedded software development. In this work we propose to do embedded application development based on AOP. We implement cockpit display system application software framework (CASF) on VxWorks platform with AOP features based on aspect-oriented C. Based on this, we implement a sample cockpit display application and test it on the real avionic device. This case study illustrates the potential benefits and issues associated with the use of AOP in embedded development.
aspect-oriented modeling and simulation is a new approach which uses the separation of concerns principle to enhance the quality of models and simulation tools. It adopts the separation of concerns (SOC) principle. Th...
详细信息
aspect-oriented modeling and simulation is a new approach which uses the separation of concerns principle to enhance the quality of models and simulation tools. It adopts the separation of concerns (SOC) principle. Thus, crosscutting concerns such as processes synchronization, steady state detection, and graphical animation could be separated from simulation functional modules. The capture of crosscutting concerns in a modular way is carried out to cope with complexity and to achieve the required engineering quality factors such as robustness, modularity, adaptability, and reusability. This paper provides a summary of aspect-oriented paradigm with its usage in simulation by illustrating the main crosscutting concerns that may infect simulation systems. A practical example is given with the use of the Japrosim discrete event simulation library.
aspectorientedprogramming (AOP) provides new modularization of software systems through encapsulation of crosscutting functionalities, providing a clear isolation and utilization thereof. The trade-offs are typicall...
详细信息
This paper describes an approach to implementation of aspect-oriented programming (AOP) frameworks for C, outlines traditional AOP facilities for different programming languages, and shows how specific features of C a...
详细信息
This paper describes an approach to implementation of aspect-oriented programming (AOP) frameworks for C, outlines traditional AOP facilities for different programming languages, and shows how specific features of C and a build process of C programs affect AOP implementations. Next, we consider additional requirements imposed by a practical application of AOP implementations for C programs. Existing solutions are described and possibility of their use is analyzed. The paper describes a new AOP tool for C that implements the proposed approach and demonstrates its capabilities.
Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. Improving one quality attribute may impair other quality attributes...
详细信息
Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. Improving one quality attribute may impair other quality attributes. A number of refactoring methods were proposed specifically for aspect-oriented systems. However, there are no guidelines to help aspect-oriented software designer decide which refactoring methods to apply to optimize a software system with regard to certain design goals. In this paper, we propose a taxonomy/classification of refactoring methods for aspect-oriented programming based on their measurable effect on software quality attributes using six open-source aspect-oriented software systems. Copyright (C) 2011 John Wiley & Sons, Ltd.
aspect-oriented programming is known as a technique for modularizing crosscutting concerns. However, constructs aimed to support crosscutting modularity might actually break class modularity. As a consequence, class d...
详细信息
aspect-oriented programming is known as a technique for modularizing crosscutting concerns. However, constructs aimed to support crosscutting modularity might actually break class modularity. As a consequence, class developers face changeability, parallel development and comprehensibility problems, because they must be aware of aspects whenever they develop or maintain a class. At the same time, aspects are vulnerable to changes in classes, since there is no contract specifying the points of interaction amongst these elements. These problems can be mitigated by using adequate design rules between classes and aspects. We present a design rule specification language and explore its benefits since the initial phases of the development process, specially with the aim of supporting modular development of classes and aspects. We discuss how our language improves crosscutting modularity without breaking class modularity. We evaluate it using a real case study and compare it with other approaches. (C) 2013 Elsevier Inc. All rights reserved.
A fundamental functionality of a Programmable Logic Controller (PLC) is to control and execute a set of operations. But a large part of the program code is more involved in supporting the user with concerns like alarm...
详细信息
A fundamental functionality of a Programmable Logic Controller (PLC) is to control and execute a set of operations. But a large part of the program code is more involved in supporting the user with concerns like alarm, HMI, communication, safety and manual control. Code related to these supporting concerns is often tangled with operation execution code, the core concerns, which makes it hard to reuse. This paper describes a method to reuse code and functionality when developing PLC programs and code libraries. The method proposes that core concerns are planned with a software tool called Sequence Planner, and the supporting concerns are integrated into the core concerns with a tool based on aspect-oriented programming. (C) 2012 Elsevier Ltd. All rights reserved.
We present an efficient and expressive tool for the instrumentation of Java programs at the bytecode level. BISM (Bytecode-Level Instrumentation for Software Monitoring) is a lightweight Java bytecode instrumentation ...
详细信息
We present an efficient and expressive tool for the instrumentation of Java programs at the bytecode level. BISM (Bytecode-Level Instrumentation for Software Monitoring) is a lightweight Java bytecode instrumentation tool that features an expressive high-level control-flow-aware instrumentation language. The instrumentation language is inspired by the aspect-oriented programming paradigm in modularizing instrumentation into separate transformers that encapsulate joinpoint selection and advice inlining, that is, the selection of points of interest in the execution and the execution of additional code at these points, respectively. BISM allows capturing joinpoints ranging from bytecode instructions to methods execution and provides comprehensive static and dynamic context information. It runs in two instrumentation modes: build-time and load-time. BISM also provides a mechanism to compose transformers and automatically detect when they interfere on the base program. Transformers in a composition can control the visibility of their advice and other instructions from the base program. We show several example applications for BISM and demonstrate its effectiveness using three experiments: a security scenario, a financial transaction system, and a general runtime verification case. The results show that (i) BISM instrumentation incurs low runtime and memory overheads, and (ii) the code produced by BISM performs better than the one produced by existing Java instrumentation tools.
Software for scientific computing has been traditionally unfavorable to changes, mainly due to its frequent use of old codebases where modern programming practices for modularity have been relatively difficult to adop...
详细信息
Software for scientific computing has been traditionally unfavorable to changes, mainly due to its frequent use of old codebases where modern programming practices for modularity have been relatively difficult to adopt. In this paper, We present our 10-year experience of developing and evolving program adaptations in scientific software. Throughout a series of different adaptive scenario implementations, we show why managing adaptation codes using in-house tools in scientific computing has been difficult, and how we address the issue by means of modern software engineering techniques.
暂无评论