Software understanding for documentation, maintenance or evolution is one of the longest-standing problems in Computer Science. The use of "high-level" programming paradigms and object-oriented languages hel...
详细信息
Software understanding for documentation, maintenance or evolution is one of the longest-standing problems in Computer Science. The use of "high-level" programming paradigms and object-oriented languages helps, but fundamentally remains far from solving the problem. Most programming languages and systems have fallen prey to the assumption that they are supposed to capture idealized models of computation inspired by deceptively simple metaphors such as objects and mathematical functions. aspect-oriented programming languages have made a significant breakthrough by noticing that, in many situations, humans think and describe in crosscutting terms. In this paper we suggest that the next breakthrough would require looking even closer to the way humans have been thinking and describing complex systems for thousand of years using natural languages. While natural languages themselves are not appropriate for programming, they contain a number of elements that make descriptions concise, effective and understandable. In particular, natural languages referentiality is a key factor in supporting powerful program organizations that can be easier understood by humans.
aspect-oriented programming (AOP) is intended to ease situations that involve many kinds of code tangling. This paper reports on a study to investigate AOP's ability to ease tangling related to exception detection...
详细信息
ISBN:
(纸本)9781581132069
aspect-oriented programming (AOP) is intended to ease situations that involve many kinds of code tangling. This paper reports on a study to investigate AOP's ability to ease tangling related to exception detection and handling. We took an existing framework written in Java™, the JWAM framework, and partially reengineered its exception detection and handling aspects using aspectJ™, an aspect-oriented programming extension to *** found that aspectJ supported implementations that drastically reduced the portion of the code related to exception detection and handling. In one scenario, we were able to reduce that code by a factor of 4. We also found that, with respect to the original implementation in plain Java, aspectJ provided better support for different configurations of exceptional behaviors, more tolerance for changes in the specifications of exceptional behaviors, better support for incremental development, better reuse, automatic enforcement of contracts in applications that use the framework, and cleaner program texts. We also found some weaknesses of aspectJ that should be addressed in the future.
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more efficient and flexible behaviora...
详细信息
ISBN:
(纸本)9781581137125
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more efficient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and propose a model of partial behavioral reflection based on the notion of hooksets. In the context of Java, we describe a reflective architecture offering appropriate interfaces for static and dynamic configuration of partial behavioral reflection at various levels, as well as Reflex, an open reflective extension for Java implementing this architecture. Reflex is the first extension that fully supports partial behavioral reflection in a portable manner, and that seamlessly integrates load-time and runtime behavioral reflection. The paper shows preliminary benchmarks and examples supporting the approach. The examples, dealing with the observer pattern and asynchronous communication via transparent futures, also show the interest of partial behavioral reflection as a tool for open dynamic aspect-oriented programming.
Small embedded systems are forced to operate under extreme resource constraints. At the same time these systems are very complex and many concerns in the implementation of such systems are of highly crosscutting natur...
详细信息
ISBN:
(纸本)9780909925888
Small embedded systems are forced to operate under extreme resource constraints. At the same time these systems are very complex and many concerns in the implementation of such systems are of highly crosscutting nature. The concept of aspect orientation can be applied to allow a modular implementation of these concerns. With aspectJ the first complete and powerful language extension for aspect-oriented programming (AOP) has been created. However, the costs of the Java run-time environment are not feasible for most embedded *** paper presents aspectC++ (Gal & Spinczyk 2001), a new language extension to C/C++ that provides powerful language elements to facilitate aspect-oriented programming even in domains with tight resource limitations.
With modern software systems, an important requirement is the ability to be auto adaptive, i.e. being able to adjust itself its changing environment. In line with this, a run time manager for dynamic feature integrati...
详细信息
ISBN:
(纸本)0769515886
With modern software systems, an important requirement is the ability to be auto adaptive, i.e. being able to adjust itself its changing environment. In line with this, a run time manager for dynamic feature integration of telecommunication systems, interaction detection and resolution is described in this paper with aspects being used to implement features. The manager manages the interaction of features/aspects by monitoring the managed program. The program is represented by a labelled transition system (LTS) model, stored in a flexible data structure, and executed by calling action subroutine represented by the label of the LTS model, forming a reflective facility for the composition and analysis of features. It is the reflective mechanism that makes dynamic feature addition, run time model checking, as well as adaptive interaction resolution possible. Runtime model checking is possible because the checked program is stored within itself and the interaction resolution will be done by selecting behaviour traces according to the resolution rules.
This paper reports our experience using aspectJ, a general-purpose aspect-oriented extension to Java, to implement distribution and persistence aspects in a web-based information system. This system was originally imp...
详细信息
This paper reports our experience using aspectJ, a general-purpose aspect-oriented extension to Java, to implement distribution and persistence aspects in a web-based information system. This system was originally implemented in Java and restructured with aspectJ. Our main contribution is to show that aspectJ is useful for implementing several persistence and distribution concerns in the application considered, and other similar applications. We have also identified a few drawbacks in the language and suggest some minor modifications that could significantly improve similar implementations. Despite the drawbacks, we argue that the aspectJ implementation is superior to the pure Java implementation. Some of the aspects implemented in our experiment are abstract and constitute a simple aspect framework. The other aspects are application specific but we suggest that different implementations might follow the same aspect pattern. The framework and the pattern allow us to propose architecture-specific guidelines that provide practical advice for both restructuring and implementing certain kinds of persistent and distributed applications with aspectJ.
aspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability. ...
详细信息
ISBN:
(纸本)9781581134711
aspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability. The degree of improvement in implementation modularity varies, with the greatest improvement coming when the pattern solution structure involves crosscutting of some form, including one object playing multiple roles, many objects playing one role, or an object playing roles in multiple pattern instances.
Schedulability of distributed real-time system has been studied extensively. However, due to the discrepancies the reference model used in scheduling analysis and the object-oriented model, the results cannot be easil...
详细信息
ISBN:
(纸本)0769515762
Schedulability of distributed real-time system has been studied extensively. However, due to the discrepancies the reference model used in scheduling analysis and the object-oriented model, the results cannot be easily used for distributed real-time object-oriented software development. Even if object-oriented models can be used to conduct schedulability analysis successfully, there still lacks an effective approach to validate the implementation with the design. Model-based approach alleviates the discrepancies between models of different stages and the implementation by automatically transforming models at different granularity, until the code generation for the implementation from the generated design. In this paper, an approach to incorporating schedulability analysis reference diagrams into the existing framework for model-based software development will be presented. It will improve the predictability of a distributed real-time system as well as increase the capability of model refinements and code generation using the new reference diagrams and schedulability analysis results to generate code for implementing scheduling and synchronization aspects of the distributed real-time system.
This paper proposes language concepts that facilitate the separation of an application into independent reusable building blocks and the integration of pre-build generic software components into applications that have...
详细信息
ISBN:
(纸本)9781581134711
This paper proposes language concepts that facilitate the separation of an application into independent reusable building blocks and the integration of pre-build generic software components into applications that have been developed by third party vendors. A key element of our approach arc on-demand remodularizations, meaning that the abstractions and vocabulary of an existing code base are translated into the vocabulary understood by a set of components that are connected by a common collaboration interface. This general concept allows us to mix-and-match remodularizations and components on demand.
暂无评论