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