SRE Simplicity: Software System Complexity

SRE    |    Intermediate
  • 18 Videos | 1h 24m 45s
  • Includes Assessment
  • Earns a Badge
Likes 80 Likes 80
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.

WHAT YOU WILL LEARN

  • 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

IN THIS COURSE