T4 Course
Advanced Principles of Object Oriented Programming and Design Patterns Workshop

Software Architect and Senior Analyst-developer interested in gaining a better ability to design software. It's required familiarity with the concepts of object-oriented programming, concepts of UML and some programming experience in an object-oriented language (C++, Java, Smaltalk, C# ...).
Course Objectives
Object-Oriented Design is a science and an art at the same time. Becoming an expert in object-oriented technology requires much effort, time and experience. The Design Patterns Workshop helps make a smoother learning curve teaching classic design patterns that led to the creation of modern object-oriented design. Patterns are introduced by the aid of principles, models, examples and discussions.
  • Introduction to various types of Patterns
  • Structure of a pattern
Creational Design Patterns
  • It describes in detail the following patterns:
    • Abstract Factory, Builder, Creation Method, Factory Method
    • Lazy Initialization, Prototype, Singleton
  • Workshop based on Creational patterns
Structural Design Patterns
  • It describes in detail the following patterns:
    • Adapter, Bridge, Composite, Container
    • Decorator, Extensibility, Fašade, Proxy, Pipe and Filters, Private class data
    • Collecting Parameter, Flyweight
  • Workshop based on Structural patterns
Behavioral Design Patterns
  • It describes in detail the following patterns:
    • Chain of Responsibility, Command, Event Listener, Iterator, Memento
    • Creation Mediator, Observer, State, Strategy
    • Template Method, Interpreter, Visitor
    • Null Object, Prototype
  • Workshop based on Behavioral patterns
GRASP Patterns
  • It describes in detail the following patterns:
    • Information Expert, Creator, Controller
    • Low Coupling, High Cohesion
    • Polymorphism, Pure Fabrication
    • Indirection, Protected Variations
  • Workshop based on GRASP patterns
Refactoring to Patterns
  • In this short session a dozen techniques on Refactorings to Patterns will be shown,
  • and discussed the principles and philosophy inherent in the emerging design and how this is connected with the use of patterns.
  • Refactoring to Patterns workshop
At the end of the course
Participants will have acquired the following advanced knowledge on:
  • Core creational, structural and behavioral patterns in the famous book "Design Patterns: Elements of Reusable Object-Oriented Software".
  • Object Oriented Design and Patterns such as Craig Larman's GRASP ones.
  • Refactoring techniques based on design patterns.
The workshop will conclude with some educational games that allow participants to check their level of learning in a relaxed and stimulating environment.
Training method
Theoretical and practical, or course elements will alternate theoretical illustration of specific cases and demonstration of Design Patterns the UML methodology. Delivery will be based on practical-exercises, for which the exercises will be balanced on the basis of the relevance of the topics covered.

2 days full time (9.30 - 13.00)   (14.00 - 17.00)