• 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 Knowledge Skills and Abilities (KSAs) identified within the Specialty Areas listed below. Click to view Specialty Area details within the interactive National Cybersecurity Workforce Framework.

Feedback

If you would like to provide feedback for this course, please e-mail the NICCS SO at NICCS@hq.dhs.gov.