Aspect Oriented Software Engineering

Page 1

International Journal of Engineering, Management & Sciences (IJEMS) ISSN-2348 –3733, Volume-2, Issue-4, April 2015

Aspect Oriented Software Engineering Marwan Ali Albahar  Abstract— 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. Index Terms—— Aspect-Oriented Software, Software Components, Concern Modeling.

I. INTRODUCTION In the majority of huge software applications, it is difficult for the software development teams to understand the relationships between the software components and requirements. In fact, a number of software components can be implemented through a single requirement as well as each software component can have the ingredients of a number of requirements. In other words, the implementation of a change in the requirements can require from the software development team to completely understand and modify a number of other components. On the other hand, a software component is intended to provide some fundamental functionality however it can also contain code that can be used to implement a number of software requirements. In case when the software development team needs to reuse some of the important system components, it can be difficult or costly to reuse such components for the reason that reuse sometimes requires from software developers to make changes to these components in order to eliminate additional code that has no relationship with the key functionality of the software component (Sommerville 566; Nakagawa, Ferrari and Sasaki). In this scenario, AOSE is a very helpful technique for software development that has been developed to deal with this issue in order that it becomes easy for the software Manuscript received April 24, 2015. Marwan Ali Albahar, Department of Computer Science, Frost Burg State University, Maryland, USA

29

development team to maintain and reuse the software components. Basically, the fundamental idea of AOSE is based on the concept of abstractions which are acknowledged as aspects. Additionally, these aspects are used to apply some of the core system functionality that can be required at various different sections or areas in a software application. In addition, these aspects are used to capture functionality that coexists and overlaps with other functionality that is the part of a system. However, these aspects are utilized in combination with other abstractions for instance methods and objects. In this scenario, a working aspect-oriented software application can be developed by automatically integrating (merging) methods, objects and aspects, along with requirements specifications those were mentioned in the program source code (Sommerville 566; Nakagawa, Ferrari and Sasaki). One of the most important features of these aspects is that they contain a description of where they should be integrated in a software application or specific components, along with the code executing the crosscutting feature. However, a software programmer can mention that the cross-cutting source code is added after or before a definite routine call or when a call will be made to that attribute. Fundamentally, the aspect is merged into the key software program with the intention of building a new improved system (Sommerville 566; Wampler). One of the most important advantages of aspect-oriented software engineering is that it is very useful in the separating the concerns. The research has shown that splitting concerns into several autonomous components instead of merging a number of diverse concerns in the single consistent abstraction is a noble software development approach. In other words, the separation of cross-cutting concerns into different aspects makes it easy for software development team to understand, modify and reuse autonomously, even without having the need for where the code is written in the application. This situation can be better understood with the aid of an example in which a user authentication can be denoted as an aspect that is created to ask the used for a login name and password. In this scenario, this routine can be automatically integrated into the software application all the way through the code wherever authentication mechanism is required. For instance, a client asks the software development team to add a requirement into the system. In this requirement a user needs to be authenticated before giving them permission to make any modification to personal details saved in a database. However, the software development team can denote this requirement as an aspect by mentioning that the authentication code must be added before any call to routines that are used to make any change to personal details. Afterward, this requirement can be further extended for

www.alliedjournals.com


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.