aspect-oriented programming

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 102702 Experts worldwide ranked by ideXlab platform

Carlos Jose Pereira De Lucena - One of the best experts on this subject based on the ideXlab platform.

  • improving extensibility of object oriented frameworks with aspect oriented programming
    International Conference on Software Reuse, 2006
    Co-Authors: Uira Kulesza, Carlos Jose Pereira De Lucena, Alessandro Garcia, Vander Alves, Paulo Borba
    Abstract:

    Object-oriented frameworks are nowadays a common and useful technology used in the implementation of software system families. Despite their benefits, over the last years many researchers have described the inadequacy of object-oriented mechanisms to address the modularization and composition of many framework features, thus reducing the extent to which a framework can be extended. The crosscutting nature of many framework features is identified as one of the main causes of these problems. In this paper, we analyze how aspect-oriented programming can help to improve the design, implementation, and extension of object-oriented frameworks. We propose the concept of Extension Join Points (EJPs) as a way of designing and documenting existing crosscutting extension points. EJPs improve framework extensibility, including superior composability of the framework core functionality with other modules or frameworks. Four case studies of frameworks from diverse domains are presented to illustrate our proposal. This paper also discusses lessons learned on the application of our approach to the development and extension of these frameworks.

  • composing design patterns a scalability study of aspect oriented programming
    Aspect-Oriented Software Development, 2006
    Co-Authors: Nelio Cacho, Claudio Santanna, Eduardo Figueiredo, Alessandro Garcia, Thais Batista, Carlos Jose Pereira De Lucena
    Abstract:

    Pattern composition has been shown as a challenge to applying design patterns in real software systems. One of the main problems is that multiple design patterns in a system are not limited to affect only the application concerns. They also crosscut each other in multiple heterogeneous ways so that their separation and composition are far from being trivial. In this context, it is of paramount importance to systematically verify whether aspect-oriented programming (AOP) supports improved composability of design patterns. This paper presents a systematic investigation on how AOP scales up to deal with modularization of pattern-specific concerns in the presence of pattern interactions. We have made both qualitative and quantitative assessments of 62 pairwise compositions taken from 3 medium-sized systems implemented in Java and AspectJ programming languages. Our analysis has also included the evaluation of compositions involving more than two patterns. The assessment was based on four fundamental software attributes, namely separation of concerns, coupling, cohesion, and conciseness.

Rainer Unland - One of the best experts on this subject based on the ideXlab platform.

  • a uml based aspect oriented design notation for aspectj
    Aspect-Oriented Software Development, 2002
    Co-Authors: Dominik Stein, Stefan Hanenberg, Rainer Unland
    Abstract:

    AspectJ is a well-established programming language for the implementation of aspect-oriented programs. It supports the aspect-oriented programming paradigm by providing a special unit, called "aspect", which encapsulates crosscutting code. While with AspectJ a suitable aspect-oriented programming language is at hand, no feasible modeling language is available that supports the design of AspectJ programs. In this work, such a design notation for AspectJ programs is presented based on the UML. It provides representations for all language constructs in AspectJ and specifies an UML implementation of AspectJ's weaving mechanism. The design notation eases the perception of aspect-orientation and AspectJ programs. It carries over the advantages of aspect-orientation to the design level.

Gregor Kiczales - One of the best experts on this subject based on the ideXlab platform.

  • aspect oriented programming and modular reasoning
    International Conference on Software Engineering, 2005
    Co-Authors: Gregor Kiczales, Mira Mezini
    Abstract:

    Aspects cut new interfaces through the primary decomposition of a system. This implies that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent property of crosscutting concerns, and using aspect-oriented programming enables modular reasoning in the presence of such concerns.

  • aspect oriented programming
    International Conference on Software Engineering, 2005
    Co-Authors: Gregor Kiczales
    Abstract:

    The concept of a general purpose aspect is introduced where an aspect transparently forces cross-cutting behavior on object classes and other software entities. A reusable aspect is further described for use as part of an aspect library.

  • a semantics for advice and dynamic join points in aspect oriented programming
    ACM Transactions on Programming Languages and Systems, 2004
    Co-Authors: Mitchell Wand, Gregor Kiczales, Christopher Dutchyn
    Abstract:

    A characteristic of aspect-oriented programming, as embodied in Aspect J, is the use of advice and point cuts to define behavior that crosscuts the structure of the rest of the code. The events during execution at which advice may execute are called join points. A pointcut is a set of join points. An advice is an action to be taken at the join points in a particular pointcut. In this model of aspect-oriented programming, join points are dynamic in that they refer to events during the flow of execution of the program.We give a denotational semantics for a minilanguage that embodies the key features of dynamic join points, pointcuts, and advice. This is the first semantics for aspect-oriented programming that handles dynamic join points and recursive procedures. It is intended as a baseline semantics against which future correctness results may be measured.

  • aspect oriented programming
    Foundations of Software Engineering, 2001
    Co-Authors: Gregor Kiczales, Erik Hilsdale
    Abstract:

    aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way. It works with AspectJ, a seamless aspect-oriented extension to the Java(tm) programming language, and with AspectC, an aspect-oriented extension to C in the style of AspectJ. It also includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood.

  • Using aspectC to improve the modularity of path-specific customization in operating system code
    Association for Computing Machinery (ACM), 2001
    Co-Authors: Yvonne Coady, Gregor Kiczales, Mike Feeley, Greg Smolyn
    Abstract:

    Layered architecture in operating system code is often compromised by execution path-specific customizations such as prefetching, page replacement and scheduling strategies. Path-specific customizations are difficult to modularize in a layered architecture because they involve dynamic context passing and layer violations. Effectively they are vertically integrated slices through the layers. An initial experiment using an aspect-oriented programming language to refactor prefetching in the FreeBSD operating system kernal shows significant benefits, including easy (un)pluggability of prefetching modes, independent development of prefetching modes, and overall improved comprehensibility.

