ࡱ> &)('n"3n珸W8309cfFNn믇btLvG2֒D'] S%ڃbȆR1잶,O%2wSxU{TTšDyxo. Je>Dxxeѫ}>z$\ j?ػ4T&66G7nN:'4~m-ҶaqyKge`LM3ZVǫ96:g2<wƵ_=WmFz\lC} D~ݍz'`~ }wdr sh8\6ۿT&iqURQd1 %Ƀe=ߦܯ NFp88vM{]>cﱁE_,~ l'lM^WH6D. m{B?L/CLO ëC;£VAGz0-߸혶TL5nmX'eF^2ǖ#}ʚd`$:+z 7Ia-'t6t~qL^|6d/5۲OMc泟LNaGUp#F.:ޏxwLjweCItxL##,˯\Q)JW>z` l'z(Grn\ G0,KX5ďjS"pNOx :=k(TnFU#̭yk/-a6(5R?X XRkCcI#ݞktZ1_]]dN¦A;]FAMmܼ1g>;E':H'<&.}tye齛t`C[:DIrh^0P@z=njjZۦڑ zz?*{ 8L{dӆ@ ^†Ƀ30t؅yq6}NAa q} c:ڑ =+hg`GvUtt41 *L0j贱,wʤzo`Z5qG-nKhﯨc iSрz:=;zuN[%=O<ˆ-j[trݸ n:ƺmŧ<8<>=TX.yѥmXb548֛ߏF< FaS îFSd.fwrNJMK[S{H\!((EV9m#E/FCAܳv3DMllp=Y͊q9κEK]ĸ\n$X˼. pFQdOM@@p'zEt vsNdV|:Z >sGQM/d'>Ϲb4++[L 3 q\{&]aqK:ai貌&d2DW<1ILNLԛyj9Lj >J|b=ZHFB[,CLA7Lգy04l04&@, ,9- u 1,=ZwglSw}Z?lbuϛS`^.h9j0,afLЌ : 4+oWEnؙ+g'D/:qƾ 6xi`9kj&kX9Иjj&9];C94-caqE\ȫ%֦)(7``I!*"ؾ6(~W7*s E:*0}k߳ouxԘ{fC @nYtNXW'(*ÍhCճ`H1_f,nN{lx^e:QmOuW@S]Q= js=|Q(lA{\͂ʓJz&Rh=@=`z0Eo+4vާ*pUR{y|cr COca`L0M5}"Wek`2x4բIe|$s,$;xiLQ0A:m*5: ;hQ_\Ҁ4*?_f€8 #ا pN93Ӕ&)ׇŋqtiV631PkH[đ:D=}KODaq}#HA,ߍn,ۼB]TI"Br%ɴ slR|]ЊL~B$.έJWjU$U9Y t#[\s"K?.f:-n\YMyp]Fʄf=8MوQFt͇ԟ%KU]Ӣu>a*҆ԝGXzl4բ# PU >mb:'W[~_ Vz~ "6*syaqѐmVD9*wm+Q͈UЧ9j0Y޸]-55|_;(4 ᴞS;E@{ZjbQT:6MT|lCĪ'T-W'+b% wt0\Uh/)f/ yfE7,V/sPkH(1Ao_t+% /"R=F*' P.DL.t%臞"' fN>Tv" mn¶0xNU_)`.rVUҡ82DXljv2f&] ?M=I`_T7m*g@"GcA`r>Q8=Ԭ-9yMTAbXn" *{vqft,B D t!끕yc`᭼un^K.UF+#R—x>6{w7re j*h/Jm~Y2#}SI mQj [l1zʅ`V!:>"[=WV2P7*߱7ӲINkajk& c@<nE `|fka]dj<:CGr7U(ŖQ`hoUmUȶ[k*}@h,kř#B1Gұͩ 1?_G0ɍKE&@A=Ibw }Zf":ՇTNϦj4g]4k[.`Uғ9UTb;Fn{F `l{}{CuJ&!̴ \ ~_YT DLjdj}{Wbl@=-1,7޲Jݪ-sRPlwQ0y Pj^࿱(3yzrpV%IPѕS~"Ӑ2&yz+ƍa.ˈQpEvo|T7"hSpvpcdA#MS?xQpKRtX ?FL[*F?|tzޡ[]b* ߡs[;NxdE2LJ"wZ'd\Hm^~۪mbR~p^F]>,h[S\9Z87Q<;;0:\tQ ђ{=9V˺Κ,Y"bqKth.ZU_Ц,Ofk*ogNi}utF|DeN[Rtꦯ:cIuv$l]ʐOh AuUf9S^\TdMr74quUp]ϲC^@D!]{ѡwz_GG1nƚ*N㍱qh`jZ!,<ڪ.k q]zsK+X}r}]t'.AGh}QTl&.䗵NR=v|M!*aNC֧r/:NnmQ"*pZEG9PR~4@mBTsM̆DS9\lUԀTQlKR y0ixbg¨rUőW3M>5TbNڴYh5GЛ3x{0L>2SS8I djf@m0o[P:woU 6524?OmC_7 |d4UUQͨR<@'= Ƶtz,ҍ#M&~wuJnיo4=.^&i7}7 L'F6e XQb *oއb{Rl Jܾ9]KzޡwߍI-܃QUb9T6[la AI1N/^,Ӝ`E;MB`LDl<f992㱃I.6<ȖGA9ZQ8a]O!)`z%2f)r @2*r|g !Ip4ӅϥKt5m ַNly-UȤ-*>/{rN=~ng3)K P?IỉZlf'UNN˕Á{xpvyRj&@&l ~"+܃@MogC;G7D=tZGa#DZ)e&Uz2t64mU68#7TQt^!I0# `BB"o{BU0 tx%~6ak0Fs_09\ZUh1 ˕P.C=w*qIüf/%8F15v*g{v )y Oз='09ظ 2!lG;嗁$&>Y*&'{jrf ](_YYJ[eo(Cr`?dbsXe >c{5er}6p=>)^IDAT[э2{}c!8prtvfHm9 ?B3Rn>C04;qLUӐuo(f Z773yeRv{wc̛R8]7ӊx.ڝqM՞kpz\oyqSB~ҝ&;C?&C;C<n#IENDB`FU _kw=.Le]8^JFIFKKtMSO Palette |xŲʼϼŨŭʲϷԼxxx}C    ' .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQROC&&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"3!1A"Qaq2BR#3bcr ?$Ɔ+)Q+i{X2/YYCkב\^5xe3Yb8HTؿ zՎ;~AȸU''_//UxF$ASw'Bg`p) *PJLԃֹJrءT8C/{FTPD'C+_2:8gĕoo* a?c'^ dXM(3NǝLAYt0WS+UfP,sLY^2h7G`I/h[ I=AR` Pb,呐y8`p(1i>&\2I{0FvI'zJ&\(7=ߺ I`Dk\R[oZl$U`4-s/!Tj*kķTDŽHE]{z!9 @5 i7}߭l2Xd@A_xLH#ߘ|RbI.]a0Y4f0@U6gm[ޝTvgQ]͹faVIl0'V4KBK/dcIϲHK_s2@E:L?ZB4ɑy΋5I(3bX$( ro~^FX̒HkTp(d!w@$qpyE<'Z cI|kb2vҹ1FeLl2uփ';'j?CLWEbI+H='Kŗ4ߝ8s$ؐ4XV1<|`;UpVXdT/Arrqϼ;?jYO =9PBU0-#1K3ʐA}s!xJ} wjnLϭAe[O5$f;VYA7ORs(R"oÙwD(d sZ[Ya3fAd ۱!Yyo4X&' %NPV_=b;+pKӽ43F@*=:( dQ(:T &hq`(>@6p? [֨!g Gi&lm?_q\r4#c|ìT\$F}}*P 9})2Yi18ؒiC鹹:V}96=4s02 β9Trͥ21HzAPiU"B5D##cf m ˟fEK3f0|փ "#qW rQuQĻ΁kl<5`X0 G8d#C G2.X!H5*xh|Mw0o/"t<8aŁUl mHPF.C$=-JYIRQx ,#[tk1o f-U7At#OdR14YIq53)VWX;ނ`t*镎 =v0@b=Z@^r("ᜠ*(mSsX]xoS*6f( 2֨ye &Hvp 6RxO1ץR_(kb f?@|lNQ&UDXÕDF ǯZ(aCH< W00L'׹Tev.Ør•"S;dE^VHv2&u+h3&02&aj 0ϊĘ(qNuE4^2Z&A6-{Ƃ(@Rd: yE  /2mOzT\#*Ēt4"U$fFߝ\(cB5P @_Qe,  &/aB$6^F(NĐ#Dn G)޶!5ۑP.2+h"ĉ؄6''QMLa Q!*Р>ו0rĝ2hG Y~<22LA6ւe59%vmt}<ʡhu?Hd#SށHn3076֬B%PfW=[ 1mZg"i4 1.@=̍}+v:j:|# ٠|Gz |Em6\Ԍ1eԆ8>Z9Codk? 8&ML|R fߔH_pͧ]>󠎮fb7¯:Zf v#q֦."Eyq     DH    ;   $O$$b$3n珸W8___PPT9 4` &#$( 0!? %O =!1"Patterns And Software Architecture##-Presented By: Sukhvinder Singh Vikram Singhal. "Essential Concepts and Terminology"#"(& Software Architecture: Describes subsystems and components. Defines Relationships Of subsystems Categorize Subsystems and components Functional Properties Non-functional Properties Result of software design activity. qvf32f3&vf3$$q1& "Essential Concepts and Terminology##& Component Encapsulated part of software system. A component has an interface. Components serve as the building blocks for the structure of a system. Can be modules, classes, Objects or a set of functions.@ vf3 "Essential Concepts and Terminology##&' Relationship Connection between components. Types Static: shows directly in source code. Dynamic: deals with temporal connections and dynamic interactions between components. View Represents a partial aspect of software architecture that shows specific properties of software system. ZZvf3Zvf3Zf3ZZZlZZ  }l "Essential Concepts and Terminology##&`Functional Property Deals with different aspects of a system s functionality Related to specified functional requirements. Non-Functional Property Described uncovered functional description of the system. A non functional property typically addresses aspects related to the reliability, compatibility. gvf3vf3  g $ "Essential Concepts and Terminology##& Software Design Performed by the software developer gives the software architecture of a system. Specify the components & relationships. d|vf3{Enabling Techniques(= Abstraction Encapsulation Information Hiding Modularization Pvf3<vf3<$Enabling Techniques([ Separation of Concerns Coupling & Cohesion Single Point Of Reference Divide and Conquer HYvf3Y$Y-#Non-Functional Properties , Changeability Interpretability Efficiency @+vf3+.$Non-Functional Properties" 6% Reliability Testability Reusability Tvf3$vf3$% Why patterns? " "((P Design is hard Design Notation ؠ Focus on what ؠ Ignore why "  vf3- #'f3""#'f3" "%Patterns$ "(( A more specific instance of structure Create a shared language for communicating insight and experience help software developers to solve common difficult problems encountered throughout all the software. V" vf3What Good patterns do? 2"("&&f It solves a problem It is a proven concept It describes a relationship The solution is not obvious Lvf3cvf3cElements Of Patterns $"("(Q Each pattern follows a format Preconditions Problem Constraints Solution b$" +vf3$ +")!Patterns In Software Architecture"""(J Methodologies Software Processes Architectural Styles Frameworks b" Avf3 A"*Architectural Styles"( Defines a family of software systems in terms of their structural organization. Expresses components and relationships between them Expresses the constraints of their application Defines associated composition and design rules for their construction.H" vf3 "+  Frameworks  "(z Partially complete software system Reusable design of a system or subsystem Expressed as a set of abstract classes.H" vvf3"u"vGenerating Architecture from Patterns HotDraw  An Example 0<&" " " & Reusable architecture for direct manipulation, graphics editor like implementation implemented in Smalltalk 80 Supports: Drawing different kinds of figures A programmable palette tools Different handles for different figures Smooth animationnu" Z " Zyvf3Zu" " xAddressing HotDraw Problem"    Graphical User Interface Getting the drawing on the screen for displaying and manipulations that is easy Solution: MVC. Divide the system into three objects- Model, View and Controller responsible for maintaining state and surfacing the behavior necessary to support the user interface for displaying an up-to-date version of the Model and for mapping user gestures to changes of state in the model " Z" ZZ""""" """ "SE`&Addressing HotDraw Problem" $  'Addressing HotDraw Problem"    (" "(Addressing HotDraw Problem"     Problem:Update the display when a figure changes appearance Solution: Observer Have a object involved in a constraint and keep list of dependents.Each time object changes it notifies its dependents.Dependents take appropriate action on notification.  " ""5"" """Patterns & Extreme Programming(6Build a little Test a little Refractor a little Repeat  Our design patterns capture many of the structure that result from refactoring. Using these patterns early in the life of a design prevents latter refactoring. But even if you don t see how to apply a pattern until after you ve built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactoring X7vf3Zvf3Zdvf3Z">{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K pSummary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors f!vf3+vf3(vf3(vf30' Good Comments(  P  ` ˽"i6ffff` ˽"i6ffff` MMMwww>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>> nf (    <m"J : rB  <g "`z  c D A A:\minispir.GIF"  z  c DffA A:\minispir.GIF"d   6q "`  T Click to edit Master title style! !$  0|s "P`p  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0xx "/'  @*  0Lz "'   B*  0Ȃ "'  B*Z  BmX޽h))?? ˽"i6ffff Notebook  @ -(    \ A Canvas"Mi : t  S >A A:\minispir.GIF"    3 ;?A? ?Canvas"* xJ  : z  c DffA A:\minispir.GIF"d   s *|= "@@  T Click to edit Master title style! !  c $83 "    W#Click to edit Master subtitle style$ $  0 "[   @*  0h "    B*  0H "   B*Z  BmX޽h))?? ˽"i6ffff0 xp( 0 :  C xkk1 ?z%  m z*  K%%KKppX  C  XK  m^  C xmkk1 ? M) m RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S<  C xkk1 ? @% m |*  K%%KKpp@  S ~ kk1 ?z   z*  K%%KKppB  S ~4kk1 ? @  |*  K%%KKppB  s *.k ? ̙33 PH( )pM P: P c mkk1 ?"z%  m `*  K%%KKpp< P c lkk1 ?" @% m b*  K%%KKpp@ P s mkk1 ?"z  m `*  K%%KKppB P s mkk1 ?" @ m b*  K%%KKppH P 0.k ? ̙33 0L( Br   c $8"P     c $"0 P   B  s *޽h ? f3  |P( x   s *(c"P      c $Hg"P`p     Higֳgֳ ?"   : B  s *޽h ? f3   `R(    s *Dx"0P     c $y"P`p  B  s *޽h ? f3  p^(     0|"0P     s *\}"P`p  B  s *޽h ? f3  ^(     0L"0P     s *"P`p  B  s *޽h ? f3  `^(  ` `  0"0P    ` s *"P`p  B ` s *޽h ? f3  X(    s *l"`     s *<" 0@  B  s *޽h ? f3  X(    s *ĺ"`     s *l"0   B  s *޽h ? f3  ,(    s *4n"`     s * S"P`p    T<gֳgֳ? ?"   : B  s *޽h ? f3  ,(    s *"`     s *"Ppp    TPgֳgֳ? ?"   : B  s *޽h ? f3  $L(  $ $ c $ "`    $ c $TY" 0@  B $ s *޽h ? f3  X(    s *"`     s *" 0@  B  s *޽h ? f3  X(    s *"p@     s *"p0  B  s *޽h ? f3  X(    s *"`     s *8" 0@  B  s *޽h ? f3   X(    s *"`     s *`" 0@  B  s *޽h ? f3  0X(    s *"`     s *" 0@  B  s *޽h ? f3  @X(    s *"`     s *d"0   B  s *޽h ? f3|  ,$P(    s *m"  m   s *m"@  m b  Tm ?"@ Reference: Patterns Generates Architecture , By Prof. Ralph Johnson & Kent BackPPB  s *޽h ? f3  `X(    s */m"`  m   s *m" 0@ m B  s *޽h ? f3     p:b (    s *Bm"`  m   HEm ?"Zz :   HHm ?": Z :   THP ?"P3" Problem:Drawing needs to contain many figures Solution: Composite Make an abstract class that represents the composite and make components its concrete subclasses.,. z  ) # Dp @  :Graphic Draw() Add(Graphic) Remove(Graphic) GetChild(int); ; ,, FB * S D | + # ` (   @ Line Draw( )    , # `   ERectangle Draw( )  | - # ,m` x  @ Text Draw( )    . # `  hx ;Picture Draw( ) Add( Graphic) Remove(Graphic) GetChild(int)< < ,- . /   h : 0 3 333 ( LB 1@ c $D(FB 2 S D  rB 3 <D?" rB 4 <D?"@ `R 5 s *?"  rB 6 <D?"  rB 7 <D?" ` rB 8 <D?" ` rB 9 <D?" X X ` rB : <D?" ` B  s *޽h ? f35  u(  r  S X`m`  m r  S amP`p m I  THbm ?"h K Problem: Interpreting input Which tool is selected in the palette changes how input is parsed. Solution: Objects for State Implement an object whose behavior depends on its state and make a class for each state. There is a new class for each state of the object Can add a new state by adding a new class PL  R   H  0޽h ? ˽"i6ffff  X(    s *d[m"`  m   s * \m" 0@ m B  s *޽h ? f3[   x(  x~ x s *%m`  m x x c $mm`  m ] x Tm ?" eDesign Patterns: Elements of Reusable Object-Or\iented Software By Gamma, Helm, Johnson and Vlissidesff,0% H x 0޽h ? @Eff؂od   |(  |x | c $P`p   | s  :0e0e "0  : H | 0޽h ? @Eff؂o  X(    s *+"`     s *`,"P`p  B  s *޽h ? f3  X(    s *#"`     s *$"P`p  B  s *޽h ? f3  $(  r  S 2`   r  S |3`  H  0޽h ? ˽"i6ffff   <(  ~  s *P`   ~  s *P`p  H  0޽h ? @Eff؂or R8` Fb"e wHZ Vivki̢R6gm{}Pԉ"?JoyO6lqt8X& \0xR@(@ b/ 0DTimes New Romanh2|dv 0|( 0 DWingdingsRomanh2|dv 0|( 0  ` .  @n?" dd@  @@`` > Oh+'0HR px $0 T ` l x#Patterns And Software Architecture sukhvinderdNC:\Program Files\Microsoft Office\Templates\Presentation Designs\Notebook.pot\ sukhvinderF64hMicrosoft PowerPoint 7.0t O@` d@@  @pk 8GPg  R('& &&#TNPP2OMi & TNPP &&TNPP     'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKnmnQnsnJsnnmQnKsKnQmnnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnKnKnKnQnnQnnnJnnnmKnnnnmnmnnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnmKmnnKmnnmKsmnKrKssQnKnKsmnKsnnnnmnmnnnKmJgJmsnssnüüüüüKnQnKrnnmJDJDmsJDCr½ü½ü½ü½ü½ünKmnnnKrKnrKrn¼¼¼¼¼QnKnKrnnsnnnnnsmnmKnnKmDJDmnnKnQnKsmnJmJmJJsmJCmüüüüüüüüüünKmnnJnKrKnJnnm™™™™™QnKnnnsnnnnnrns™™™™™mnmnnQmnJmJnnnKnQnmnKmJJJJJJmJC왽nKmnnQnmnnnnnnsmJm™™™™™QnKnnmnnQnPnPnüüüüüüüüüümnmKnQnmnnnnnn½½½½½KnQnnmnJDJCJmsnsJmüüüüünKmnnKsnmnnmKmÙJCC™ٙٙٙٙÙQnKnsnJsKmQnsnsmnmnnnnnnnnmKnü™¼ü™¼ü™¼ü™¼ü™¼KnQnJsJmJIDmsnsüüÙüüÙüüÙüüÙüüÙnKmnnnnKnmQnnmsJCCsQnKnnKsmsKmsnKn¼üü¼¼üü¼¼üü¼¼üü¼¼üümnmKnmKnnnnKmnKnQnKsnmJJmsnms¼Ù¼Ù¼Ù¼Ù¼ÙnKmnnmKmKmKmns콙nICsٽٽÙQnKnnKsnnnmQmnsrmnšššmnmnnrnJsnKnnnKnQnnKnnKmnnJnsnKmnnrnJmJJmsmJmJQnKnnKnmKnmnsnsmCCmnmKnrnKsnQnmKüüüüüKnQnnKsnmnmKnn½ü½ü½ü½ü½ünKmnnmnJJJDmmJrms¼¼¼¼¼QnKnKsKnnnrnnnsDCCmnmnnmnQnJnKrnKnQnnQnmnnsnnnüüüüüünKmnnmKmJDmJJ™™™™QnKnKnsnKmKmsnJC¼™™™™mnmKnsJnsnnPnnmKnQnmKnnnKnnnnÙ¼nKmnnsnJmJmJDJ½Ù™™™™™QnKnKmQmmJJmsssJCCšüüüüüüüüümnmnnnnnKnnnnnmJm½½½½KnQnnrnmQnJnsmüüüüünKmnKnKnnnsnnnٙٙٙÙQnKnnrnJmJDmsnnsrnmnmKnKnnJgJmDJmDCnü™¼ü™¼™¼ü™¼KnQnnrnPnQmKmsüüÙüüÙüüÙüüÙüüÙnKmnnKnnnnnsnnsQnKnnrnJDmDmnn¼üü¼¼üü¼¼üü¼¼üü¼¼üümnmnKnsKmJJDJmsJICmKnQnnmKmnsmQmKn¼Ù¼Ù¼Ù¼Ù¼ÙnKmnQnnsnKnnnn½Ù½Ù½Ù½Ù½ÙQnKnnmKnJmJnsnšššššmnmKKsnJmJgJDmnmJC콙KnQnnKmnnKsJsJmmnKmnrnsnQmnnnnsQnKnnKmnnnQnnKmnmnnnnJJCCImssmmüüüüüKnQnnPnrnnnnnnsDIC½ü½ü½ü½ü½ünKmnnnKnKsJsJns¼¼¼¼¼QnKnnrnnnnnnnsmnmKKnKmIDImsmsKnQnnmsJnnnKnKssmDCsüüüüüüüüüünKmnsKnsnPnnrnr™™™™™QnKnnmnKnnnKnn™™™™™mnmnnQnmJJmrnJKnQnnmKnJnJnnsnsmDC  nKmnKnsmnKnsmKsmm™ ™ ™™QnKnnrKnsmnKnnüüü  üüümnmKKnnnmKnmKms½½ ½KnQnnrKJJmJnnmJJü üünKmnKnnnnnJnQnsÙJD™ٙ Ù ™  ٙٙÙQnKnnrKrKmsnmn mnmnnKnnnnnKnKü™¼ü™¼ü™¼ü™¼ü™¼KnQnnrnJmJJlmmsnmnüüÙüüÙüüÙüüÙüüÙnKmnKnKnKmnnnKsJCCQnKnnrnsmQnJsns¼¼üü¼¼üü¼¼üü¼¼üü¼¼üümnmKKnmKnnnnnn KnQnnsKmJImnJ¼ Ù  ¼  ¼ ¼ÙnKmnKnmnnKnJnsJCCÙ   ÙQnKnnmQnJsmnmKrmš  šmnmnsKnsnnnKnn KnQnnmnJmDJnJm nKmnnQnKmKmmsnsmCC QnKnnmnmnPnPnKJDmmnmKKsnQnnnnnnüüüüüKnQnnmKnmJmDJ½ü½ü½ü½ü½ünKmnsKnmJDJsnmJm¼¼¼¼¼QnKnnmnPnsmKmKDCJmnmnnQnnnKnnsnKnQnnmKsmmDmDDüüüüüüüüüünKmnKsnmDJJsss™™™™™QnKnnmKmsnJnJnsCC™™™™mnmKKnsnKnnnsnnKnQnnmKnrmDJDmnKmnQnsmDJJsmK™™™™™QnKnnJnJnKmnsnsDCDüüüüüüüüüümnmnnnnsnrnnnnmIn½½½½½KnQnnPnnKnnJmJüüüüünKmnnnKmmDJmJnٙٙٙٙٙÙQnKnnsmnJmJnssJCmmnmKJnKsKrnnnKsCmü™¼ü™¼ü™¼ü™¼ü™¼KnQnnsmnnKnmKmüüÙüüÙüüÙüüÙüüÙnKmnmKnKmmJKmJQnKnnsmnJJmmsns¼üü¼¼üü¼¼üü¼¼üü¼¼üümnmnJnKmKnnsnnsCCCKnQnnnsnnJmDJmÙs¼Ù¼Ù¼Ù¼Ù¼ÙnKmnQmnmmKmQnK½Ù½Ù½Ù½Ù½ÙQnKnnnKJJnnmnšššššmnmKrKrnnKmsssnICJKnQnnnnKrnnnKnnmnKmnnKrnnPnKrnQnKnnnnKnnnnnKKsmssnsmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnmnmKmnmnKrKrnrKrKrnrKrKrnrnPnnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnnnnnKnnnnnKnnnnnKnnnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnnKmnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKnQnKn--&TNPP &@  @@`` >     DH    ;   $O$$b$3n珸W8___PPT9 4` &#$( 0!? %O =1"Patterns And Software Architecture##-Presented By: Sukhvinder Singh Vikram Singhal. "Essential Concepts and Terminology"#"(& Software Architecture: Describes subsystems and components. Defines Relationships Of subsystems Categorize Subsystems and components Functional Properties Non-functional Properties Result of software design activity. qvf32f3&vf3$$q1& "Essential Concepts and Terminology##& Component Encapsulated part of software system. A component has an interface. Components serve as the building blocks for the structure of a system. Can be modules, classes, Objects or a set of functions.@ vf3 "Essential Concepts and Terminology##&' Relationship Connection between components. Types Static: shows directly in source code. Dynamic: deals with temporal connections and dynamic interactions between components. View Represents a partial aspect of software architecture that shows specific properties of software system. ZZvf3Zvf3Zf3ZZZlZZ  }l "Essential Concepts and Terminology##&`Functional Property Deals with different aspects of a system s functionality Related to specified functional requirements. Non-Functional Property Described uncovered functional description of the system. A non functional property typically addresses aspects related to the reliability, compatibility. gvf3vf3  g $ "Essential Concepts and Terminology##& Software Design Performed by the software developer gives the software architecture of a system. Specify the components & relationships. d|vf3{Enabling Techniques(= Abstraction Encapsulation Information Hiding Modularization Pvf3<vf3<$Enabling Techniques([ Separation of Concerns Coupling & Cohesion Single Point Of Reference Divide and Conquer HYvf3Y$Y-#Non-Functional Properties , Changeability Interpretability Efficiency @+vf3+.$Non-Functional Properties" 6% Reliability Testability Reusability Tvf3$vf3$% Why patterns? " "((P Design is hard Design Notation ؠ Focus on what ؠ Ignore why "  vf3- #'f3""#'f3" "%Patterns$ "(( A m  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoqrstuvwxyz{|}~  @@`` >      DH     ;$O$$b$3n珸W8___PPT9 4` &#$( 0!? %O =1"Patterns And Software Architecture##-Presented By: Sukhvinder Singh Vikram Singhal. "Essential Concepts and Terminology"#"(& Software Architecture: Describes subsystems and components. Defines Relationships Of subsystems Categorize Subsystems and components Functional Properties Non-functional Properties Result of software design activity. qvf32f3&vf3$$q1& "Essential Concepts and Terminology##& Component Encapsulated part of software system. A component has an interface. Components serve as the building blocks for the structure of a system. Can be modules, classes, Objects or a set of functions.@ vf3 "Essential Concepts and Terminology##&' Relationship Connection between components. Types Static: shows directly in source code. Dynamic: deals with temporal connections and dynamic interactions between components. View Represents a partial aspect of software architecture that shows specific properties of software system. ZZvf3Zvf3Zf3ZZZlZZ  }l "Essential Concepts and Terminology##&`Functional Property Deals with different aspects of a system s functionality Related to specified functional requirements. Non-Functional Property Described uncovered functional description of the system. A non functional property typically addresses aspects related to the reliability, compatibility. gvf3vf3  g $ "Essential Concepts and Terminology##& Software Design Performed by the software developer gives the software architecture of a system. Specify the components & relationships. d|vf3{Enabling Techniques(= Abstraction Encapsulation Information Hiding Modularization Pvf3<vf3<$Enabling Techniques([ Separation of Concerns Coupling & Cohesion Single Point Of Reference Divide and Conquer HYvf3Y$Y-#Non-Functional Properties , Changeability Interpretability Efficiency @+vf3+.$Non-Functional Properties" 6% Reliability Testability Reusability Tvf3$vf3$% Why patterns? " "((P Design is hard Design Notation ؠ Focus on what ؠ Ignore why "  vf3- #'f3""#'f3" "%Patterns$ "(( A more specific instance of structure Create a shared language for communicating insight and experience help software developers to solve common difficult problems encountered throughout all the software. V" vf3What Good patterns do? 2"("&&f It solves a problem It is a proven concept It describes a relationship The solution is not obvious Lvf3cvf3cElements Of Patterns $"("(Q Each pattern follows a format Preconditions Problem Constraints Solution b$" +vf3$ +")!Patterns In Software Architecture"""(J Methodologies Software Processes Architectural Styles Frameworks b" Avf3 A"*Architectural Styles"( Defines a family of software systems in terms of their structural organization. Expresses components and relationships between them Expresses the constraints of their application Defines associated composition and design rules for their construction.H" vf3 "+  Frameworks  "(z Partially complete software system Reusable design of a system or subsystem Expressed as a set of abstract classes.H" vvf3"u"vGenerating Architecture from Patterns HotDraw  An Example 0<&" " " & Reusable architecture for direct manipulation, graphics editor like implementation implemented in Smalltalk 80 Supports: Drawing different kinds of figures A programmable palette tools Different handles for different figures Smooth animationnu" Z " Zyvf3Zu" " xAddressing HotDraw Problem"    Graphical User Interface Getting the drawing on the screen for displaying and manipulations that is easy Solution: MVC. Divide the system into three objects- Model, View and Controller responsible for maintaining state and surfacing the behavior necessary to support the user interface for displaying an up-to-date version of the Model and for mapping user gestures to changes of state in the model " Z" ZZ""""" """ "SE`&Addressing HotDraw Problem" $  'Addressing HotDraw Problem"    (" "(Addressing HotDraw Problem"     Problem:Update the display when a figure changes appearance Solution: Observer Have a object involved in a constraint and keep list of dependents.Each time object changes it notifies its dependents.Dependents take appropriate action on notification.  " ""5"" """Patterns & Extreme Programming(6Build a little Test a little Refractor a little Repeat  Our design patterns capture many of the structure that result from refactoring. Using these patterns early in the life of a design prevents latter refactoring. But even if you don t see how to apply a pattern until after you ve built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactoring X7vf3Zvf3Zdvf3Z">{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K pSummary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors Patterns & XP By Joshua Kerievsky !vf3+vf3(vf3(vf3vf3vf3 0' Good Comments(  P  $(  r  S 2`   r  S |3`  H  0޽h ? ˽"i6ffffr,,! r0xp@(@ b/ 0DTimes New Romanh2|dv 0|( 0 DWingdingsRomanh2|dv 0|( 0  ` .  @n?" dd@ A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E՜.+,0    ^On-screen Showequantum Times New Roman Wingdings Notebook#Patterns And Software Architecture#Essential Concepts and Terminology#Essential Concepts and Terminology#Essential Concepts and Terminology#Essential Concepts and Terminology#Essential Concepts and TerminologyEnabling TechniquesEnabling TechniquesNon-Functional PropertiesNon-Functional PropertiesWhy patterns? PatternsWhat Good patterns do? Elements Of Patterns "Patterns In Software ArchitectureArchitectural Styles Frameworks <Generating Architecture from Patterns HotDraw An Example Addressing HotDraw ProblemAddressing HotDraw ProblemAddressing H||S" f3@8"#6  a ʚ;D6ʚ;g4;d;dv 0pppp<4!d!d` 0,|4<4dddd` 0,|4<4BdBore specific instance of structure Create a shared language for communicating insight and experience help software developers to solve common difficult problems encountered throughout all the software. V" vf3What Good patterns do? 2"("&&f It solves a problem It is a proven concept It describes a relationship The solution is not obvious Lvf3cvf3cElements Of Patterns $"("(Q Each pattern follows a format Preconditions Problem Constraints Solution b$" +vf3$ +")!Patterns In Software Architecture"""(J Methodologies Software Processes Architectural Styles Frameworks b" Avf3 A"*Architectural Styles"( Defines a family of software systems in terms of their structural organization. Expresses components and relationships between them Expresses the constraints of their application Defines associated composition and design rules for their construction.H" vf3 "+  Frameworks  "(z Partially complete software system Reusable design of a system or subsystem Expressed as a set of abstract classes.H" vvf3"u"vGenerating Architecture from Patterns HotDraw  An Example 0<&" " " & Reusable architecture for direct manipulation, graphics editor like implementation implemented in Smalltalk 80 Supports: Drawing different kinds of figures A programmable palette tools Different handles for different figures Smooth animationnu" Z " Zyvf3Zu" " xAddressing HotDraw Problem"    Graphical User Interface Getting the drawing on the screen for displaying and manipulations that is easy Solution: MVC. Divide the system into three objects- Model, View and Controller responsible for maintaining state and surfacing the behavior necessary to support the user interface for displaying an up-to-date version of the Model and for mapping user gestures to changes of state in the model " Z" ZZ""""" """ "SE`&Addressing HotDraw Problem" $  'Addressing HotDraw Problem"    (" "(Addressing HotDraw Problem"     Problem:Update the display when a figure changes appearance Solution: Observer Have a object involved in a constraint and keep list of dependents.Each time object changes it notifies its dependents.Dependents take appropriate action on notification.  " ""5"" """Patterns & Extreme Programming(6Build a little Test a little Refractor a little Repeat  Our design patterns capture many of the structure that result from refactoring. Using these patterns early in the life of a design prevents latter refactoring. But even if you don t see how to apply a pattern until after you ve built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactoring X7vf3Zvf3Zdvf3Z">{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K pSummary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors Patterns & XP By Joshua Kerievsky, Industrial Logic Inc !vf3+vf3(vf3(vf3vf3.vf3 0' Good Comments(  P  $(  r  S 2`   r  S |3`  H  0޽h ? ˽"i6ffffr,&1! 30xp@(@ b/ 0DTimes New Romanh2|dv 0|( 0 DWingdingsRomanh2|dv 0|( 0  ` .  @n?" dd@  @@`` >     DH    ;   $O$$b$3n珸W8___PPT9 4` &#$( 0!? %O =1"Patterns And Software Architecture##-Presented By: Sukhvinder Singh Vikram Singhal. "Essential Concepts and Terminology"#"(& Software Architecture: Describes subsystems and components. Defines Relationships Of subsystems Categorize Subsystems and components Functional Properties Non-functional Properties Result of software design activity. qvf32f3&vf3$$q1& "Essential Concepts and Terminology##& Component Encapsulated part of software system. A component has an interface. Components serve as the building blocks for the structure of a system. Can be modules, classes, Objects or a set of functions.@ vf3 "Essential Concepts and Terminology##&' Relationship Connection between components. Types Static: shows directly in source code. Dynamic: deals with temporal connections and dynamic interactions between components. View Represents a partial aspect of software architecture that shows specific properties of software system. ZZvf3Zvf3Zf3ZZZlZZ  }l "Essential Concepts and Terminology##&`Functional Property Deals with different aspects of a system s functionality Related to specified functional requirements. Non-Functional Property Described uncovered functional description of the system. A non functional property typically addresses aspects related to the reliability, compatibility. gvf3vf3  g $ "Essential Concepts and Terminology##& Software Design Performed by the software developer gives the software architecture of a system. Specify the components & relationships. d|vf3{Enabling Techniques(= Abstraction Encapsulation Information Hiding Modularization Pvf3<vf3<$Enabling Techniques([ Separation of Concerns Coupling & Cohesion Single Point Of Reference Divide and Conquer HYvf3Y$Y-#Non-Functional Properties , Changeability Interpretability Efficiency @+vf3+.$Non-Functional Properties" 6% Reliability Testability Reusability Tvf3$vf3$% Why patterns? " "((P Design is hard Design Notation ؠ Focus on what ؠ Ignore why "  vf3- #'f3""#'f3" "%Patterns$ "(( A more specific instance of structure Create a shared language for communicating insight and experience help software developers to solve common difficult problems encountered throughout all the software. V" vf3What Good patterns do? 2"("&&f It solves a problem It is a proven concept It describes a relationship The solution is not obvious Lvf3cvf3cElements Of Patterns $"("(Q Each pattern follows a format Preconditions Problem Constraints Solution b$" +vf3$ +")!Patterns In Software Architecture"""(J Methodologies Software Processes Architectural Styles Frameworks b" Avf3 A"*Architectural Styles"( Defines a family of software systems in terms of their structural organization. Expresses components and relationships between them Expresses the constraints of their application Defines associated composition and design rules for their construction.H" vf3 "+  Frameworks  "(z Partially complete software system Reusable design of a system or subsystem Expressed as a set of abstract classes.H" vvf3"u"vGenerating Architecture from Patterns HotDraw  An Example 0<&" " " & Reusable architecture for direct manipulation, graphics editor like implementation implemented in Smalltalk 80 Supports: Drawing different kinds of figures A programmable palette tools Different handles for different figures Smooth animationnu" Z " Zyvf3Zu" " xAddressing HotDraw Problem"    Graphical User Interface Getting the drawing on the screen for displaying and manipulations that is easy Solution: MVC. Divide the system into three objects- Model, View and Controller responsible for maintaining state and surfacing the behavior necessary to support the user interface for displaying an up-to-date version of the Model and for mapping user gestures to changes of state in the model " Z" ZZ""""" """ "SE`&Addressing HotDraw Problem" $  'Addressing HotDraw Problem"    (" "d` 0,|4g4=d=dv 0p^pp pD<___PPT94` &#(Addressing HotDraw Problem"     Problem:Update the display when a figure changes appearance Solution: Observer Have a object involved in a constraint and keep list of dependents.Each time object changes it notifies its dependents.Dependents take appropriate action on notification.  " ""5"" """Patterns & Extreme Programming(6Build a little Test a little Refractor a little Repeat  Our design patterns capture many of the structure that result from refactoring. Using these patterns early in the life of a design prevents latter refactoring. But even if you don t see how to apply a pattern until after you ve built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactoring X7vf3Zvf3Zdvf3Z">{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K pSummary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors Patterns & XP By Joshua Kerievsky, Industrial Logic Inc !vf3+vf3(vf3(vf3vf3.vf3 0' Good Comments(  PrN3! *3s0xp@(@ b/ 0DTimes New Romanh3|dv 0|( 0DWingdingsRomanh3|dv 0|( 0  ` .  @n?" dd@  @@`` >      DH    ;  $O$$b$3n珸W8{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K p0' Good Comments(  Summary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors Patterns & XP By Joshua Kerievsky, Industrial Logic Inc !vf3+vf3(vf3(vf3vf3.vf3 Prs sr0x?(@ b/ 0DTimes New Roman3|dv 0|( 0 DWingdingsRoman3|dv 0|( 0  ` .  @n?" dd@Root Entry dO)vk @ Pictures&()*+-./05689:;<}.@Current UserHIJKLNOPUVWY>`SummaryInformationklmno(uwxyz{}pxR      !"#$%,-./0123456789:;<=>?@ABCDEFGH*+ otDraw ProblemAddressing HotDraw ProblemPatterns & Extreme Programming QuestionsStudy QuestionsSummary References  Fonts UsedDesign Template Slide Titles Titles"_ sukhvindersukhvinder$( 0!? %O =0"Patterns And Software Architecture##-Presented By: Sukhvinder Singh Vikram Singhal. "Essential Concepts and Terminology"#"(& Software Architecture: Describes subsystems and components. Defines Relationships Of subsystems Categorize Subsystems and components Functional Properties Non-functional Properties Result of software design activity. qvf32f3&vf3$$q1& "Essential Concepts and Terminology##& Component Encapsulated part of software system. A component has an interface. Components serve as the building blocks for the structure of a system. Can be modules, classes, Objects or a set of functions.@ vf3 "Essential Concepts and Terminology##&' Relationship Connection between components. Types Static: shows directly in source code. Dynamic: deals with temporal connections and dynamic interactions between components. View Represents a partial aspect of software architecture that shows specific properties of software system. ZZvf3Zvf3Zf3ZZZlZZ  }l "Essential Concepts and Terminology##&`Functional Property Deals with different aspects of a system s functionality Related to specified functional requirements. Non-Functional Property Described uncovered functional description of the system. A non functional property typically addresses aspects related to the reliability, compatibility. gvf3vf3  g $ "Essential Concepts and Terminology##& Software Design Performed by the software developer gives the software architecture of a system. Specify the components & relationships. d|vf3{Enabling Techniques(= Abstraction Encapsulation Information Hiding Modularization Pvf3<vf3<$Enabling Techniques([ Separation of Concerns Coupling & Cohesion Single Point Of Reference Divide and Conquer HYvf3Y$Y-#Non-Functional Properties , Changeability Interpretability Efficiency @+vf3+.$Non-Functional Properties" 6% Reliability Testability Reusability Tvf3$vf3$% Why patterns? " "((P Design is hard Design Notation ؠ Focus on what ؠ Ignore why "  vf3- #'f3""#'f3" "%Patterns$ "(( A more specific instance of structure Create a shared language for communicating insight and experience help software developers to solve common difficult problems encountered throughout all the software. V" vf3What Good patterns do? 2"("&&f It solves a problem It is a proven concept It describes a relationship The solution is not obvious Lvf3cvf3cElements Of Patterns $"("(Q Each pattern follows a format Preconditions Problem Constraints Solution b$" +vf3$ +")!Patterns In Software Architecture"""(J Methodologies Software Processes Architectural Styles Frameworks b" Avf3 A"*Architectural Styles"( Defines a family of software systems in terms of their structural organization. Expresses components and relationships between them Expresses the constraints of their application Defines associated composition and design rules for their construction.H" vf3 "+  Frameworks  "(z Partially complete software system Reusable design of a system or subsystem Expressed as a set of abstract classes.H" vvf3"u"vGenerating Architecture from Patterns HotDraw  An Example 0<&" " " & Reusable architecture for direct manipulation, graphics editor like implementation implemented in Smalltalk 80 Supports: Drawing different kinds of figures A programmable palette tools Different handles for different figures Smooth animationnu" Z " Zyvf3Zu" " xAddressing HotDraw Problem"    Graphical User Interface Getting the drawing on the screen for displaying and manipulations that is easy Solution: MVC. Divide the system into three objects- Model, View and Controller responsible for maintaining state and surfacing the behavior necessary to support the user interface for displaying an up-to-date version of the Model and for mapping user gestures to changes of state in the model " Z" ZZ""""" """ "SE`&Addressing HotDraw Problem" $  'Addressing HotDraw Problem"    (" "(Addressing HotDraw Problem"     Problem:Update the display when a figure changes appearance Solution: Observer Have a object involved in a constraint and keep list of dependents.Each time object changes it notifies its dependents.Dependents take appropriate action on notification.  " ""5"" """Patterns & Extreme Programming(6Build a little Test a little Refractor a little Repeat  Our design patterns capture many of the structure that result from refactoring. Using these patterns early in the life of a design prevents latter refactoring. But even if you don t see how to apply a pattern until after you ve built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactoring X7vf3Zvf3Zdvf3Z">{ D   Questions (ZQuestion : At what point of System Development, should pattern be used?  Patterns Generate Architectures Beck & Johnson Question : When we use patterns in XP? Ivf3;vf3)vf3 z /&Study Questions( Question 1: How Architectural Styles are different from patterns? Question 2: Describe one of the enabling technique which you think is most important? Question 3: At what point of System Development, should pattern be used? When we use patterns in XP(extreme programming)? Zvf3ZZ 8 K pSummary(Patterns are not by chance Address to problems Architecture becomes easier to re-implement & modify leads to understanding the system and reasoning that led to it (vf3,! References (Patterns Generates Architectures By Prof. Ralph Johnson & Kent Back Patterns-Oriented Software Architecture By Frank Buschmann & co-authors Patterns & XP By Joshua Kerievsky, Industrial Logic Inc !vf3+vf3(vf3(vf3vf3.vf3 P 0L( Br   c $F"P  F   c $F"0 P  F B  s *޽h ? f3  |P( x   s *HKF"P   F   c $LF"P`p F    HNFgֳgֳ ?"   : B  s *޽h ? f3  X(    s *4f"`  f   s *5f"P`p f B  s *޽h ? f3r m{W q0x