Article | REF: H3170 V1

Aspect-based programming

Author: Lionel SEINTURIER

Publication date: July 10, 2016

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


Overview

Français

ABSTRACT

Aspect-oriented programming (AOP) is a software development style that appeared in the second half of the 1990s. Aspect-oriented programming complements existing styles – object-, procedure-, and function-based – with a support for crosscutting programming functionalities. It enables the modularity of programs to be improved. This article presents the origins of aspect-oriented programming, its concepts and how they are implemented by two major approaches in the domain: the AspectJ programming language and the Spring AOP framework.

Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.

Read the article

AUTHOR

  • Lionel SEINTURIER: University Professor - University of Lille, Villeneuve d'Ascq, France

 INTRODUCTION

Aspect-oriented programming is a software development style that emerged in the second half of the 1990s. It is part of a line of programming styles that have been proposed, over the course of the evolution of computing, to improve the structuring of programs. The underlying idea is that the better a computer language can structure programs, the easier it will be to design, write, understand, maintain and evolve them. Predecessors of the aspect-oriented programming style include functional programming, procedural programming, modular programming, object-oriented programming and reflective programming. Each of these styles has contributed concepts that make the structure of a program clearer and more readable. Likewise, aspect-oriented programming capitalizes on the experience gained with these programming styles, enabling us to make further progress in structuring computer programs. Aspect-oriented programming does not call into question the programming styles that preceded it. On the contrary, aspect-oriented programming languages continue to build on existing styles, especially object-oriented programming. It complements them by enhancing their ability to write more modular, better-structured programs.

Aspect-oriented programming was born out of the realization that, in many computer programs, the writing of certain functionalities is poorly articulated with the rest of the program, leading to code that is difficult to read, poorly structured and difficult to maintain. These functions are then said to be transversal to the rest of the program. Aspect-oriented programming is based on this observation and introduces the notion of aspect, a new element in the structuring of computer programs that enables cross-functional functions to be written in a clearer, better-structured way, making the program easier to maintain.

Given the lack of concepts for taking cross-functional features into account, aspect-oriented programming tackles the problem of what are the right programming artifacts for transcribing cross-functional features and, above all, how these can be integrated with the rest of the program. To this end, aspect-oriented programming defines the concept of aspect as a set of cuts and plug-ins. Cuts define the aspect's cross-functionality and enable its integration with the rest of the program, while plug-ins define the aspect's behavior.

In this article, we present the basic concepts of aspect programming and illustrate them with the two approaches most commonly used by the aspect programming developer community: the AspectJ language and the Spring AOP framework.

You do not have access to this resource.

Exclusive to subscribers. 97% yet to be discovered!

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


The Ultimate Scientific and Technical Reference

A Comprehensive Knowledge Base, with over 1,200 authors and 100 scientific advisors
+ More than 10,000 articles and 1,000 how-to sheets, over 800 new or updated articles every year
From design to prototyping, right through to industrialization, the reference for securing the development of your industrial projects

KEYWORDS

Computer   |   programming   |   scripting languages   |   Software development   |   framework   |   aspect


This article is included in

Software technologies and System architectures

This offer includes:

Knowledge Base

Updated and enriched with articles validated by our scientific committees

Services

A set of exclusive tools to complement the resources

Practical Path

Operational and didactic, to guarantee the acquisition of transversal skills

Doc & Quiz

Interactive articles with quizzes, for constructive reading

Subscribe now!

Ongoing reading
Aspect-based programming