In the past, researchers have developed specialized programs to aid programmers in detecting concurrent programming errors such as deadlocks, livelocks, starvation, and data races. In this work, we propose a language ...
详细信息
In the past, researchers have developed specialized programs to aid programmers in detecting concurrent programming errors such as deadlocks, livelocks, starvation, and data races. In this work, we propose a language extension to the aspect-oriented programming language aspectJ, in the form of three new pointcuts, lock(), unlock(), and maybeShared(). These pointcuts allow programmers to monitor program events where locks are granted or handed back, and where values are accessed that may be shared among multiple Java threads. We decide thread locality using a static thread-local-objects analysis developed by others. Using the three new primitive pointcuts, researchers can directly implement efficient monitoring algorithms to detect concurrent-programming errors online. As an example, we describe a new algorithm which we call RACER, an adaption of the well-known ERASER algorithm to the memory model of Java. We implemented the new pointcuts as an extension to the aspectBench Compiler, implemented the RACER algorithm using this language extension, and then applied the algorithm to the NASA K9 Rover Executive and two smaller programs. Our experiments demonstrate that our implementation is effective in finding subtle data races. In the Rover Executive, RACER finds 12 data races, with no false warnings. Only one of these races was previously known.
The extension of frameworks with domain-specific modeling languages (DSML) has proved to be an effective way of improving the productivity in software product-line engineering. However, developing and evolving a DSML ...
详细信息
The extension of frameworks with domain-specific modeling languages (DSML) has proved to be an effective way of improving the productivity in software product-line engineering. However, developing and evolving a DSML is typically a difficult and time-consuming task because it requires to develop and maintain a code generator, which transforms application models into framework-based code. In this paper, we propose a new approach for extending object-oriented frameworks that aims to alleviate this problem. The approach is based on developing an additional aspect-oriented layer that encodes a DSML for building framework-based applications, eliminating the need of implementing a code generator. We further show how a language workbench is capable of automating the construction of DSMLs using the proposed layer. (C) 2010 Elsevier Inc. All rights reserved.
A conflict among aspects happens when two or more aspects compete for its activation. The treatment of conflicts should provide mechanisms for the detection and resolution of the same ones, with the objective of avoid...
详细信息
A conflict among aspects happens when two or more aspects compete for its activation. The treatment of conflicts should provide mechanisms for the detection and resolution of the same ones, with the objective of avoiding that the software execution will be uncertain and unstable. However, the mechanisms provided by the programmingaspect-oriented tools can be really limited, being this the case of aspectJ. In consequence, the resolution of certain conflicts becomes a critical problem since it drives to the restructuring of the code of the aspects. In this work the conflicting situations are identified that they are critical in aspectJ and particular and general solutions are delineated to the problem.
Complex distributed systems pose great challenges for quality assurance. Size, complexity and concurrency of these systems often render traditional verification techniques impractical. In particular, this is true for ...
详细信息
Complex distributed systems pose great challenges for quality assurance. Size, complexity and concurrency of these systems often render traditional verification techniques impractical. In particular, this is true for systems integration efforts, where additional challenges arise from the independent evolution of the composed systems. Runtime verification provides a systematic strategy for analytical quality assurance of such systems. Key elements of runtime verification are system models, ways to inject these models into the observed system and a framework for analysing and monitoring the runtime behaviour against the models. The approach we present in this article is based on interaction models. We specify expected system interactions using Message Sequence Charts (MSC), from which we generate distributed runtime monitors for each of the components. We use aspect-oriented programming (AOP) techniques to inject the monitors into the implementation of the components. Thereby, we verify the adherence of the distributed system interattions with the MSC model. The focus of this article is the runtime verification in the systems integration domain;here, Enterprise Service Buses (ESB) have emerged as a powerful infrastructure for integrating complex distributed systems. In the context of an ESB we leverage the Spring AOP framework to inject the runtime monitors. As a result we obtain a comprehensive, tool-supported approach for model-based runtime verification of interactions. We demonstrate our approach using the Central Locking System as running example of an integrated embedded system.
aspect-oriented software development techniques provide a means to modularize crosscutting concerns in software systems. A survey of industrial projects reveals the benefits and potential pitfalls of aspect-oriented t...
详细信息
aspect-oriented software development techniques provide a means to modularize crosscutting concerns in software systems. A survey of industrial projects reveals the benefits and potential pitfalls of aspect-oriented technologies.
TMiner (Berzal, Cubero, & Jimenez, 2009) is a component-based data mining framework that has been designed to support the whole KDD process and facilitate the implementation of complex data mining scenarios. This ...
详细信息
TMiner (Berzal, Cubero, & Jimenez, 2009) is a component-based data mining framework that has been designed to support the whole KDD process and facilitate the implementation of complex data mining scenarios. This paper shows how aspect-oriented programming techniques support some tasks whose implementation using conventional object-orientedprogramming would be extremely time-consuming and error-prone. In particular, we have successfully employed aspects in TMiner to evaluate and monitor the I/O performance of alternative data mining techniques. Without having to modify the source code of the system under analysis, aspects provide an unintrusive mechanism to perform this kind of performance analysis. In fact, aspects let us probe a system implementation so that we can identify potential bottlenecks, detect redundant computations, and characterize system behavior + lessons learned during the development of TMiner. (C) 2010 Elsevier Ltd. All rights reserved.
This paper addresses the problem of automated code generation for a High Level Architecture compliant federate application given its behavior model. The behavior model is a part of the architectural model of a federat...
详细信息
This paper addresses the problem of automated code generation for a High Level Architecture compliant federate application given its behavior model. The behavior model is a part of the architectural model of a federation that the federate can participate in. The federate behavior model is based on Live Sequence Charts, adopted as the behavioral specification formalism in the Federation Architecture Metamodel (FAMM). FAMM serves as a formal language for describing federation architectures. An objective is to help the testing of federation architecture by means of its prototype implementation early in the development lifecycle. A further objective is to help developers construct complete federate applications that are well modularized. The approach to achieve these objectives is aspect-oriented in that the generated code. which handles the federate's interactions with a federation execution, serves as the base code, where the computation logic is to be weaved as an aspect. Copyright (C) 2009 John Wiley & Sons, Ltd.
Java Script is a popular scripting language that is particularly useful for client-side programming together with HTML/XML on the Web. As Java Script programs become more complex and large, separation of concerns at t...
详细信息
ISBN:
(纸本)9781605584423
Java Script is a popular scripting language that is particularly useful for client-side programming together with HTML/XML on the Web. As Java Script programs become more complex and large, separation of concerns at the implementation level is a significant challenge. aspect orientation has been a well known concept to realize improved separation;however, existing mechanisms require modifications in the target modules for aspect weaving in Java Script (i.e., not "complete" separation). In this paper, we propose an aspect-oriented Java Script framework, named "AOJS", which realizes the complete separation of aspects and other core modules in Java Script. AOJS can specify function executions, variable assignments and file initializations in Java Script programs as the joinpoints of aspects. Moreover, AOJS guarantees the complete separation of aspects and core program modules by adopting a proxy-based architecture for aspect weaving. By utilizing these features, we confirmed that AOJS offers improved modifiability and extendability for Java Script programming.
We propose a domain-specific aspect language to prevent denial of service caused by resource management. Our aspects specify availability policies by enforcing time limits in the allocation of resources. In our langua...
详细信息
We propose a domain-specific aspect language to prevent denial of service caused by resource management. Our aspects specify availability policies by enforcing time limits in the allocation of resources. In our language, aspects can be seen as formal timed properties on execution traces. Programs and aspects are specified as timed automata and the weaving process as an automata product. The benefit of this formal approach is two-fold: the user keeps the semantic impact of weaving under control and (s)he can use a model-checker to optimize the woven program and verify availability properties. This article presents the main approach (programs, aspects, weaving) formally using timed safety automata. The specification of resources, optimizations and verification are sketched in a more intuitive fashion. Even if a concrete implementation remains as future work, we address some high-level implementation issues and illustrate the approach by small examples and a case study. (C) 2009 Elsevier B.V. All rights reserved.
Web Service (WS) is used to support implementation of the distributed system and has already achieved interoperability with a variety of online platforms. This result is accomplished by loosely coupling many different...
详细信息
Web Service (WS) is used to support implementation of the distributed system and has already achieved interoperability with a variety of online platforms. This result is accomplished by loosely coupling many different services together. However, as the Internet environment becomes more and more complex, this objective also becomes more difficult to fulfill. For the purpose of maintaining correctness and automated WS composition, effectively managing the WSs and inter-WS interaction in the WS environment will be a major challenge for future infrastructure. In this paper, we propose a distributed infrastructure utilizing interactive techniques to achieve automated WS composition.
暂无评论