• Online, Self-Paced
Course Description

There are a number of concepts and methodologies that encompass what is known as object-oriented design. In this course, you'll explore object-oriented design concepts such as Single responsibility, Open/Closed, Liskov substitution, Interface segregation and Dependency inversion (SOLID), Unified Modeling Language (UML), class responsibility collaboration (CRC) cards, and General Responsibility Assignment Software Patterns (GRASP).

Learning Objectives

Object-Oriented Programming Basics

  • start the course
  • recognize the basic concepts of OOP
  • create and instantiate a C#/Java object
  • explain what abstract classes are and illustrate with a sample
  • explain what encapsulation is and illustrate with a sample
  • explain what inheritance is and illustrate with a sample
  • demonstrate the concept of polymorphism and show how it works with a code sample

Object-Oriented Design Basics

  • recognize the basic concepts of OOD
  • recognize the basic concepts of UML and recommended tools
  • demonstrate the role of use cases in OOD
  • demonstrate how to model classes and objects using UML
  • demonstrate the role of state charts in OOD
  • demonstrate how to create UML activity diagrams
  • recognize the basic concepts of Don't Repeat Yourself (DRY)
  • demonstrate the use of a Class Responsibility Collaboration card

Practice: Object-Oriented Programming and Design

  • recognize the basic concepts of object-oriented programming: encapsulation, inheritance, polymorphism, and abstraction

SOLID

  • recognize the basic concepts of SOLID
  • recognize the basic concepts of the Single Responsibility Principle
  • recognize the basic concepts of the Open/Closed Principle
  • recognize the basic concepts of the Liskov Substitution Principle
  • recognize the basic concepts of the Interface Segregation Principle
  • recognize the basic concepts of the Dependency Inversion Principle

GRASP

  • recognize the basic concepts of GRASP
  • recognize the role of the Information Expert principle in the GRASP pattern
  • recognize the role of the Creator principle in the GRASP pattern
  • recognize the role of the Low Coupling principle in the GRASP pattern
  • recognize the role of the High Cohesion principle in the GRASP pattern
  • recognize the role of the Controller principle in the GRASP pattern
  • recognize the role of Polymorphism in the GRASP pattern
  • recognize the role of the Pure Fabrication principle in the GRASP pattern
  • recognize the role of the Indirection principle in the GRASP pattern
  • recognize the role of Protected Variations in the GRASP pattern

Practice: SOLID and GRASP Principles

  • recognize the basic concepts of the SOLID and GRASP object-oriented design principles

Framework Connections

The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):

Specialty Areas

  • Software Development
  • Systems Development