The aspects of software development make sure that all the requirements are tapped well and made sure to fetch the right product which is usable and deployable in the market. Object oriented programming has been long used for fetching the right real world scenario and successful mapping of various events. However, some of its pitfalls have encouraged the researchers for better techniques to address the cross cutting techniques for software development. Hence the Aspect oriented software development has come into picture to address the maintenance and development of the software products.
Object Oriented Development (OOD) is the superb ability to represent complex relationships as well as to represent data and data processing with a consistent notation so that it is easily amendable at the analysis and design phase (Hoffer, 2002).
The depiction of OOD is made with the help of diagrams which depict the business scenario and the very objective of the software to be built. The association of the various objects and their interaction is depicted with the help of those diagrams. Unlike the other software development paradigms, OOD makes sure that the dynamism in the behavior of the associated entities and the processes which they would be subjected to would be depicted quite distinctly in nature so that it gets a whole new meaning to the design phase (Sommerville, 2003).
OOD stands quite ideal for representing the real world scenario which would most appropriately be interpreted by all levels of people in the software development team and also the requirements can be mapped distinctly to represent the business situation. The process to be followed is defined in the coming sections which make the development atmosphere quite distinct.
2. AOSD definition:
Tom (2003) mentions that AOSD is a realistic application containing a large number of aspects that increase the likelihood that one single method is captured by multiple aspects. The aspects capture various different implementations in a crosscut definition. AOSD enables developers to manage a set of discriminating properties where the crosscut of each aspect is based on a particular coding convention. Tom (2003) mentions that methods participate in more than one aspect and they cannot easily obey many different coding conventions at the same time.
3. Demerits of OOD and how AOSD addresses it?
The following can be termed as the disadvantages of the object oriented development:
1. Lack of a System Functional Model :
The OOD only creates functional model within the objects and not the entire system. This is the biggest drawback of the OOD where it has equal opportunity to miss some crucial requirements in the design process. AOSD takes full care of the cross-cutting mechanisms that lead to addressing minutely the functional and non-functional requirements of the system well.
2. System performance and sizing is difficult:
The OOD model does not easily describe the associations and communications between objects. However, the basic concept of OOD is that the object need not know who is invoking it and how the messages are exchanged. While this leads to a flexible design, performance modeling cannot be handled readily. This is the exact phase where AOSD takes great advantage as cross cutting techniques that exist between codes and functions are managed appropriately using interfaces and enough architecture.
3. Identification objects is week:
The OOD methodology by itself does not provide support for identifying which objects will generate an optimal system design. Specifically, there is no single diagram that shows all of the interfaces between objects. Since coupling is a major factor in system complexity, not having this information makes architecture component selection a hit or miss proposition (Coad, 2001). The system design in case of AOSD is completely different. It addresses the concerns of fetching the right design for making sure that all scattering of the codes are handled well.
4. OOP and AOSD comparison in development phases:
The following are the development phases which are undertaken when the software passes through the developmental phases to develop into a deliverable:
· In the OOD analysis phase, a model of the real-world application is developed showing its essential properties. It abstracts concepts from the application domain and describes what the intended system must do, rather than how it will be done. AOSD analysis phases take into account the cross cutting features which is essential for changing codes between programs and make sure to establish interfaces named as aspect weaving for general purpose.
· In the OOD design phase, the definition as to the ‘how’ the application-oriented analysis model will be realized in the implementation environment. It requires identification and investigation of the consequences the implementation environment will have on the design (Pressman, 2003). All strategic decisions such as how the DBMS is to be incorporated, how process communications and error handling are to be achieved and what component libraries are to be reused-are made. These decisions are incorporated into a first- cut design model that adapts the implementation environment. Finally the formalization is done to describe the interaction between the objects. AOSD ensures the use of program slicing, code analysis, model checking and many other methods which makes sure to fetch the development team with better insights of flexibility and right adoption of software principals.
· Implementation and Maintenance of the OOD would be in programming languages which supports all the features of the OOPS concepts and methods. The database also would be designed in the similar manner so as to keep in synchronization with the front end interface. This is the primary difference holder among the OOP and AOSD. The cross cutting methods also come along with the code as it forms a crucial portion for change management techniques. The installation component makes sure that all the various aspects for quick change of the system is enabled and made sure to take up such advantage. The advice bodies incorporated in the codes make sure that all the necessary updation features for definite localization is identified and forms a part of the code. Such codes offer better support for the programs to know its association and learn its detail penetrations so that any change management initiative can be taken up successfully without much resource consumption (AOSD.net, 2008).
AOSD.net (2008). Retrieved 1, November 2008 from
Coad, P., and E. Yourdon (2001). Object-Oriented Design.
Englewood Cliffs, NJ: Prentice hall.
Booch, G. (1994). Object-Oriented analysis and Design with
Application. 2nd Ed. Redwood City, CA.
Hoffer A. Jeffery (2002). Modern Systems Analysis and Design,
Jacobson, I (2002). Object-Oriented Software Engineering: A use
case driven approach, Addison-Wesley.
Silvia, T Acu (2000). A Process model applicable to Software
engineering and knowledge Engineering.
Sommerville, Ian (2003). Software Engineering. Pearson
Tom, Tourwe (2003). On the Existence of the AOSD Evolution
Web links-Retrieved 1, Nov 2008 from