1. intro
1.1. Complexity of Enterprise Application
1.2. class diagram how-to
1.3. sequence diagram how-to
2. Variability
2.1. Common-Variability Analysis
2.2. Hotspot Cards
2.3. Design Hooks
2.4. Patterns
2.4.1. Template Method Pattern
2.4.2. Strategy Pattern
2.5. Inheritance and Composition
3. Modeling Initial Responsibilities
3.1. Strategy for Respnsibilities
3.1.1. finding
3.1.2. assinging
4. Object Design Concepts & Principles
4.1. Design Process
4.1.1. Exploratory Design
4.1.2. Design Refinement
4.2. Design Approaches
4.2.1. Data Driven
4.2.2. Behavioral Driven
4.2.3. Event Driven
4.2.4. Use-Case Driven
4.2.5. Responsibility Driven
4.2.5.1. Responsibility
4.2.5.2. Role
4.2.5.3. Collaboration
4.2.5.4. Contract
4.2.5.5. Stereotypes
4.2.5.5.1. Information Holder
4.2.5.5.2. Structurer
4.2.5.5.3. Service Provider
4.2.5.5.4. Coordinator
4.2.5.5.5. Controller
4.2.5.5.6. Interfacer
4.2.5.6. SOLID Principles
4.2.5.6.1. SRP(Single Responsibility Principle)
4.2.5.6.2. OCP(Open Close Principle)
4.2.5.6.3. LSP(Liskov Substitution Principle)
4.2.5.6.4. ISP(Interface Segregation Principle)
4.2.5.6.5. DIP(Dependency Inversion Principle)
4.2.5.7. design for test
5. Reliability
5.1. Types of Errors
5.1.1. Faults
5.1.2. Errors
5.1.3. Failures
5.2. Trust Region/Boundary
5.3. Exception Handling
5.4. Recovery Action
6. Collaboration & Control Center Design
6.1. Control Center
6.1.1. Centralized
6.1.2. Delegated
6.1.3. Dispersed
6.2. Descision Making Patterns
6.2.1. State Pattern
6.2.2. Double-dispatch pattern
6.3. Buisness Transactional Patterns
6.3.1. Pessimistic Lock Pattern
6.3.2. Optimistic Lock Pattern
6.4. Collaboration
6.4.1. strategy
6.4.2. Spring : Dependency Injection
7. Strategic Design Choice
7.1. Domain Concepts
7.1.1. Constraints
7.1.2. Business Processes
7.1.2.1. Service
7.1.2.1.1. Domain Service
7.1.2.1.2. Application Service
7.1.3. Specifications
7.1.4. Patterns
7.1.4.1. Specification Pattern
7.1.4.2. Repository Pattern
7.1.4.3. Factory Pattern
8. Finding Candidate Objects
8.1. Search Strategy
8.1.1. Themes
8.1.2. Domain Concepts
8.1.2.1. People & Roles
8.1.2.2. Places
8.1.2.3. Things
8.1.2.4. Aggregate Things
8.1.2.5. Events
8.1.3. Naming Rules
8.2. Describing Candidates
8.2.1. CRC Cards
8.2.2. Precision & Accuracy
9. Enterprise Application Principles
9.1. domain model
9.1.1. simple
9.1.2. rich
9.2. domain model patterns
9.2.1. transaction script pattern
9.2.2. table module pattern
9.2.3. domain model pattern
9.2.4. database script pattern
9.3. service layer pattern
9.4. datasource layer pattern
9.4.1. gateway
9.4.1.1. Row Data Gateway pattern
9.4.1.2. Table Data Gateway pattern
9.4.2. Active Record Pattern
9.4.3. Data Mapper Pattern
9.4.3.1. Hibernate example
10. Patterns
10.1. The form of patterns
10.2. Design Patterns
10.2.1. GoF Design Pattern
10.2.2. Enterprise Application Design Pattern
10.2.3. J2EE Design Pattern
10.3. Anti Patterns
11. Organizing
11.1. Layers & Tiers
11.2. Components & Services
11.3. Patterns
11.3.1. Presentation Layer
11.3.1.1. MVC Pattern
11.3.1.2. Page Controller Pattern
11.3.1.3. Front Controller Pattern
11.3.1.4. Application Controller Pattern
11.3.2. View Patterns
11.3.2.1. Template View Pattern
11.3.2.2. Transform View Pattern
11.3.2.3. Two-step View Pattern