Aspect-oriented software development (AOSD) is a software programming solution built to address modularity deficiencies of traditional software development approaches such as structural, procedural and object-oriented programming methods. It is an approach that is designed to complement the conventional designs rather than replace them.
AOSD is designed to have new modularization of systems in a bid to separate secondary functions from main or primary business logic. AOSD allows many concerns to be represented in separate units and automatically joined to have a complete working system.
AOSD, in brief, focuses first on identification, specification and also on the representation of concerns which are cross-cutting. It also involves the modularization of these concerns into distinct functional units and finally their automation to work together as a complete system.
The Problem With Traditional Software Development
Traditional software design is concerned with splitting software systems into primary functional units with the knowledge that concerns don’t fit properly into the primary units. In the traditional software process, the programmer is left to write the code of each corresponding function and to also ensure all issues of concern are properly addressed. The programmer has to do a whole lot of dealing with issues on interactions and execution of expected behavior at the time intended. This concern encompasses a lot of primary units in systems which becomes a problem during development and maintenance of the system. AOSD is designed to handle this difficulty efficiently.
The Impact Of Cross-Cutting
In AOSD, an aspect of the program is said to exhibit across-cutting concern if it affects other concerns. A concern here simply describes sets of information that has an effect on the code of the program. The cross-cutting concerns cannot be neatly decomposed in both implementation and design from the other parts of the computer program. This invariably can result in duplicate code or scattering in common terms.
The drive for implementing AOSD comes from the need to address the problems resulting from code tangling and scattering that is presented by cross-cutting concerns. For scattering, the code of the concern is spread across many modules. This implementation is not modular. The implementation affects many modules. For a tangling concern likewise, its code is a code that implements other concerns. For this module, it lacks cohesiveness.
Now, you cannot modularize cross-cutting concerns by applying the decomposition principles of the traditional programming languages because they do not have the same decomposition rules. AOSD addresses this via the provision of systemic identification, representation, separation, and composition. Cross-cutting concerns are rather encapsulated in distinct modules referred to as aspects. Aspects help to promote localization which is required to solve the problem of crosscutting concerns. As a result, this improves modularization, thus, reducing various costs of evolution, maintenance, and development.
Top Features Of Aspect-Oriented Software Development
* AOSD focuses on core areas of identification and investigation, specification and representation of concerns that can present crosscutting concerns
* AOSD gives complementary benefits and can be used along with other coding standards.
* AOSD ensures better modularization mechanisms of program designs, thereby reducing software design, and maintenance and development costs.
* AOSD is a better way to handle localization of concerns that are cross-cutting because concerns are compressed into various modules.
* AOSD makes available software coding methods and tools to support modularization at the source code stage.
* AOSD ensures improved and smaller size of code as a result of addressing the cross-cutting issues
* AOSD encourages the reuse of code created by the modularization technique.
Aspect-oriented software development seeks a better way to apply modularization in software development by effectively handling the issues of cross-cuttng concerns.