Pattern Oriented Design

MSIT-SE-M-15 Pattern Oriented Design

Credits: 12 units

Semester: Fall

Length: full semester

Overview

In general terms the intent of this class is to introduce the initiatives, techniques and strategies that characterize the efforts made in both academia and industry to transition the software engineering discipline from an ad hoc, random-behavior, random-result “alchemy” into an established profession using repeatable practices with predictable results (design patterns).

This course studies the heuristics, principles and patterns of object-oriented design in the construction of extendable frameworks, reusable packages and pluggable components. Topics covered include principles of class and package design, the "Gang of Four" design pattern catalog, refactoring and framework evolution. These principles are necessary instruments to the every individual in the software engineer world.

After completing this course students will be able to:

  • Apply design principles that reinforce and expand upon low-level design heuristics and tie those heuristics to underlying theory of object-oriented systems
  • Apply package design principles which operate at a higher level of granularity of packages
  • Examine the concept and practice of refactoring - why we do it, how to do it, and when to do it
  • Explore how refactoring can allow us to evolve our systems into reusable frameworks, when necessary, through a series of steps developed by Ralph Johnson (of the Gang of Four).
  • Apply different creational design patterns as design solutions in the proper context while taking into account the consequences as well.
  • Apply different structural design patterns as design solutions in the proper context while taking into account the consequences as well.
  • Apply different behavioral design patterns as design solutions in the proper context while taking into account the consequences as well. 

Prerequisites

Students are expected to have a prior academic or industrial knowledge of the principles of Object Oriented programming. Students are expected to have a basic knowledge of UML.

Сайт находится в технической разработке