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.
2013
Aspect-Oriented Software Development provides a means to modularize concerns of a system which are scattered over multiple system modules. These concerns are known as crosscutting concerns and they cause code to be scattered and tangled in multiple system units. The technique was first proposed at the programming level but evolved up through to the other phases of the software development lifecycle with the passage of time. At the moment, aspect-orientation is addressed in all phases of software development, such as requirements engineering, architecture, design and implementation. This thesis focuses on aspect-oriented software design and provides a design language, Aspect-Oriented Design Language (AODL), to specify, represent and design aspectual constructs. The language has been designed to implement co-designing of aspectual and non-aspectual constructs. The obliviousness between the constructs has been minimized to improve comprehensibility of the models. The language is applied in three phases and for each phase a separate set of design notations has been introduced. The design notations and diagrams are extensions of Unified Modelling Language (UML) and follow UML Meta Object Facility (UML MOF) rules. There is a separate notation for each aspectual construct and a set of design diagrams to represent their structural and behavioural characteristics.
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.
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.
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 application of the aspect oriented programming (AOP) paradigm throughout software cycle development as specification, design, and implementation phases, namely aspect oriented software development (AOSD), emerges as a young and dynamic research area in computer programming. It is a rapidly evolving area and one of the most popular topic for dealing with cross-cutting concerns by the realization of the separation of concerns (SOC) principle. In this paper, we propose a new aspect-oriented profile towards a new AO modelling approach based on the Unified Modelling Language (UML) as one of the most prominent protagonists at the design level.
2006
This report carries out a study that is based on literature of the state-of-the-art in Aspect-Oriented Design Approaches. The goal of this work is to position these design approaches within the full life-cycle of a software engineering process that encompasses requirements analysis, architecture design, detailed design, implementation, maintenance, evolution, etc. The study takes on the form of an evaluation that is based on a set of criteria communicating the goals of this report. The report provides a description and classification of these criteria including a discussion on the influence they have on various software quality factors. A conclusion will present a number of interesting observations about the current state-of-the-art.
2006
Aspect-oriented programming (AOP) has emerged in recent years as a new paradigm for software development. PRISMA is an approach for developing complex and large software systems. It combines the aspect-oriented software development (AOSD) and the component-based software development (CBSD) in an elegant and novel way achieving a better management of crosscutting-concerns and software reusability. PRISMA approach proposes the separation of concerns from the very beginning of the software life-cycle in order to introduce them as reusable aspects of software architecture. PRISMA provides a framework to guide the development of complex and large software systems. The framework is composed by a modelling tool, a .NET middleware, and a compiler to automatically generate the application source code. In this paper, we present the modeling tool of the PRISMA framework and how it supports the reuse and maintenance improvements of the PRISMA model and its aspect- oriented description language (AOSD). We illustrate our proposal and modelling tool using a real-life case, the TeachMover robot
There are some concepts, such as synchronization, error checking, distribution, security, and others, that are dissimilar from the basic functionality of a system, and they are not correct encapsulated when using traditional programming methodolo- gies. Thus, the code corresponding to these concepts result disseminated through the complete system, and therefore the overall software quality decreased. Aspect Oriented Programming (AOP) provides solutions for code scattering promoting the separation of these concepts through mechanisms that allow an adequate abstraction and composition of them, to finally integrate the complete system. The unit that aggregates the entire semantic of each of these concepts is defined as aspect .T he explicit disunion of these concepts enables a more reliable management of software complexity, and a final product of better quality. The key principles applied are modularity, and separation of concerns. During the fist stages, the research related with AOP...
Lecture Notes in Computer Science, 2010
The idea behind Aspect-Oriented Modeling (AOM) is to apply aspect-oriented techniques to (software) models with the aim of modularizing crosscutting concerns. This can be done within different modeling notations, at different levels of abstraction, and at different moments during the software development process. This paper demonstrates the applicability of AOM during the software design phase by presenting parts of an aspect-oriented design of a crisis management system. The design solution proposed in this paper is based on the Reusable Aspect Models (RAM) approach, which allows a modeler to express the structure and behavior of a complex system using class, state and sequence diagrams encapsulated in several aspect models. The paper describes how the model of the "create mission" functionality of the server backend can be decomposed into 23 inter-dependent aspect models. The presentation of the design is followed by a discussion on the lessons learned from the case study. Next, RAM is compared to 8 other AOM approaches according to 6 criteria: language, concern composition, asymmetric and symmetric composition, maturity, and tool support. To conclude the paper, a discussion section points out the features of RAM that specifically support reuse.
IEE proceedings-software, 2004
Proceedings of the 1st international conference on Aspect-oriented software development - AOSD '02, 2002
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.
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...
Citeseer
Aspect-Oriented Software Development (AOSD) is an emerging area with the goal of promoting advanced separation of concerns throughout the software development lifecycle. However, since there are many different approaches to Aspect-Oriented Programming (AOP), it is very difficult to identify the essential concepts and properties for supporting the design of aspect-oriented languages and tools, and effectively promote advances in the field of AOSD. In this context, this paper presents a theory of aspects -a conceptual framework for AOP that provides consistent terminology and basic semantics for thinking about a problem in terms of the core concepts and properties that characterize the aspect-oriented style as an emerging paradigm to software development. This theory has been used for evaluating existing aspect-oriented languages and tools and, in special, it has been used to characterize aSide, an aspect-oriented modeling language.
2001
AOP has matured to become Aspect Oriented Software Development (AOSD) that means the community recognizes the importance of applying aspect orientation to all phases of software development life cycle. Once an initial decomposition of the problem domain identifies software components and the corresponding aspectual properties that cut through these components we would like to be able to express this initial decomposition and carry it to the next life cycle phase. For this refinement process to be effective it must preserve the initial semantics. In this Position paper we propose an initial discussion on UML profile for AO modeling, which we believe will set the stage for AOSD modeling and hence move us towards a truly aspect oriented software systems. We also initiate the discussions regard modeling the orthogonal concerns in the aspectoriented software system, where loosely coupled concerns in different dimensions can be easily modeled and reasoned about in isolation of the core components and aspectual components.
2010
Aspect-oriented programming is an extension to object-oriented programming. It introduces new constructs called “aspects” for representing crosscutting concerns in a system development. These constructs are somewhat similar to object-oriented “classes” but they also have some clear differences in terms of characteristics. This complicated nature of aspects makes their modeling a difficult task. While working on the modeling of new design techniques for aspect-oriented technology, we have come across some unresolved modeling issues and some misconceptions about the nature of aspects and their representation in software design. This paper highlights these misconceptions and outlines some important aspect-oriented modeling issues, such as the modular nature of aspects, their resemblance with classes, and their high coupling with the base program.
Allied Journals, 2015
Aspect-Oriented Software Engineering (AOSE) has emerged a latest and very attractive software development model that is intended to complement and improve a wide variety of modern development areas. In addition, aspect oriented software engineering offers a wide variety of advanced and unique program development and modularization mechanisms. The research has shown that the development of software applications through aspect oriented software engineering mechanisms improves the implementation structure of a software application which has significant influence on a number of important software attributes for instance reduced complexity and enhanced reusability. Hence, these software attributes improves the quality of software development lifecycle as well as results in better software development (Brichau and D’Hondt; Garcia, Kulesza and Sant'Anna). This paper presents a detailed analysis of some of the important aspects associated with aspect oriented software engineering. This paper will outline some of the fundamental areas of aspect orientation approach which are required in contemporary software development. This paper will also discuss the role of aspect oriented software engineering in improving the performance of current software development lifecycles.
ACM SIGSOFT Software Engineering Notes, 2006
There is a need to study various approaches in the use of object-oriented design patterns and aspect oriented design approach in enterprise systems for architecture and its implementation. The development of aspect oriented requirements gathering approach, design notation and environment for development of enterprise systems needs to be further refined in the context of software applications and industry. Current development in aspects and the path to future work in this direction is highlighted regarding developing a general-purpose design language for aspect oriented software development.
Communications of the ACM, 2001
There is growing agreement in the software community about the limitations of object orientation to cope with the problem of building highly reusable, adaptable, and extensible software systems.
2005
Aspect-oriented software development (AOSD) techniques aim at providing means for the systematic identification, modularisation and composition of crosscutting concerns throughout the software life cycle. A number of aspect-oriented programming approaches are available, for instance, AspectJ [2], composition filters , adaptive programming and Hyper/J . The concepts are also being applied at the earlier stages of software development. At the requirements engineering stage, provide means for handling aspectual requirements. Similarly, a number of aspect-oriented specification and design approaches have been proposed. With a range of techniques available to a software engineer at each stage, the task of engineering an aspect-oriented system poses significant challenges. At each development stage, the software engineer needs to employ the most suitable aspect-oriented technique for the application being developed. The choice of technique can be dictated by a number of factors including system requirements, organisational practices, constraints imposed by the tools or development environments, and the nature of the crosscutting concern. The latter implies that multiple techniques may be employed at each stage in conjunction with each other. This hybrid view of separation of concerns has previously been advocated by multi-paradigm approaches and more recently for aspect-oriented programming techniques . As AOSD techniques mature, there is a need for guidelines supporting development of wellengineered aspect-oriented systems. It is the aim of this chapter to provide such guidelines for key phases of the software lifecycle. The guidelines are aimed at describing the distinguishing characteristics of AOSD approaches at each stage and their suitability for the application or concern being modularised. By making these guidelines available, we aim to support the software engineer in choosing the optimal technique or set of techniques at each stage. Note that aspectisation should not be a forced phenomenon. Conventional separation of concerns techniques (e.g. object-oriented approaches) should be used if crosscutting concerns can be cleanly modelled without having to encapsulate them in a separate unit. For instance, a crosscutting concern could be embodied in the choice of specific system architecture rather than an individual unit . However, when this clean separation of a crosscutting concern is not possible, aspect-oriented techniques should be used.
8th Workshop on …, 2006
2012
The aspect-oriented programming has valuable advantages over other programming paradigms, but in turn it presents difficulties when applying the concepts within the stages of analysis and development to reduce the drawbacks of this paradigm. This paper proposes a methodology to reduce the drawbacks of the paradigm, at the same time provides steps that involve elements of common analysis in the Requirements Engineering with Aspects (basic unit of paradigm) in order to create the framework for a specific domain. The proposed methodology brings together some benefits methodologies, but it emphasizes the treatment of the first disadvantages of the programming aspects and the location and identification of aspects and elements; in addition, this article provides a tool that supports some methodology steps by generating part of the framework code base. In the process of treatment issues, the analysis is oriented to the specification of aspects using AspectJ, with rules to locate and determine aspects within its four cyclical stages. Finally, it includes a case study which evaluates the steps in this methodology
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.