Design Patterns for OOAD Software Development Course

Course Code: IN 687
Course Abstract: Object-Oriented Analysis and Design (OOAD) is a process of identifying the needs of a software project and then laying out those specifications in a readable model. Design Patterns are an extension of these skills that create more maintainable and robust code. Using well-known, proven patterns that either stand-alone or build from one to the next, designers are able to further define the specifications of the project, optimizing quality and time spent on developing the project by programmers. 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: This course is designed for the architects, designers, and developers requiring design patterns skills.
Duration: 2 days
Learning Outcomes: Upon completion of this course, the participant will be able to:
> Improve Software Architecture
> Build Design Pattern Vocabulary
> Be able to discuss trade-offs in applying various design patterns
> Gain concepts and tools for writing better object-oriented code
> Gain concepts for better documenting object-oriented code
> Review relevant UML notation
Course Topics:

Course Introduction
Course Objectives
Suggested References

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

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

Basic Object Oriented Design Patterns
Delegation vs. Inheritance
Interface
Immutable
General Responsibility Assignment Software Patterns

Catalog of GoF Patterns
Overview of GoF Patterns
Introduction to Creational Patterns
Factory Method
Abstract Factory
Singleton
Introduction to Structural Patterns
Adapter
Facade
Composite
Bridge
Introduction to Behavioral Patterns
Strategy
Template Method
Observer

Additional Gof Patterns (as time permits)
Decorator
Proxy
Iterator
Command
State

Patterns-Oriented Software Architecture
Systems of Patterns
Architectural Patterns
Layers Architecture
Broker
Model-View-Controller
Presentation-Abstraction-Control
Reflection
Catalog of J2EE Patterns
J2EE Pattern Relationships

Patterns Summary
Appendix A: UML Review
Appendix B: C# Code Examples for GoF
Appendix C: Maze Game Java Code
Appendix D: Possible Solutions for Exercises
Appendix E: Diagram Worksheets

Prerequisites: Object-Oriented Analysis & Design with the Unified Modeling Language or equivalent experience. At least 6 months experience programming with an object-oriented programming language.
Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning

Testimonials

“Great teacher. This has been my favorite class so far that I’ve taken with Education Services. The instructor was very knowledgeable and managed the class very well.”

Student – UNIX and AIX