Adrian Mark Colyer - One of the best experts on this subject based on the ideXlab platform.

  • eclipse aspectj aspect oriented programming with aspectj and the eclipse aspectj development tools
    2004
    Co-Authors: Adrian Mark Colyer, Andy Clement, George Harley, Matthew Alexander Webster
    Abstract:

    Eclipse AspectJ: aspect-oriented programming with AspectJ and the Eclipse AspectJ Development ToolsAspectJ: Now every Java developer can leverage the immense power of AOPWith AspectJ, Java developers can leverage the breakthrough power of aspect-oriented programming (AOP) using a language they already know, within the comfortable, highly productive Eclipse development environment. In this book, AspectJ's lead developers help you master AOP's essential principles and techniques, as you use them to address your toughest software quality, productivity, and maintenance challenges.AOP improves the modularity of programs, making the code much closer to the design. It can dramatically reduce the time taken to implement common features and functions, improve quality, integrate plain-old Java objects with systems and services, create simpler, more reusable components, and much more besides.Drawing on their experience as tool developers, programmers, and mentors, the authors cover every facet of AOP development with AspectJ and Eclipse, from creating new projects through extending and documenting full-fledged applications. You'll find an authoritative tutorial covering the entire AspectJ language, a complete API reference, and realistic guidance on adopting AspectJ in your organization. No AOP or Eclipse experience necessary! Install and configure both Eclipse and the AspectJ Development Tools (AJDT) Discover how AOP can modularize and optimize everything from error checking to performance Craft new AspectJ applications and incorporate AOP capabilities into existing systems Build, debug, and document AspectJ applications Understand crucial AOP concepts, such as join points, pointcuts, advice, and inter-type declarations Master advanced techniques: Aspect libraries, linking with compiled .class files, visualization, aspect-oriented design, and more© Copyright Pearson Education. All rights reserved.

  • using aspectj for component integration in middleware
    Conference on Object-Oriented Programming Systems Languages and Applications, 2003
    Co-Authors: Adrian Mark Colyer, Andy Clement, Ron Bodkin, Jim Hugunin
    Abstract:

    This report discusses experiences applying AspectJ [1] to modularize crosscutting concerns in a middleware product line at IBM®. Aspect oriented programming techniques were used to cleanly separate platform specific facilities for aspects such as error handling, performance monitoring and logging from base components, permitting those components to be reused in multiple environments. The initiative also guided the design of the AspectJ Development Tools (AJDT) for Eclipse, and influenced the technical direction of the AspectJ implementation.

Gail C. Murphy - One of the best experts on this subject based on the ideXlab platform.

  • atlas a case study in building a web based learning environment using aspect oriented programming
    Conference on Object-Oriented Programming Systems Languages and Applications, 1999
    Co-Authors: Mik Kersten, Gail C. Murphy
    Abstract:

    The Advanced Teaching and Learning Academic Server (Atlas) is a software system that supports web-based learning. Students can register for courses, and can navigate through personalized views of course material. Atlas has been built according to Sun Microsystem's Java™ Servlet specification using Xerox PARC's aspect-oriented programming support called Aspect™. Since aspect-oriented programming is still in its infancy, little experience with employing this paradigm is currently available. In this paper, we start filling this gap by describing the aspects we used in Atlas and by discussing the effect of aspects on our object-oriented development practices. We describe some rules and policies that we employed to achieve our goals of maintainability and modifiability, and introduce a straightforward notation to express the design of aspects. Although we faced some obstacles along the way, this combination of technology helped us build a fast, well-structured system in a reasonable amount of time.

  • an initial assessment of aspect oriented programming
    International Conference on Software Engineering, 1999
    Co-Authors: Robert J. Walker, Elisa Baniassad, Gail C. Murphy
    Abstract:

    The principle of separation of concerns (E. Dijkstra, 1976) has long been used by software engineers to manage the complexity of software system development. programming languages help software engineers explicitly maintain the separation of some concerns in code. As another step towards increasing the scope of concerns that can be captured cleanly within the code, G. Kiczales et al. (1997) have introduced aspect oriented programming. In aspect oriented programming, explicit language support is provided to help modularize design decisions that cross-cut a functionally decomposed program. Aspect oriented programming is intended to make it easier to reason about, develop, and maintain certain kinds of application code. To investigate these claims, we conducted two exploratory experiments that considered the impact of aspect oriented programming, as found in AspectJ version 0.1, on two common programming activities: debugging and change. Our experimental results provide insights into the usefulness and usability of aspect oriented programming. Our results also raise questions about the characteristics of the interface between aspects and functionally decomposed core code that are necessary to accrue programming benefits. Most notably, the separation provided by aspect oriented programming seems most helpful when the interface is narrow (i.e., the separation is more complete); partial separation does not necessarily provide partial benefit.