Presentation is loading. Please wait.

Presentation is loading. Please wait.

ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.

Similar presentations


Presentation on theme: "ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan."— Presentation transcript:

1 ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan

2 Presentation Outline 1. Current Methods and Languages 2. Separation of Concerns (SOC) 3. Problem: cross-cutting 4. Concepts of Aspect-Oriented Development 5. Aspect Oriented Programming (AOP) 6. Applications: Tracer example 7. Integration Aspects and Components 8. Conclusions 9. References

3 Current Methods and Languages Support abstraction mechanisms for breaking a system down into components Concentrate on finding and composing functional units

4 Benefits of Good Modularity Also known as “clean separation of concerns”  no scattered code  no tangling  highly cohesive & loosely coupled

5 Separation of Concerns - Cohesion Cohesive component performs only one concern/task

6 Separation of Concerns - Coupling Two components are independent if they do not have interactions Highly coupled components have many dependencies/interactions

7 Modularity is not always possible... Some concerns don’t localize to objects … their code tends to be orthogonal to the rest of the requirements … and is spread out through many modules

8 Examples of crosscutting concerns  Synchronization  Real-time constraints  Error-checking  Object interaction constraints  Memory management  Persistency  Security  Caching  Logging  Monitoring  Testing  Domain specific optimization ...

9 Example - Figure Editor - Design

10 Figure Editor Example –cont’d

11 Crosscutting Concern - Example

12 Aspect-oriented development Aspect-oriented development addresses separation of concerns (SOC) Concerns are associated with cross-cutting Cross-cutting concerns are implemented as aspects and are dynamically woven into a program

13 Motivation for Aspect-Oriented Programming Programming paradigm for encapsulating crosscutting concerns into aspects. AOP builds on top of other programming paradigms: object-oriented, procedural or functional. It does not supplant them.

14 Key Abstractions for Different Programming Paradigms ParadigmAbstractionModularization Structured programming control flowcontrol structure Procedural programming computationsprocedure Object-oriented programming data typesclass/object Aspect-Oriented programming crosscutting concerns aspect

15 Concepts of AOP (I) Aspect: unit encapsulating a crosscutting concern. Join point: point in the execution of a program where an aspect might intervene. “[...] whenever condition C arises, perform action A”  Pointcut:expression of a subset of join points (condition C)  Advice: piece of code for action A.  Pointcuts and advice encapsulated into aspects.

16 Concepts of AOP (II) Weaving

17 Few Examples of Existing AOP technologies  AspectJ  HyperJ  AspectC++  Aspect#  Caesar  CompositionFilters  AspectWerkz  JBoss-AOP

18 Most Popular AOP technology AspectJ  a general purpose AO programming language  just as Java is a general-purpose OO language  extension to Java

19 AspectJ Five simple steps to create an AOP 1. Define the core/base functionality classes 2. Define the aspect class 3. Define the pointcut 4. Declare the advice 5. Weave & Compile

20 Tracer Example – Without AOP

21 Tracer Example – With AOP

22 Advantages of AOP Improves performance Allows better code reuse Enables better code encapsulation

23 Componentizing Aspects Representing each aspect as a single reusable component Map the characteristics of a component on aspect Explore the applicability of concepts on aspect

24 Conclusions Crosscutting concerns are typically scattered over several modules and result in tangled code. This reduces the modularity and as such the quality of the software system. AOSD provides explicit abstractions mechanisms to represent these so-called aspects and compose these into programs. Increases the modularity of systems.

25 References http://www.aosd.net/ http://www.eclipse.org/aspectj/ http://en.wikipedia.org/wiki/Aspect- oriented_programming http://csl.ensm-douai.fr/fakih/phd [Fil05] “Aspect-Oriented Software Development” by R.Filman et al., ISBN: 0321219767


Download ppt "ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan."

Similar presentations


Ads by Google