Home    |    Instructor-led Training    |    Online Training     
         
 
Courses
ADA
Adobe
Agile
AJAX
Android
Apache
AutoCAD
Big Data
BlockChain
Business Analysis
Business Intelligence
Business Objects
Business Skills
C/C++/Go programming
Cisco
Citrix
Cloud Computing
COBOL
Cognos
ColdFusion
COM/COM+
CompTIA
CORBA
CRM
Crystal Reports
Data Science
Datawarehousing
DB2
Desktop Application Software
DevOps
DNS
Embedded Systems
Google Web Toolkit (GWT)
IPhone
ITIL
Java
JBoss
LDAP
Leadership Development
Lotus
Machine learning/AI
Macintosh
Mainframe programming
Mobile
MultiMedia and design
.NET
NetApp
Networking
New Manager Development
Object oriented analysis and design
OpenVMS
Oracle
Oracle VM
Perl
PHP
PostgreSQL
PowerBuilder
Professional Soft Skills Workshops
Project Management
Python
Rational
Ruby
Sales Performance
SAP
SAS
Security
SharePoint
SOA
Software quality and tools
SQL Server
Sybase
Symantec
Telecommunications
Teradata
Tivoli
Tomcat
Unix/Linux/Solaris/AIX/
HP-UX
Unisys Mainframe
Visual Basic
Visual Foxpro
VMware
Web Development
WebLogic
WebSphere
Websphere MQ (MQSeries)
Windows programming
XML
XML Web Services
Other
Design Patterns
Overview

This advanced Object-Oriented course provides software architects and designers with skills to create high quality object-oriented designs exhibiting improved flexibility, reduced maintenance costs, and with increased understanding of the resulting code. Participants learn more than 30 object-oriented patterns, including the 23 micro-architectures in "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson, and Vlissides (the gang-of-four, or GoF book). Application examples and code snippets are provided to illustrate the patterns and the rationale for using that pattern in a given situation.

Audience

Software architects and designers requiring advanced design skills.

Prerequisites

Object-Oriented Analysis & Design-UML or equivalent experience. At least 6 months experience programming with an object-oriented programming language.

Course duration

4 Days

Course outline

  1. Design Pattern Overview
    • Objectives in Software Design/Module Design
    • Overview of Patterns
    • Qualities of a Pattern
    • Pattern Systems
    • Heuristics vs. Patterns

  2. Principles of Object-Oriented Design
    • Overview of Principles
    • Single-Responsibility Principle (SRP)
    • Open-Closed Principle (OCP)
    • Tell vs. Ask
    • Command/Query Separation (CQS)
    • Composed Method
    • Combined Method
    • Liskov Substitution Principle (LSP)
    • Dependency Inversion Principle (DIP)
    • Interface Segregation Principle (ISP)
    • Law of Demeter

  3. Principles of Package Architecture
    • Package Cohesion Principles
    • Package Coupling Principles
    • Martin Package Metrics

  4. Basic Object-Oriented Design Patterns
    • Delegation vs. Inheritance
    • Interface
    • Immutable
    • Null Object
    • Marker Interface 1
    • General Responsibility Assignment Software Patterns

  5. Catalog of GoF Patterns
    • Overview of GoF Patterns
    • Introduction to Creation Patterns
    • Factory Method
    • Abstract Factory
    • Builder
    • Prototype
    • Singleton
    • Introduction to Structural Pattern
    • Adapter
    • Decorator
    • Proxy
    • Facade
    • Composite
    • Flyweight
    • Bridge
    • Introduction to Behavioral Patterns
    • Chain of Responsibility
    • Strategy
    • Iterator
    • Template Method
    • Mediator
    • Observer
    • Memento
    • Command
    • State
    • Visitor
    • Interpreter

  6. Other Micro-Architecture and System Patterns
    • Object Pool
    • Worker Thread
    • Dynamic Linkage
    • Cache Management
    • Type Object
    • Extension Object
    • Smart Pointer (C++)
    • Session
    • Transaction

  7. Concurrency Patterns
    • Single Threaded Execution
    • Guarded Suspension
    • Balking
    • Scheduler
    • Read/Write Lock
    • Producer/Consumer
    • Two-Phase Termination
    • Double-Checked Locking

  8. Patterns-Oriented Software Architecture
    • Systems of Patterns
    • Architectural Patterns
    • Layers Architecture
    • Pipes & Filters Architecture
    • Blackboard Architecture
    • Broker
    • Model-View-Controller
    • Presentation-Abstraction-Control
    • Reflection
    • Microkernel
    • Catalog of J2EE Patterns
    • J2EE Pattern Relationships

  9. Selected Process Patterns (from PLoP)
    • The Selfish Class
    • Patterns for Evolving Frameworks
    • Patterns for Designing in Teams
    • Patterns for System Testing

  10. Selected Anti-Patterns
    • Stovepipe System
    • Stovepipe Enterprise
    • Reinvent the Wheel
    • Golden Hammer
    • Death by Planning
    • Death March Projects
    • Additional Management Anti-Patterns

  11. Patterns Summary
  12. Appendix A: UML Review
  13. Appendix B: C# Code Examples for GoF
  14. Appendix C: Maze Game Java Code
  15. Appendix D: Possible Solutions for Exercises
  16. Appendix E: Diagram Worksheets

Please contact your training representative for more details on having this course delivered onsite or online

Training Outlines - the one stop shopping center for IT training.
© Training Outlines All rights reserved