SRE Simplicity: Software System Complexity


Overview/Description
Expected Duration
Lesson Objectives
Course Number
Expertise Level



Overview/Description

Simple systems and software are proven to be easier to develop, understand, maintain, and test. For site reliability engineers, simplicity should be an end-to-end goal and cover all aspects of the software life cycle.

In this course, you'll explore the importance of simple systems and software code. You'll identify the different types of software complexity, such as structural complexity, organizational complexity, complexity of use, and theoretical complexity, and learn how to differentiate between complex and complicated code.

You'll move on to recognize how to measure complexity using various metrics, such as cyclomatic complexity, the Halstead metric, and the maintainability index. Lastly, you'll examine class coupling, using NPATH to measure the complexity of a piece of code, and prioritizing the simplification of projects and resources.



Expected Duration (hours)
1.3

Lesson Objectives

SRE Simplicity: Software System Complexity

  • discover the key concepts covered in this course
  • recognize how simple systems and software are easy to understand, maintain, and test
  • outline the importance of simple code, e.g., having fewer bugs
  • define the concept of software complexity
  • describe the concept of theoretical complexity
  • recognize ways to determine software usage difficulty, e.g., is it functional and usable?
  • determine the structural complexity of software, e.g., how difficult it is for a developer to understand and maintain software?
  • identify how complicated it might be for an organization to coordinate and collaborate on software development
  • differentiate between complex and complicated code
  • describe the importance of measuring complexity
  • list the benefits of complexity analysis
  • define the concept of cyclomatic complexity
  • provide an overview of the Halstead metric, used to determine levels of complexity
  • provide an overview of the maintainability index, used to measure how maintainable source code is
  • outline the concept of class coupling
  • outline how to use NPATH to measure the complexity of a piece of code
  • identify the importance of prioritizing the simplification of projects and resources
  • summarize the key concepts covered in this course
  • Course Number:
    it_srespbpdj_01_enus

    Expertise Level
    Intermediate