Overview:
The hands-on course on mastering advanced object-oriented design (OOD) and design patterns (primarily the “Gang of Four” design patterns) with agility is aimed at architects and developers of OO systems, You will learn to design with patterns, apply visual modeling in an agile modeling approach, and a suite of related advanced design topics. In this intensive seminar there is some lecture time, but the majority is spent in small teams at vast whiteboard spaces while the coach rotates and works with each team, guiding them through the case study problems. The course proceeds through a series of case studies within which you learn design pattern skills. This course approaches software design from three perspectives: the software engineering principles that enable development of quality software, modeling of software elements using the Unified Modeling Language (UML), and the application of design patterns as a means of reusing design models that are accepted best practices.The assignments will apply an agile design first methodology. Object-oriented (OO) design patterns are a critical skill of successful developers to support design agility. Various studies indicate that after initial release of a software system, at least 50% of effort and cost is spent in modification. To save money, it is skillful and economic to take a long-term view of product development and invest in simple, clear and extensible designs that reduce these costs. You will leave this workshop with deeper skill to apply patterns and create quality designs that have agility – that support reduced modification costs and increased comprehensibility, and hence support business agility.
Objectives:
Upon completion of this course, students should be able to:
- Design flexibly with patterns (primarily, the “gang-of-four” design patterns)
- Learn and collaborate with agile modeling
- Design good type (class) hierarchies
- Learn and collaborate with simple UML
- Apply refactorings to patterns
Audience:
Developers, Sr. Programmers, Team Leads, etc…
Pre-Requisite:
The working assumption for this course is that registered students are proficient in programming. Our goal is to move beyond programming-specific concerns to a point where one can think through a design for a software application.
Course Curriculum
Course Outline | |||
Agile modeling Details | 00:00:00 | ||
Domain modeling Details | 00:00:00 | ||
Exploring together the GRASP principles Details | 00:00:00 | ||
Information Expert Details | 00:00:00 | ||
Creator Details | 00:00:00 | ||
Facade Controller Details | 00:00:00 | ||
Low Coupling Details | 00:00:00 | ||
High Cohesion Details | 00:00:00 | ||
Polymorphism Details | 00:00:00 | ||
Pure Fabrication Details | 00:00:00 | ||
Indirection Details | 00:00:00 | ||
Protected Variations Details | 00:00:00 | ||
SOLID principles Details | 00:00:00 | ||
Class hierarchy design Details | 00:00:00 | ||
Introduction to design patterns for object-oriented development & architecture Details | 00:00:00 | ||
Exploring together: Adapter, Proxy, Decorator, Abstract Singleton, Simple Factory Details | 00:00:00 | ||
Exploring together: Strategy, Composite, Policy Details | 00:00:00 | ||
Exploring together: Command, Memento, Command Processor Details | 00:00:00 | ||
Exploring together: Observer, Template Method Details | 00:00:00 | ||
Exploring together: Abstract Factory, Factory Method Details | 00:00:00 | ||
Exploring together: State Details | 00:00:00 | ||
Exploring together: Facade, Bridge, Builder, Chain of Responsibility Details | 00:00:00 | ||
Exploring together: Iterator, Interpreter, Mediator, Prototype Details | 00:00:00 |
Course Reviews
No Reviews found for this course.