{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} {\f165\froman\fcharset238\fprq2 Times New Roman CE;}{\f166\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f168\froman\fcharset161\fprq2 Times New Roman Greek;}{\f169\froman\fcharset162\fprq2 Times New Roman Tur;} {\f170\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f171\fswiss\fcharset238\fprq2 Arial CE;}{\f172\fswiss\fcharset204\fprq2 Arial Cyr;}{\f174\fswiss\fcharset161\fprq2 Arial Greek;}{\f175\fswiss\fcharset162\fprq2 Arial Tur;} {\f176\fswiss\fcharset186\fprq2 Arial Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128; \red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}{ \s1\sb240\sa60\keepn\nowidctlpar\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 1;}{\s2\sb240\sa60\keepn\nowidctlpar\widctlpar\adjustright \b\i\f1\cgrid \sbasedon0 \snext0 heading 2;}{ \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\adjustright \f1\cgrid \sbasedon0 \snext0 heading 3;}{\s4\sb240\sa60\keepn\nowidctlpar\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}}{\info {\title *** Volume 1 ***}{\author Mark Grand}{\operator Mark Grand}{\creatim\yr1997\mo10\dy30\hr8\min24}{\revtim\yr1997\mo12\dy16\hr10\min39}{\version37}{\edmins82}{\nofpages8}{\nofwords448}{\nofchars2557}{\*\company }{\nofcharsws0}{\vern71}} \widowctrl\ftnbj\aenddoc\makebackup\hyphcaps0\formshade\viewkind2\viewscale100\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \b\f1\fs28\kerning28\cgrid {*** Volume 1 *** \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Preface and Foreword \par Acknowledgements \par Chapter 1. Overview of UML \par Chapter 2. Description Software Patterns \par Chapter 3. The Software Life Cycle \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Design \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 4. Fundamental Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Delegation \par ++Aggregation \par Class Decoupling \par Proxy \par Immutable \par Marker Interface \par ++Call Back \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 5. Creational Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Abstract Factory \par Builder \par Factory Method \par Prototype \par Singleton \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 6. Partitioning Patterns \par }\pard\plain \s3\qc\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Layered Initialization \par }\pard \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright {Filters \par ++Model-View-Controller \par Recursive Composition/Composite \par ++Separate Transaction Processing from Archival \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 7. Structural Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Adapter \par Iterator \par ++Blackboard \par Bridge \par Facade \par Flyweight \par Dynamic Linkage \par ++Micro-kernel \par ++Pipes \par Virtual Proxy \par ++Reflection \par ++View Handler \par ++Representing Relational Database Tables as Objects \par ++Representing Objects as Relational Database Tables \par Wrapper/Decorator \par Cache Management \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 8. Behavioral Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chain of Responsibility \par ++Repeater \par Command \par Interpreter \par Mediator \par Memento \par Observer \par State \par Null Object \par Strategy \par Template Method \par Visitor \par ++Access Proxy \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 9. Temporal Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Single Threaded Execution \par Exclusive Data Access \par Guarded Methods/ Optimistic Concurrency \par ++Master-Slave \par Rendezvous \par Balking \par Consumer-Producer \par ++Explicit Synchronization \par Asynchronous Invocation \par ++Thread Safe Iterator \par ++Two-Phase Termination \par ++Read/Write locks \par ++Double Buffering \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 10. Presentation Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {++Externalize Resources \par ++Delegated Validation \par ++Limited Selection Size \par ++Hyperlink \par ++Shared Area \par ++Window per Task \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 11. Distributed Computing Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {++Object Identifier \par ++Data Lock \par ++Optimistic Concurrency \par ++Replication \par ++Publish-Subscribe \par ++Registry \par ++Broker \par ++Object Broker \par ++Database Broker \par ++Naming Service \par ++Client-Dispatcher-Server \par ++Translator \par ++Remote Proxy \par ++Evictor \par ++Environment Worker \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Chapter 12. Business Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {++Trader \par ++ Exception Report \par }\pard\plain \s1\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright \b\f1\fs28\kerning28\cgrid {*** Volume 2 *** \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Section I. Overview of Software Patterns and the Software Life Cycle \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 1. Overview of UML \par Chapter 2. Description Software Patterns \par Chapter 3. The Software Life Cycle \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {Business Case \par Requirements \par Analysis \par Coding \par Testing \par Deployment \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Section II. Analysis Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 4. GRASP Patterns \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {Controller \par Creator \par Expert \par High Cohesion \par Law of Demeter \par Lifelike \par Low Coupling \par ++Plug-In \par Polymorphism \par Pure Fabrication \par ++Agent \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 5. Transaction Patterns \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {++ACID Transaction \par Business Transactions and Accounts \par Composite Transaction \par Adjustment Transactions \par Audit Trail \par ++Two phase commit \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Section III. Coding Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 6. Organizational Patterns \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {Assertion Testing \par Accessor Method \par Behavior Extension \par ++Busy Waiting \par Call Back \par Case \par Classification Table \par Conversion Table \par ++Inner Classes \par Instance Counting \par Maximize Privacy \par Marshaling/Unmarshaling \par Meta Constructor \par Security Manager \par Socket/ServerSocket \par ++Symbolic Name \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 7. Optimization Patterns \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {Hashed Adaptor Objects \par Promise \par Lazy Materialization \par Copy on Write Proxy \par ++Loop Unwinding \par ++Duff's Device \par Lookup Table \par }\pard\plain \s2\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright \b\i\f1\cgrid {Section IV. Testing Patterns \par }\pard\plain \s3\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel2\adjustright \f1\cgrid {Chapter 8. Test Patterns \par }\pard\plain \s4\sb240\sa60\keepn\nowidctlpar\widctlpar\outlinelevel3\adjustright \b\f1\cgrid {Acceptance Testing \par Black Box testing \par Integration \par Layer Testing \par System Testing \par ++Test Bed \par Unit Testing \par White Box Testing \par }}