Crosscutting Concerns at Enterprise Architecture
Level
Fabiana Jack Nogueira Santos, Flávia Maria Santoro, Claudia Cappelli
Department of Applied Informatics - UNIRIO
Rio de Janeiro, Brazil
{fabiana.nogueira, flavia.santoro, claudia.cappelli}@uniriotec.br
Abstract— Aspect-Orientated approach was created to solve
scattering and tangling issues generated by the implementation of
crosscutting requirements in programming. This approach has
been proposed in many research areas regarding the entire
process of software development, from requirements and
business process models to code generating. Enterprise
Architecture (EA) allows structural organization of artifacts
generated during Information Systems development and reflects
relational view existent between the artifacts, but, in general, it
disregards the crosscutting concerns existent between them. In
this paper, we present a scenario of these concerns at EA level
using the Zachman Framework.
Keywords-Enterprise Architecture; Crosscutting Concerns;
Aspect-Orientatio; Zachman Framework
I. INTRODUCTION
The development of Information Systems (IS)
encompasses three distinct phases: definition, development
and support [1]. In the definition phase, the IS will be defined,
modeled and understood. The Software Requirements
Engineering helps to understand the problem and the needs of
the users. This phase focuses on “the process of modeling
data, function, and performance of the software to be
developed” [1]. At the end the functional and non-functional
requirements are known as a list of necessities.
These requirements will be implemented during code
generation. At this moment, a problem can emerge. Parts of
the code can be scattered in many places or tangled with
others within the code. These parts of the code are named
crosscutting requirements [2].
To solve the problem of low modularity of crosscutting
requirements, [2] proposed AOP (Aspect-Oriented
Programming). This problem hinders the generation,
maintenance and evolution of code. In this approach, the
Aspects are abstractions used to modularize concerns that
crosscut the entire code of software.
The notion of Aspects was also incorporated in other
phases of software development, thus generating the AOSD
(Aspect-Oriented Software Development) [3]. In this approach
new abstractions and mechanisms of composition are defined.
The separation of concerns seep into all phases of software
development [4], but each phase considers the crosscutting
concerns with a specific focus, i.e. Requirements Engineering
has several proposals to represent the crosscutting concerns,
such as Security. Nevertheless, these proposals do not pay
attention to the fact that the definition of Security will be
reflected in several system components that implement such
concern within the whole enterprise. So the artifacts generated
through the phases of software development have crosscutting
concerns embedded and repeated [4]. The issue discussed in
this research is that IS have crosscutting concerns not spelled
out, making it difficult to maintain and understand them, as
well as compromising the reuse of such concerns in the
development of other IS unless they are explicitly represented
at Enterprise Architecture (EA) level.
In this paper, we first review literature in Aspect-Oriented
phases of software development and in the business process
modeling. Then we present the concept of Enterprise
Architecture and the Zachman Framework, followed by our
main contribution: a scenario of crosscutting concerns
representation at Enterprise Architecture level. After that,
related work is presented, and the last section concludes the
paper pointing the contribution of the work and future
research.
II. ASPECT-ORIENTATION
Aspect-Orientation was first proposed on programming
area [2]. An Aspect is an abstraction to encapsulate
crosscutting concerns; it is composed of joinpoints and
advices. A joinpoint indicate the place on the software code
where the Aspect is going to act. An advice is the code that
will be executed when the joinpoint is reached, they may
occur before, after or around the joinpoint. The set of
joinpoints is named pointcut, it specifies all places in the base
code where a certain aspect may act. The components
required to implement aspect-oriented programming are:
component language to allow base component coding,
aspectual language to allow creation of aspects, aspectual
weaver to combine both languages and component and
aspectual programs to implement the component and aspectual
languages [2]. There are some proposals to treat crosscutting
concerns at higher levels of abstraction as in the requirements
engineering and business process models, some of them will
be described in the following sub-sections.
A. Requirements Engineering
There are some proposals to identify, analyze and model
crosscutting requirements. This preliminary identification
prevents from getting crosscutting concerns hidden and
978-1-4577-0653-0/11/$26.00 ©2011 IEEE 345