ASPECT ORIENTED SOFTWARE DEVELOPMENT - PowerPoint PPT Presentation

About This Presentation
Title:

ASPECT ORIENTED SOFTWARE DEVELOPMENT

Description:

Current Methods and Languages ... Aspect-Oriented Programming ... a general purpose AO programming language. just as Java is a general-purpose OO language ... – PowerPoint PPT presentation

Number of Views:99
Avg rating:3.0/5.0
Slides: 26
Provided by: ebru61
Category:

less

Transcript and Presenter's Notes

Title: ASPECT ORIENTED SOFTWARE DEVELOPMENT


1
ASPECT ORIENTEDSOFTWARE DEVELOPMENT
  • Prepared By Ebru Dogan

2
Presentation Outline
  • Current Methods and Languages
  • Separation of Concerns (SOC)
  • Problem cross-cutting
  • Concepts of Aspect-Oriented Development
  • Aspect Oriented Programming (AOP)
  • Applications Tracer example
  • Integration Aspects and Components
  • Conclusions
  • 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 dont 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 contd
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
Paradigm Abstraction Modularization
Structured programming control flow control structure
Procedural programming computations procedure
Object-oriented programming data types class/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
  • Pointcutexpression 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
  • Define the core/base functionality classes
  • Define the aspect class
  • Define the pointcut
  • Declare the advice
  • 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_progr
    amming
  • http//csl.ensm-douai.fr/fakih/phd
  • Fil05 Aspect-Oriented Software Development by
    R.Filman et al., ISBN 0321219767
Write a Comment
User Comments (0)
About PowerShow.com