ࡱ> 9( / 00DTimes New Roman0Wo 0DArialNew Roman0Wo 0X" DWingdingsRoman0Wo 0X0DCourier Newman0Wo 0X1 ` .  @n?" dd@  @@``  TH   C!ccU c $0 @]uʚ;2Nʚ;g4ldld0$ppp@ <4!d!d 0Lp<4dddd 0Lp<4BdBd 0Lp ___PPT9{10}C:\Documents and Settings\mkersten\Desktop\OOPSLA-2000-ASOC.html|  108 8 8?l% XOOPSLA 2000 ASOC Workshop -- Gregor KiczalesO =b2 claims  (what s new here it is not separation of concerns that is an old and well-established goal it is not separation of concern technology procedures, OOP, etc. (N.B. these work very well) it isn t just any kind of tangling solving tangling due to crosscutting concerns  no dominant decomposition =  strong AOP  = no time soon (if at all) can support modular crosscutting code& & even with a dominant decomposition & that s the goal of AspectJ!)+3#.W'Z!$+3#    W     error logging in AspectJ(    2 claims  (what s new here it is not separation of concerns that is an old and well-established goal it is not separation of concern technology procedures, OOP, etc. (N.B. these work very well) it isn t just any kind of tangling solving tangling due to crosscutting concerns  no dominant decomposition =  strong AOP  = no time soon (if at all) can support modular crosscutting code& & even with a dominant decomposition & that s the goal of AspectJ!)+3#.W'Z!$+3#    W     an analogydifferent kinds of picture 2 claims  (what s new here it is not separation of concerns that is an old and well-established goal it is not separation of concern technology procedures, OOP, etc. (N.B. these work very well) it isn t just any kind of tangling solving tangling due to crosscutting concerns  no dominant decomposition =  strong AOP  = no time soon (if at all) can support modular crosscutting code& & even with a dominant decomposition & that s the goal of AspectJ!)+3#.W'Z!$+3#    W     .P.S. concerns, aspects& ( /T  ` ` ̙33` 333MMM` ff3333f` f` f` 3>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>> XP(    6  P   T Click to edit Master title style! !  0    RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0$  =]   @*H  0޽h ? ̙33 Default Design 0 (    NLff U!   n*  A!!AAbb  NPff  !  p*  A!!AAbbd  c $ ?%  4  NSff  B  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S   TTff kU   n*  A!!AAbb   THff k   p*  A!!AAbbH  0Hi ? ̙33 T((  T T Nl ff U!    \* A!!AAbb T N\.ff  !  ^* A!!AAbb T T+ff kU   \* A!!AAbb T THff k   ^* A!!AAbbH T 0Hi ? ̙33 % OOPSLA 2000 ASOC Workshop -- DEBATE: What are the key issues? -- Gregor Kiczales 0H(  r  S     B` 0   H  0޽h ? ̙33  ldp $ (  $ $ Bbg P  Raspect PublicErrorLogging { static Log log = new Log(); pointcut publicInterface (): receptions(public * com.xerox..*.*(..)); static after() throwing (Error e): publicInterface() { log.write(e); } } '3#'3 #'3 #'3$#'3# '3A#b"  3 $ N@H  ?0 0 }#public methods in com.xerox package$ $B $@ ZDjJ? L (  $# ~ P ` $ 0 @` $ 0( ` $ 0 ( L  `  $# P Xf   $  fpgֳgֳ8c?   i FrontDesk*    .  $  f,ugֳgֳ8c? ` .tellHouseKeeping checkIn checkout callSecurity/ /$ L  `  $# P `  $  ``zgֳgֳ8c?   k RoomService*    " $  `gֳgֳ8c? ` (acceptOrder deliver tellCook pickupTrays) )$  fL  ` $# P B  $  `gֳgֳ8c?   JCafe*   $  `ԇgֳgֳ8c? ` seat takeOrder water giveCheck ,   $ 0Č @  ewith respect to functionality: 8 public operations with respect to error logging: 1 public operation$f 242r $ S 0    $ 07;W @ work at PARC (2 H $ 0޽h ? a(? @3b0(  08 @p 00@p` 0 0op0p` 0 0oPp` 0 0opp` 0 0op` 0 0op` 0 0op` 0 0o0  pZ  0 s *P  pZ  0 s *p 0 pZ  0 s * P pZ  0 s * pp  0 BlH@` 5vnode.h 0 BToH_ 9 vm_object.h  0 BrH` 6vm_map.c 0 BvHT 8 vm_fault.c  0 BzH Oufs_readwrite.c$  0 B,H 7 vfs_bio.c 0 B$H  ; vfs_cluster.c  0 BH 1@  8 ufsmount.h 0 BTH? _  J ufs_bmap.c$ 0 BlH_ s   swap_pager.c 0 BH @  ; vnode_pager.c Z 0 s *0 Z 0 s *p  Z 0 s *  Z 0 s *  Z 0 s * P Z 0 s *` Z 0 s *`  Z 0 s *Z  0 s *P  Z !0 s *P@Z "0 s *  Z #0 s * Z $0 s *0 p Z %0 s *p0` Z &0 s *0  pZ '0 s *` Z (0 s * @ Z )0 s *P p Z *0 s *p 0 P Z +0 s * p0 Z ,0 s * p@Z -0 s * pP Z .0 s * ` P Z /0 s * P   10 6H 0 cpre-fetching in C( a0 0H7;W ? work at UBC (2  b0 0 H`   Stangling becomes evident by just flagging all code that has to do with pre-fetchingT 2TH 0 0޽h ? ̙33y )!P3b,(  , 1, 6H 0 cpre-fetching in C(F @P  2, @p` 3, 0op0P ` 4, 0oPP ` 5, 0opP ` 6, 0oP ` 7, 0oP ` 8, 0oP ` 9, 0o0  P Z :, s *P  P Z ;, s *p 0 P Z <, s * P P Z =, s * pP  >, BcH@` 5vnode.h ?, BgH_ 9 vm_object.h  @, BHN@ 6vm_map.c A, BQ4 8 vm_fault.c  B, BTV Oufs_readwrite.c$  C, BlZ 7 vfs_bio.c D, B]  ; vfs_cluster.c  E, Bla @  8 ufsmount.h F, Bd? _  J ufs_bmap.c$ G, Bh_ S   swap_pager.c H, B l   ; vnode_pager.c  I, Zvd @ J, Zvd @P   K, Zvd @`   L, Zvd @p  M, Zvd @0  N, Zvd @@ O, T̙d@   P, Z̙vd @ Q, T̙d0   R, TdP  S, Tdp  T, Td U, Tdp V, T̙dp0@ W, Zvd @0  P X, Td@ Y, Td   Z, TdP P  [, Tdp 0 0  \, Td p ], Td p  ^, T̙d PP  _, Td @P  `, Zvd @ ` P  a, 0s7;W ? work at UBC (2  b, 0 x`   Ystructure of crosscutting concerns emerges by sorting pre-fetching into modular sub-unitsZ 2ZH , 0޽h ? ̙331 11`ST40(  4/F d- T4 O-`B 4 0D{  l2 4 <o)l2 4 <oP v `B 4 0DP3`B 4 0D) `B 4 0Dv  `B 4B 0D) ~ `B  4B 0DE s`B  4 0Dl 08  4 B Rvm_fault    4 BHb mvm_pager_getpages $  4 BHg C  pvnode_pager_getpages $ 4 B|0   h ffs_getpages  $ 4 BT~ , ; check_valid   4 B8t! 9 check_map   4 BȜ?A  >calculate_size x2 4 H3fvd @Zjx2 4 H3fvd @\W  x2 4 H3fvd @v L x2 4 H3fvd @x  r2 4 B̙d;&  r2 4 B̙d; `  4 B`P   8around  4 B@dD Dbefore"   4 BĨ h  Cafter"   4 B   Cafter"  `B 4 0D 4 Bx.  lvm_fault_cflow $T  4# SHZB 4 s *D1ZB  4 s *D1ZB !4 s *D1 "4 Bd K MAccess to non-resident pagel2 #4 <o3)l2 $4 <o l2 %4 <on 3l2 &4 <ot9l2 '4 <o8M `B (4B 0D  )4 BD   : block_read  x2 *4 Hvd @ ?  +4 B$I   = wait_for_read r2 ,4 B̙d\  -4 BQ Cafter"   .4 B _  Dbefore"   /4 B : f  j block_read_cflow "   x2 04 Hvd @v  14 B`p  Daround"   24 B` W Rffs_read   34 B)  JFile system read requestfB 44B 6D1p5`B 54B 0D1[e`B 64 0D15el2 74 <ol2 84 <o-  l2 94 <o   :4 ZZG?Hvd @% ;4 B$.  z ffs_read_cflow "  $ <4 T1pYG?Hd. =4 B3(V    ffs_getpages_cflow"  > >4 B<:   Cafter"   ?4 T1pYG?Hd   @4 ZZG?Hvd @ rb A4 BG&H I8lf  B4 B$Tga  Cafter"  `B C4B 0Dl D4 BUL 2& `B E4 0Dv I  F4 B:;  2& `B G4B 0D r  H4 B:5   2& `B I4B 0D)`B J4B 0DPE   K4 B:Z*> 2&  L4 BL::   2& `B M4 0D* N4 Bt:I-@ 2& 2 O4  `̙dC P4 B:lj Cafter"    R4 61 0 2pre-fetching in  AspectC ( S4 047;W ? work at UBC (2 H 4 0޽h ? A4 ̙33 % OOPSLA 2000 ASOC Workshop -- DEBATE: What are the key issues? -- Gregor Kiczales HN(  Hx H c $   H B@ 0   H H 0޽h ? ̙33   U(      `Êgֳgֳ ?P   F (    ( r   BGp?.( r   BGp? .( r   BG p?  Tgֳgֳ? 5 _)designing and building a simple bridge...*( 2*   s *0JP X(slide from OOPSLA 94 2H  0޽h ? ̙33  iaAB(     `xgֳgֳ ?P   z -   - ,$D 0&N -   - lB  <p?B-BlB  <p?*B* lB  <p?6 lB  <p?**P   T<gֳgֳ?   ^simple statics( 2 z   `     `,$D 0 N  F     F lB   <p? BF BlB   <p? B lB  <p? 6 RN a ! D  a ! DlB  <8c?a a DlB  <8c?  DlB  <8c?! ! DlB  <8c?  DlB  <8c?  DlB  <8c?A A DlB  <8c?  DlB  <8c?  DlB  <8c?a a DlB  <8c?  DlB  <8c?! ! D  T$gֳgֳ? ` emore detailed statics( 2  z 4O   O4 ,$D 0  Tgֳgֳ?4   Esimple dynamics( 2 O   O ,$D 0N x   x lB   <p?ccWlB ! <p?ccx lB " <p?VN>N  # lB $ <p?lB % <p?>N  & lB ' <p?elB ( <p?clB ) <p?SN f~  * f~ lB + <p?  l , <p?fhf - 6 ?alB . <p?  ~ lB / <8c?WN O 0 Ol 1 <p?O 2 TL gֳgֳ? gR 5m 2$N }   3 }  lB 4 <p?} } RN    5   lB 6B <8c?  lB 7B <8c? r lB 8B <8c?[  lB 9B <8c? 2 lB :B <8c?  lB ;B <8c?{  lB <B <8c? R lB =B <8c?;  lB >B <8c?  lB ?B <8c? r lB @B <8c?[   B s * 0JP X(slide from OOPSLA 94 2H  0޽h ? ̙33 % OOPSLA 2000 ASOC Workshop -- DEBATE: What are the key issues? -- Gregor Kiczales LN(  Lx L c $XP     L BP  0   H L 0޽h ? ̙33.      Dn (  D D BLH 0  H B D C tfE`FNQ&UVW}1))? XX6381-D81^ DS &{'LO^ D+ YL^0L8]T+ YL7Gn2H+IJ7GI:9]T:I:Q= qR&QJ 7JJ >:*;9>:+$.+] x!+] 6381$ 3-D^ D %D^0L8]TH+ YL^0L8]T7G@8Cn2H+IJI:B,= qR&N7#Q7JK J 7J>:8*;9+ +$ x!+ ] x!+$(,`C0*0*ITNT0*0* BCCloud"j D 0x@H`  Msea of amorphous concerns(2RB D s *Do   D 0H   modular design units (for encapsulating concerns): object, method also use case, pattern& aspect (ala AOD) hyperslice, 2rPF w  D 0H@  {modular code units (for encapsulating concerns): class, method aspect, pointcut, advice, method hyperslice| 2|bB   D 0LH{`  B ---design--- (2   D 0LH{  @ ---code--- (2 H D 0޽h ? ̙33 0 E(    T1 ?!   q C xɊUҧUҧ ? B   cbut let me also try to tell you an even more hopeful story, about where I hope AOP is going to take us in coming years the story is an analogy to other engineering disciplines, and the hope is that AOP can take us an important step closer to them if you ask a mechanical engineer to build you a simple bridge, say out of three wooden blocks like this...dd ..>>H  0Hi ? ̙33  0   @ (    T1 ?!   l  C xp% UҧUҧ ? B   ^then you will see them start to draw several different kinds of pictures this first one is a picture that captures the simple static forces in the bridge this one captures those static forces in more detail, and as a result makes it possible to look at important issues like the varying shear forces in the horizontal member but this third picture is very different. its a picture of the simple dynamic properties of the bridge -- this picture is made up of completely different kinds of elements from the first two. it isn t more or less detailed, its just different. you can take the pictures on the left apart into smaller and smaller pieces and you ll never find the picture on the right. in fact, as soon as you take the picture on the left apart, BAM the picture on the right disappears. the last picture is about emergent dynamic properties of the bridge this ability, to look at (analyze in terms of) different kinds of cross-cutting properties is very important, the other engineers have used it to great advantage to deal with extremely complex systems00 ..>>H  0Hi ? ̙33o 0 /'((  (d (c $!    (3 rY_Y_ B   a;maintenance is always where better modularity pays off best <H ( 0Hi ? ̙33rLg A,9.?Xav@H7'p Oh+'0< `h    $,5OOPSLA 2000 Advanced Separation of Concerns WorkshoptGregor Kiczales Mik Kersten59 Microsoft PowerPointSep@P@`5@K}JGg  | R& &&#TNPP2OMi & TNPP &&TNPP    --- !---& ;&/gw@ IwIw0- @"Arialw@ IwIw0- ..2 OOPSLA 2000 ASOC Workshop      . . 2 (--. .:2 9"DEBATE: What are the key issues?        . . 2 j--. .2 {Gregor Kiczales    .--yHH-- @"Arialw@ ÏIwIw0- . 2 qR- . .2 qvwhats new here    .@"Arialw@ IwIw0- . 2 -. .72 it is not separation of concerns        .@"Arialw@ ʏIwIw0- . 2 - . .*2 that is an old and well . . 2 -- . .2  established  . . 2 bgoal.--c-- b@"Arialw@r IwIw0- . 2 -. .F2 *it is not separation of concern technology         .@"Arialw@ ϏIwIw0- . 2 - . .R2 2procedures, OOP, etc. (N.B. these work very well)        .@"Arialw@r IwIw0- . 2 I-. .:2 I"it isnt just any kind of tangling      .@Wingdings ՏIwIw0- . 2 w-.@"Arialw@r IwIw0- .+2 wsolving tangling due to     .@"Arialw@ ׏IwIw0- .'2 wcrosscutting concerns    .@"Arialw@r IwIw0- . 2 R- . .02 vno dominant decomposition      . .2 = strong AOP     . ..2 = no time soon (if at all)       .@Wingdings IwIw0- . 2 5-.@"Arialw@r IwIw0- .@2 5&can support modular crosscutting code       . .<2 c#even with a dominant decomposition       . .02 thats the goal of AspectJ       .--QY(-- @"Arialw@ IwIw0- .2 @22 claims  -.--"System 0-&TNPP &՜.+,0     MOn-screen Show Xerox Corp.  Times New RomanArial Wingdings Courier NewDefault Design 2 claimserror logging in AspectJPowerPoint PresentationPowerPoint PresentationPowerPoint Presentation 2 claims an analogydifferent kinds of picture 2 claimsP.S. concerns, aspects  Fonts UsedDesign Template Slide Titles #_  Mik KerstenMik Kersten  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyz{|}~Root EntrydO)Current UserSummaryInformation(xlPowerPoint Document(DocumentSummaryInformation8