You are on page 1of 1

Introduction

Along the last few decades, we could assist to an impressive development of


programming languages and techniques that addresses a large spectrum of
problems. Business processes, which activities relies on computer-based solution,
are a good example. At the beginning, computers were used within businesses to
address very specific problems. The user was commonly a computer specialist.
Nowadays, due to the explosion of internet, having access to a plethora of
information is much easier for everyone. And because computer (and software)
designing has drastically improved within this last years, (almost) every problem can
be computationally solved: managing our bank account while being at home, pay
using credit card electronically, use software to visualize statistical data, and so on.
Programming language has evolved in a way that we, as programmers, don’t have to
take care anymore about how we should implement a software solution using
machine-instructions. Object Oriented Programming (OOP) enabled us to think the
implementation as a combination of specific objects, which leads to object
abstraction. Aspect Oriented Programming (AOP) focuses on concern abstraction.
Aspect-Oriented Programming (AOP) complements OO programming by allowing the
developer to dynamically modify the static OO model to create a system that can
grow to meet new requirements. Just as objects in the real world can change their
states during their lifecycles, an application can adopt new characteristics as it
develops

Aspect Oriented Programming is a programming methodology which enables a clear


separation of concerns in software applications. A concern in mean of software
development can be understood as” a specific requirement that must be addressed
in order to satisfy the overall system goal”. That is, concerns can be subdivided in
two subgroups:

Core concerns Specify: the main functionality of a software module, such as account
withdrawing or a button click behavior. We can define this as the business logic of
our implementation.

Crosscutting concerns Specify the peripheral requirements that cross multiple


modules, such as transaction, threading or authentication

You might also like