Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2002, Proceedings of the 1st international conference on Aspect-oriented software development - AOSD '02
AspectJ is a well-established programming language for the implementation of aspect-oriented programs. It supports the aspectoriented 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 aspectorientation to the design level.
Proceedings of the 6th international conference on Aspect-oriented software development - AOSD '07, 2007
Join Point Designation Diagrams (JPDDs) permit developers to design aspect-oriented software on an abstract level. Consequently, JPDDs permit developers to communicate their software design independent of the programming language in use. However, developer face two problems. First, they need to understand the semantics of JPDDs in addition to their programming language. Second, after designing aspects using JPDDs, they need to decide how to map them into their programming language. A tool-supported translation of JPDDs into a known aspect-oriented language obviously would ease both problems. However, in order to achieve this goal, it is necessary to determine what a "good" JPDD translation looks like, i.e. it is necessary to have a number of principles that determine the characteristics of a "good" translation. This paper describes a toolsupported translation of JPDDs to aspect-oriented languages. Principles for translating JPDDs are described and a concrete mapping to the aspect-oriented language AspectJ is explained.
Aspect-Oriented Programming is known as a technique for modularizing crosscutting concerns. However, constructs aimed to support crosscutting modularity might actually break class modularity. This can be mitigated by using adequate Design Rules between classes and aspects. We present a language that supports most of the Design Rules found in AO Systems, making easy to express and verify them automatically. We discuss how our language improves crosscutting modularity without breaking class modularity. Also, we give some details about the language semantics expressed in Alloy.
2005
Traditionally in aspect-oriented languages, pointcut designators select joinpoints of a program based on lexical information such as explicit names of program elements. However, this reduces the adaptability of software, since it involves too much information that is hard-coded, and often implementationspecific. We claim that this problem can be reduced by referring to program units through their design intentions. Design intention is represented by annotated design information, which describes for example the behavior of a program element or its intended meaning. In this paper, we analyze four techniques that are regularly used in state-of-the-art object-oriented languages in associating design information with program elements. Also, the usage of design information in the weaving process of aspect-oriented languages is illustrated and their deficiencies are outlined. Accordingly, we formulate requirements for the proper application of design information in aspect-oriented programming. We discuss how to use design information for the superimposition of aspects, and how to apply superimposition to bind design information to program elements. To achieve this, we propose language abstractions that support semantic composition: the ability to compose aspects with the elements of the base program that incorporate certain design information. Based on this proposal, we show how the aspect-oriented language Compose* can be extended to support design information. We demonstrate the application of design information to improve the reusability of aspects. The paper ends with related works, a discussion, and conclusions.
Aspect-oriented programming (AOP) is an exciting new development in the field of software engineering. The open-source AspectJt project has taken a leading role in defining what an aspect-oriented programming language should look like and in building tools that enable aspect-oriented techniques to be employed in the development of large-scale commercial software. IBM both contributes to the development of AspectJ and uses it internally with its accompanying IDE (integrated development environment) support, AspectJ Development Tools (AJDT). This paper provides an introduction to aspect-oriented programming using AspectJ and AJDT. We also discuss the role that open source (and being an open-source project) has played in the ongoing development of AspectJ, and how this has facilitated a level of collaboration and exploitation that would not have been possible otherwise.
2000
Aspect-oriented programming (AOP) aims at providing linguistic mechanisms that enable better separation of concerns in program development. Mainstream techniques, like objectoriented programming, do not provide a satisfactory solution to this problem, in that they do not capture the frequent case of aspects that cross-cut system components, and hence cannot be fully encapsulated. On the other hand, AOP is in its early stages, and it is still unclear what are the fundamental design criteria for aspectoriented languages (AOLs). A previous evaluation of a general-purpose AOL suggested that the flexibility gained by the ability to freely intertwine aspect and functional code opens several potential conflicts with the principles of objectorientation. Based on this experience, in this paper we present an alternative approach where the vision of a general-purpose AOL is replaced by the vision of a system where several, independent aspects are gathered, each providing specialized support for a single concern. The hypothesis underlying this work is that such a design approach provides a good compromise between flexibility and preservation of good objectoriented and programming principles.
The Scientific World Journal, 2014
Unified Modeling Language is the most popular and widely used Object-Oriented modelling language in the IT industry. This study focuses on investigating the ability to expand UML to some extent to model crosscutting concerns (Aspects) to support AspectJ. Through a comprehensive literature review, we identify and extensively examine all the available Aspect-Oriented UML modelling approaches and find that the existing Aspect-Oriented Design Modelling approaches using UML cannot be considered to provide a framework for a comprehensive Aspectual UML modelling approach and also that there is a lack of adequate Aspect-Oriented tool support. This study also proposes a set of Aspectual UML semantic rules and attempts to generate AspectJ pseudocode from UML diagrams. The proposed Aspectual UML modelling approach is formally evaluated using a focus group to test six hypotheses regarding performance; a “good design” criteria-based evaluation to assess the quality of the design; and an AspectJ-...
2017
The Aspect-composition is a vital step in aspect modelling. Aspects are composed with each other and with base constructs through pointcuts defined in the aspects. Design languages address this composition by providing composition techniques and directives. However, most of the contemporary design languages lack support for inter-aspect and inner-aspect compositions. Another problem is resolving aspect interference which arises as a result of a composition. Although some techniques have been proposed to overcome aspect interference at the implementation level, the problem needs attention at the modelling level. The eradication of interference and conflicts related to aspect composition at the modelling stage could ensure better implementation and fewer conflicts. This paper provides a composition strategy equipped with new design notations and diagrams to provide support for aspect compositions, as well as inneraspect compositions. The paper also provides a technique to prioritize a...
2009
Designing crosscutting concerns (aspects) is a challenging task. Since crosscutting concerns were not addressed while developing contemporary software design techniques, so they lack support for accommodating representation of such concerns along with base program. Some design languages like UML have been extended to express aspects and their elements but they do not fully represent aspects. Some lack adequate representation of aspect elements and some lack an efficient and reusable composition technique.
Developments in Information & Knowledge Management for Business Applications, 2020
Aspect programming with the use of AspectJ illustrates how the AOP techniques can be used to avoid the occurrence of application problems related to the information systems creation when using the Object-Oriented programming paradigm. Implementation of cross-cutting concerns using OOP forces programmers to repeat many times the same code instructions in the system. The approach provided by Aspect-Oriented programming allows maintaining the modular design of the application by extracting the cross-cutting concerns from it, its modularization in terms of aspects, and its reintegration into the applications main part in the weaving process or with the use of a proxy mechanism.
2007
Modularization of crosscutting concerns is the main benefit provided by Aspect-Oriented constructs. However, current AO languages do not address class modularity adequately. In order to achieve both class and crosscutting modularity, Design Rules for AO Systems should be defined. In this work we propose a language to specify Design Rules that establish the minimum requirements to enable the parallel development of class and aspects. Beyond the modularization improvement, the language creates a simpler and unambiguous specification, supporting the development of mechanisms for automatically checking the specified rules and making easier the using of the parametrization mechanisms.
Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33, 2000
Separation of concerns is a basic engineering principle that is also at the core of object-oriented analysis and design methods in the context of the Unified Modeling Language (UML). The UML gives the designer a rich, but somehow disorganized, set of views on her model as well as many features, such as design pattern occurrences, stereotypes or tag values, allowing her to add nonfunctional information to a model. Aspect-oriented concepts are applied to manage the multitude of design constraints. However, it can then be an overwhelming task to reconcile the various aspects of a model into a working implementation. In this paper, we introduce our UMLAUT framework as a tool for "weaving" aspects when modeling with the UML. This is accompanied with an example of a distributed multimedia application, applying two different weavings: one for implementation, the other one for validation based on model checking technology.
Aspect Oriented Programming (AOP) is a technique used to enhance the separation of concern in software design and implementation. To implement AOP developers most commonly use AspectJ, an extension of the Java language. In order to represent the separation of concerns a new design technique is needed for modeling of aspects. Aspect Oriented Design language (ASDL) is a design notation could build on the existing design language UML. It is capable of supporting many aspects-oriented languages. This research aims to investigate where developers can use aspect-oriented programming in the software development process. This includes how to identify Aspects in the design stage, then how they can be applied in the implementation process in software development .This will lead to improve modularity and reusability of the software. The paper will be a position paper abut Aspect Oriented Software Design, also will investigate several case studies of the design and implementation of a software application that shows how we can identify the Aspect in the process.
Aspect oriented software development is an emerging software development technology that seeks new modularizations of software systems, in computing. Today typical enterprise and internet applications have to tackle “concerns” like security, transactional behavior, logging et al. Many important concerns often crosscut several objects and classes of object oriented systems. AOSD is a favorable model to promote improved separation of concerns, leading to the production of software systems that are easily maintainable. Nevertheless implementation wise AOSD has made remarkable progress and number of efficient technologies has been developed, but there is no satisfactory design solution for AOSD. This position paper presents an analysis of the design languages for aspect oriented programming paradigm. Keywords: Aspect Oriented Software development (AOSD), Aspect Oriented Design Language (AODL), Design language, Modeling Language.
The Journal of Object Technology, 2007
Aspect-Oriented technologies, including Aspect-Oriented Modelling, provide a set of new constructs (e.g., advices or pointcuts), that help to improve the modularisation of crosscutting concerns. However, these new constructions can make it more difficult to understand how a system works as a whole, once all design modules are composed together, because: (1) designers may not be familiar with the new aspect-oriented constructions; and/or (2) aspect-orientation may cause new problems, such as the handling of aspect interactions. A straightforward and simple solution to check how a system works is to execute it. UML and its Action Semantics provide the foundations for modelling and executing object-oriented software systems. This paper presents a UML 2.0 Profile which extends the UML and its Action Semantics for the construction of aspect-oriented executable models and also a model weaver which makes the execution of such models possible. Our approach is illustrated using an Online Book Store system taken from the literature.
Proceedings of the 10th international workshop on Aspect-oriented modeling, 2007
Aspect-Oriented technologies, including Aspect-Oriented Modeling, introduces a set of new constructions, e.g., advices or pointcuts, that improve the modularization of crosscutting concerns. These new constructions can make it more difficult to understand or visualize how a system works after the different (design) modules are composed together. A straightforward and simple mechanism to observe how a system works is to execute it. UML and its Action Semantics provide the foundations for modeling and executing objectoriented software systems. This paper presents an aspectoriented extension to the UML and its Action Semantics for the construction and execution of aspect-oriented models. Before executing such aspect-oriented models, they must be weaved. The corresponding model weaver is also presented in this paper.
2014
Many different aspect oriented languages have been developed since the first presentation of aspect oriented concepts in 1997 by Kiczales et al. In this paper we compare four of the existing languages using different criteria: the aspect oriented concepts implemented, weaving, and whether they require source code modification.
ECOOP'97Object- …, 1997
We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in "tangled" code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspectoriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming. *
Aspect-oriented programming comes with new composition mechanisms which permit to modularize code which crosscuts other modules using traditional composition techniques. Although such mechanisms permit a better modularization they do not guarantee it: if the aspect-oriented code is better modularized depends on the design of the aspect-oriented applications. This paper describes typical design failures in AspectJ and introduces a tool implemented on top of AspectJ which permits to specify design constraints on AspectJ code.
We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in "tangled" code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspectoriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming. *
2020
The success of new programming paradigm such as the Aspect-Oriented Programming (AOP) relies mainly on solid support tools and advanced development environments. However, the productivity is still restricted by a text-based primary input method at coding level, what makes program understanding, building, and maintaining difficult for developers. To reduce such difficulties, we propose to take the AOP out of the conventional style of coding by using a new approach, which is partially visual. The approach is intended to better support the coding process by introducing more interactivity and a high-degree of flexibility. We seek to minimize the influence of language syntax on overall usability by using the ordinary drag-and-drop technique to overcome the weaknesses of text-based style to the of AOP paradigm. Our approach has been implemented in an Eclipse-based prototype tool and evaluated through a controlled experiment to prove its feasibility and usefulness. As preliminary results, ...
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.