Home About IUP Magazines Journals Books Amicus Archives
     
A Guided Tour | Recommend | Links | Subscriber Services | Feedback | Subscribe Online
 
The IUP Journal of Information Technology :
A Comparative Study of Aspect-Oriented Methodology with Module-Oriented and Object-Oriented Methodologies
:
:
:
:
:
:
:
:
:
 
 
 
 
 
 
 

In empirical comparisons of Aspect-Oriented (AO) to Object-Oriented (OO) and OO to Module-Oriented (MO) systems, system properties like modularity, understandability, reusability, maintainability, and testability have often been inferred from other metrics, such as lines of code and modularity. In this paper, the above mentioned software quality attributes/system properties have been compared for the current popular programming approaches, i.e., Module-Oriented Approach (MOA) (also known as procedural approach), Object-Oriented Approach (OOA) and Aspect-Oriented Approach (AOA). This paper illustrates that in case of crosscutting concerns/properties in a big application, AOA with illustration of Aspect-Oriented Programs (AOP) has improved the aforementioned system properties/quality attributes efficiently, than MOA and OOA.

Software development is a highly complex and intellect-Oriented activity. In the early days of program development, developers wrote programs using machine language in which programmers spent more time thinking about a particular machine's instruction set than the problem at hand. Gradually, programmers migrated to using higher-level languages.In the 1970s, MOA was the dominant approach to software development. Modular programming is a programming paradigm based on the concept of procedure call (also known as subroutine, method and function). Any given procedure might be called at a point during the course of execution of the program. Modular programming is a better choice than simple sequential or unstructured programming in many situations which involve moderate complexity, or which require significant ease of maintainability. But, as the complexity increases, better techniques are required.

OOA aimed at removing some of the flaws encountered with MOA. It has now become the mainstream programming paradigm where real world problems are decomposed into objects that abstract behavior and data in a single unit (Booch G, 1994). Object-Oriented Programming (OOP) encourages software reuse by providing design and language constructs for modularity, encapsulation, inheritance and polymorphism (Rumbaugh J et al., 1991; Jacobson I et al., 1992).

Although OOP/OOA has met great success in modeling and implementing complex software systems, yet, it has limitations. Practical experience with large projects has shown that developers may face some problems with maintaining their code because it becomes increasingly difficult to clearly separate concerns such as readability, security, modifiability, etc., into modules. An attempt to do a minor change in the program design may require several updates to a large number of unrelated modules. Aspect-Oriented Software Development (AOSD) is a new technique to support separation of concerns in software development (Bergmans L and Aksits M, 2001; Kiczales G et al., 1997; Lieberher K et al., 2001; Tarr P et al., 1999).

 
 
 

A Comparative Study of Aspect-Oriented Methodology with Module-Oriented and Object-Oriented Methodologies, Module-Oriented, Object-Oriented Methodologies, empirical comparisons, Aspect-Oriented (AO), Object-Oriented, Module-Oriented (MO) systems, system modularity, reusability, maintainability, and testability metrics.