Aspect Oriented Software Development

  • 1,979 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,979
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Otavio  Ferreira  (@otaviofff)   Technical  Architect,  Scrum  Master   Oct  2007  
  • 2. •  AOSD  tag  cloud   modularity   aspect   dominant   decomposi@on   AOSD   concern   core  concern   October  2007   AOP   separa@on  of   concerns   advice   join  point   cross-­‐cuCng   concerns   MIH  SWAT  Team     point  cut   2  
  • 3. •  Concern   –  An  area  of  interest  or  focus  in  a  system.   –  The  primary  criteria  for  decomposing  SW  into   smaller,  more  manageable  and  comprehensible   parts.   Text   Picture   Video   Quote   Link   Chat   Tumblelog   October  2007   MIH  SWAT  Team     Caching   Logging   Excep@on  Handling   3  
  • 4. •  Separa@on  of  concerns   –  Based  on  the  Divide-­‐and-­‐Conquer  strategy.   –  Focused  on  breaking  down     the  SW  into  dis@nct  parts     that  overlap  in  func@onality     as  liUle  as  possible.   October  2007   MIH  SWAT  Team     4  
  • 5. •  Core  concern   –  Core  business  related  concern.   –  Domain  specific  concern.   –  Func@onal  requirement.   –  Can  be  cleanly  encapsulated  in  a  generalized   procedure  (i.e.  object,  method,  procedure,  API).   October  2007   MIH  SWAT  Team     5  
  • 6. •  Cross-­‐cuCng  concern   –  Common  func@onality  orthogonal  to  core   concern.   –  Non-­‐func@onal  requirement.   –  Can  NOT  be  cleanly  encapsulated  in  a  generalized   procedure  (i.e.  object,  method,  procedure,  API).   October  2007   MIH  SWAT  Team     6  
  • 7. •  Dominant  decomposi@on   –  The  SW  can  be  modularized  in  only  one  way  at  a   @me.   –  Concerns  that  do  not  align  with  that   modulariza@on  end  up  scaUered  across  many   modules  and  tangled  with  one  another.     October  2007   MIH  SWAT  Team     7  
  • 8. •  ScaUering  and  tangling   –  Cross-­‐cuCng  concerns  o^en  cannot  be  cleanly   decomposed  from  the  rest  of  the  system  in  both   the  design  and  implementa@on.   Excep@on  Handling   Logging   October  2007   MIH  SWAT  Team     8  
  • 9. •  Aspect  (Finally!)   –  A  part  of  a  program  that  cross-­‐cuts  its  core   concerns,  therefore  “viola@ng”  its  separa@on  of   concerns.   Logging     Excep@on  Handling   October  2007   MIH  SWAT  Team     9  
  • 10. •  Modularity   –  AOP    is  an  advance  in  modulariza@on.   –  Loosely  coupled  concerns  /  components.     October  2007   MIH  SWAT  Team     10  
  • 11. •  Aspect-­‐oriented  programming   –  A  technique  used  to  support  the  programmer  in   cleanly  separa@ng  components  and  aspects  from   each  other.   –  Centers  its  aUen@on  on  the  code  modulariza@on,   providing  mechanisms  to  separate  cross-­‐cuCng   concerns  at  code  level.   –  Related  to  the  language.   October  2007   MIH  SWAT  Team     11  
  • 12. •  Aspect-­‐oriented  so^ware  development   –   A  combina@on  of  mechanisms  and   methodologies  that  facilitate  in  separa@ng   concerns  at  different  abstrac@on  levels.   –  Uses  a  combina@on  of  language,  environment,   and  method.   October  2007   MIH  SWAT  Team     12  
  • 13. •  Aspect-­‐oriented  applica@on   –  Consists  of:   •  Component  language  (C#,  Java,  etc.)   •  Aspect-­‐oriented  language  /  framework   •  Aspect  weaver   October  2007   MIH  SWAT  Team     13