Course details

Secure Programmer: Software Design Techniques

Secure Programmer: Software Design Techniques

Expected Duration
Lesson Objectives
Course Number
Expertise Level


In this 13-video course, learners will discover a range of software engineering techniques used to design software. This includes modular, resiliency, architectural, component-level, model-driven, and pattern-based design. You will also explore how to identify well-designed code and script. Learners begin by observing modular design, which starts with the premise that code should be encapsulated into independent modules. This leads into learning about resiliency design. The various design approaches examined here are not mutually exclusive, and can be used together, particularly resiliency design, which often goes hand in hand with other design approaches to augment and enhance them. Next, study architectural design, with a look at the architecture process and how to apply it. Following on from this, you will learn how to apply both component-level design and pattern-based design. You will delve into Well Designed Java Example, and explore what makes it well designed. Also, Well Designed Python Example, which contains some nuances not common to other languages. Well Designed C# Example, Well Designed Javascript, and model-driven design are also covered.

Expected Duration (hours)

Lesson Objectives

Secure Programmer: Software Design Techniques

  • discover the key concepts covered in this course
  • recognize software design concepts
  • apply modular design
  • apply resiliency design
  • apply architectural design
  • apply component level design
  • apply pattern-based design
  • recognize well designed Java code
  • recognize well designed Python code
  • recognize well designed C# code
  • recognize well designed JavaScript
  • recognize model-driven design
  • summarize the key concepts covered in this course
  • Course Number:

    Expertise Level