Architecture Details of the Dynamic Weaver Framework
The Advantages of the Dynamic Weaver Framework are outlined at the bottom of this page.
In Figure 1 we use a Class Diagram to illustrate the architectural specifications of the Dynamic Weaver Framework through the use of the bounded buffer example. Figure 2 illustrates the Dynamic Weaver Framework's Architectural Specifications.
In general, the aspect-oriented paradigm has the following elements:
- Aspect: is the modular representation for a cross-cutting concern; a concern may cross-cut one or more components; security, concurrency, logging are examples of cross-cutting concerns.
- Core Functional Component: the core functional component can be used as a part of fully operational systems.
- Weaver: is the engine that weaves aspects along with their respective components.
- Join-point: determines the granularity of the weaving process; and in the DWF it is at the method call level.
- Point-cut: an aspect may have different implementations for the different methods; a point-cut represents the specific aspect implementation that will be associated with a specific method(s) on the core functional components. For example different security policies are applied to the different methods defined on the same component.
- Advice: the actual code that will be executed when the control flow reaches the join-points

Figure 3.1: Class Diagram of the Dynamic Weaver Framework

Figure 3.2: Architectural Specifications of the Dynamic Weaver Framework
Advantages of the Dynamic Weaver Framework
- We achieve a high level of abstraction since the designer makes the programmer’s job easier by reasoning about individual concerns in isolation from each other.
- Concern reuse. Separation of crosscutting concerns provides the software with a loose coupling between the different concerns, achieving the usability of a single concern
- No restrictions are imposed by the software application specification. In aspect-oriented software development, software applications must define when they are going to be adapted at run time by specifying the join points. In Dynamic Weaver Framework, the software application is adaptable at run time. Its structure can be inspected and dynamically customized, which means that you do not need to previously specify what might be adapted and at what time.
- The Dynamic Weaver Framework is a language independent framework. The system or the software application may be programmed using any language
- Application concerns are defined at design level and not at the language or the programming language level, which provides a loose coupling between the design and the implementation and that makes an aspect more reusable.
- The Dynamic Weaver Framework achieves a full separation between the functional code and the reusable aspects, which avoids the tangling of application source code, achieving ease of maintenance and adaptation of applications to a new aspect.

