Documente Academic
Documente Profesional
Documente Cultură
43
ABSTRACT
Aspect Oriented Programming has become centre of attraction since its inception in 1996 at Xerox Palo Alto
Research Centre (PARC).It supports the Object Oriented Programming paradigm by separating the cross cutting concerns
from business logic[1].
In 2001 Aspect Oriented Programming was identified as one of the most influential technologies in coming days.
However even after a decade of its birth it is still not being implemented as it was supposed to be. This paper discusses the
limitations of Aspect Oriented Programming in IT Sector.
KEYWORDS: Adoption, Aspect Oriented Programming (AOP), Object Oriented Programming (OOP)
INTRODUCTION
Business has become very complex due to strategies in Information Technology Projects. IT managers have to
face the risk arising out of vendors whether they are single or preferred and high cost due to use of proprietary standards
and tools. Object Oriented Programming (OOP) features software development with the facility of modeling real life
objects in programming languages thereby reducing complexity and increasing efficiency. Separation between application
programmers and system programmers become more and more different. These concerns need to be more and more robust
which cant be implemented within limited timelines of the project.
IT Organizations have tough time in managing all the diverse teams and ensuring project completion within
budget and time. In collaborative software development many outsourcing partners get involved based on their domain
competency, team size, skill set and other business requirements.
Aspect Oriented Programming helps in referring cross cutting concern which in turn is supposed to lessen the cost
and complexity. The objective of this research is to identify pain areas and limitations of Aspect Oriented Programming on
a big scale software development using enterprise wide computing. As the popularity of computer technology application
is increasing the size of software is becoming bigger Software developers develop and renovate the programming
technology by achieving more perfect software to improve the efficiency of developing and maintaining the software.
OOP technology is widely used to develop software at present. An OOP program is created with a series of object
which are basic module of the program.
The communication happens by sending message within object. The special features of OOP are inheritance
polymorphism and encapsulation. Now a days some special features are more granular module, more excellent reusability
and extensibility and increase the efficiency of programming.
Although, OOP has excellent features, still it has limitations. AOP offsets the limitations of OOP. The technology
of AOP is more ideal and modularized.
44
Swati Parashar
SURVEY
The Basic Concept of AOP
Aspect Oriented Programming cannot be considered as a substitute of Object Oriented Programming, in contrast,
it is the advance and perfect Object Oriented Programming.
AOP is not a substitute of OOP, It is the perfect version of OOP. OOP describes the vertical relationship between
the core logic object in the system using inheritance. AOP is the horizontal action which is encapsulated in different object.
Concepts of Aspect Oriented Programming are
Crosscutting Concerns
It is the purpose of the program. If the code which has to perform a concern is distributed in many classes or
methods, it is known as Crosscutting Concern.
Aspect
An aspect in modularized implementation for a crosscutting concern. It integrates the distributed code which is to
be used for crosscutting concern and for horizontal representation of relation between the objects.
Join Point
A join is used for invoking a method or throwing or throwing an exception.
Advice
An advice is a programming code used to cross objects in a specific join point.
Pointcut
It is basically used for appointing the place where the advice will be applied.
The Implementing Strategy of AOP in Java Platform
Dynamic Proxies
The technique has been imported from Java 1.3 and is used as AOP solution. It has capacity of creating proxy
object automatically for some interfaces without having knowledge of object.
Aspect J
Aspect J defines additional keyword for java. It gives perfect support to AOP. Aspect J needs a compiler to
generate to java core to develop AOP program with aspect J software development kit (SDK) is needed to be installed.
Generation of Dynamic Byte Code
AOP has limitations of implementing dynamic proxies it requires that object which is provided proxy must
implement one or more interfaces. Dynamic bite code generation software is CGLIB. This feature has been widely used by
AOP.
There are two basic platforms which support Aspect Oriented Programming. One of them is Java and the second
one, less known is .NET.
45
46
Swati Parashar
Roger T Alexander [8] and James M Bieman discussed certain aspects like understandability fault tolerance,
cognitive burden in practical scenario. The complexity coming out of weaving process is still not measurable with
accuracy.
Avadhesh Kumar, Rajesh Kumar and P S Grover [10] gave ideas on maintainability of Aspect Oriented Systems
and have found that average impact of change in AO systems is less than of OO systems which indicates better
maintenance in AO systems but still according to them cross cutting concern was very important to maintain this aspect.
Zhao [9]also did some work but that was not applied as it was less practical.
Joon Sang Leau and Doo Hwan Baeb [11]in 2002 proposed an Aspect Oriented Development Framework
(AODF)in which functional behaviours are encapsulated within the components. AODF was supposed to enable intra
component behavior. Open Java has been used providing reflective support during compile time. This provided light on
feature component writing standard.
Roberta Coellio et al[12] in 2010 discussed about the drawbacks of Aspect Oriented Programs realted to exception
handling. A verification tool called SAFE based on static analysis was presented to check the reliability of exception
handling code in Aspect J Programs.
Jianjun Zhao [8] put light on difficulties in AOP software maintenance because less attention has been paid to it
till now.
Gail C Murphy et al found that while evaluating a software engineering methodology three factors are kept in
mind which are validity, realism and cost.
OBSERVATIONS
Jorg Kiezle et al pointed out two important facts in his paper on concurrency and failure of Aspect Oriented
Programming.
Aspect Oriented Language like any other macro language can be useful for coding.
Concurrency and failures are some concerns which are difficult to use unlike other concerns like logging and
exception handling.
Some possible reasons have been listed out to the research problem:
Developers lack of detailed knowledge of AOP and modularized concept.
Developers fail to understand units which are similar but cross cut other modules.
The capabilities of Aspect J and its side effects.
Use of Aspect Oriented Programming in Enterprise
As per review in January /February 2001 by MIT, ten emerging areas of technology will have profound impact on
economy and our lifestyle. One of the said emerging technologies was Aspect Oriented Programming. However, it did not
gain expected popularity.
What is an Enterprise?
Basically enterprise is a collection of organizations having a common set of goals. It may be any government
agency, a corporation or anything else. In those places Aspect Oriented Programming may be required to record failed
47
financial transactions across all divisions which requires architecture of enterprise to be flexible to handle these concerns in
a unified, seamless way independent of other issues like functional requirements.
Use of AOP in Architecture of Enterprise
Aspect oriented Programming provides a way to address orthogonal concerns in a unified approach of an
enterprise architecture.
AOP reduces code tangling, coupling and helping in architecture enforcement.
Figure 1
Problem Definition and Objectives [7]
Social and Psychological Factors
An internal survey of SAP shows that there is lack of experts in Aspect Oriented Programming. Developers feel
less confidence in implementing it and are afraid of effects on their base code.
Technical Factors
For AOP strong support tools for tracing, verifying, debugging is needed. Risks rising out of Aspect are involved.
Economic Factors
Its very difficult to predict the overall cost for its implementation as it is still less used in industries.
RESULTS ANALYSIS
Reasons which have hindered adoption of AOP:
AWARENESS
Less market penetration has lead to very specific usage. Its still less user friendly.
Lack of Supporting Framework
There is still lack of universal platform for AOP framework.
48
Swati Parashar
CONCLUSIONS
Aspect Oriented Programming has been in existence for more than a decade but still it has been as popular as
Object Oriented Programming though its much more efficient. Its penetration into IT sector is still scarce because of less
awareness.
There are still only a few successful implementation known so far. Much study is still needed so that Aspect
Oriented adoption in industry increases to its optimum.
REFERENCES
1.
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier,
John Irwin, European Conference on Object-Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS
1241, June 1997, 2-3
2.
Cristina Videira Lopes, Aspect Oriented Programming: An Historical Perspective - Institute of Software Research,
University of California, Irvine, December 2002, 9-10
3.
Gregor Kiczales, John Lamping, Anurag Mendhekar RG: A case study for Aspect-Oriented Programming,
February 1997,12-13
4.
Karl Lieberherr and david H. Lorenz - Coupling Aspect-Oriented and Adaptive Programming April, 2003, 1-2
5.
John Erwin, Jean-Marc Loingtier, John R. Gilbert, Gregor Kiczales, John lamping, Anurag Mendhekar, Tatiana
Shpeisman - Aspect-Oriented Programming of Sparse Matrix Code - December, 1997, 2-7
6.
Gregor Kiczales, Eric Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm and William G. Griswold - An Overview
of Aspect J June, 2001,1-9
7.
Xin Ma, Lian-he Yang -AOP Research based on Enterprise Application World Academy of Science and
Technology, 2008
8.
Roger T. Alexander, James M. Bieman - Challenges of Aspect Oriented Technology Workshop on Software
Quality, Florida, 2002, 1-3
9.
Jianjun Zhao -Change Impact Analysis for Aspect Oriented Software Evolution Department of Computer
Science and Technology, Fukuoka Institute of Technology 2002, 3-5
10. Avadhesh Kumar, Rajesh Kumar, P. S. Grover - Maintainability of Aspect Oriented Software Systems 2006, 6-7
49
11. Joon-Sang Leea, Doo-Hwan Baeb - An aspect-oriented framework for developing component-based software with
the collaboration-based architectural style, August 2002, 7-9
12. Roberta Coelho, Arndt von Staa, Uir Kulesza, Awais Rashid, Carlos Lucena Unveiling and taming liabilities of
aspects in the presence of exceptions: A static analysis based approach June 2010, 1-4
13. Jianjun Zhao - Maintenance Support for Aspect-Oriented Programs: Opportunities and Challenges 2008, 2, 6
14. Gail C. Murphy, Member, IEEE Computer Society, Robert J. Walker, Student Member, IEEE, and
Elisa L. A. Baniassad - Evaluating Emerging Software Development Technologies: Lessons Learned from
Assessing Aspect-Oriented Programming, August 1999, 1-4
15. Cristina Videira Lopes, Martin Lippert - A Study on Exception Detection and Handling Using Aspect-Oriented
Programming 2000, 10-11
16. Freddy Munoz, Benoit Baudry, Romain Delamare, Yves Le Traon - Inquiring the Usage of Aspect-Oriented
Programming: An Empirical Study 2009, 2-4
17. http://www.ccs.neu.edu/research/demeter/aop/publicity/mit-tech-review.html - visited on 10-Dec-2012
18. Uir
50
Swati Parashar
31. HU Bing, CHENG Jiaxing GUO Jianye, An Approach to Implement AOP Framework Under .NET Platform,
Computer and Modernization, 2009 (11).
32. TANG Zukai, PENG Zhiyong, Survey of Aspect-Oriented Programming Language, Journal of Frontiers of
Computer Science and Technology, 2010 (4).
33. MENG Jie, Mastering SpringJava lightweight Framework Developing Practice, BeiJing: Posts&Telecom Press,
2006(10).
34. Tom Archer, Andrew Whitechapel, Inside C#, Second Edition, BeiJing: China Machine Press, 2003 (7).
35. Reference: http://www.theserverside.com/news/1365141/AspectWerkz-20-An-Extensible-Aspect-Container