SRE Simplicity: Software System Complexity

SRE    |    Intermediate
  • 18 videos | 1h 16m 45s
  • Includes Assessment
  • Earns a Badge
Rating 4.8 of 179 users Rating 4.8 of 179 users (179)
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

  • 1m 28s
  • 3m 32s
    In this video, you'll learn more about Site Reliability Engineering or SRE. This is a discipline that takes aspects of software development and applies them to infrastructure and operations problems. The goal of SRE is to create scalable, reliable, and simple software systems. Simplicity is the key to a good system. As Albert Einstein once said, everything should be made as simple as possible, but no simpler. FREE ACCESS
  • Locked
    3.  Simple Code
    4m 41s
  • Locked
    4.  Software Complexity
    4m 32s
    In this video, you'll learn how to define the concept of software complexity. You'll discover that software can be complex in several different ways. It can be large, unreadable, or beyond our ability to understand or explain quickly. FREE ACCESS
  • Locked
    5.  Theoretical Complexity
    4m 11s
  • Locked
    6.  Complexity of Use
    3m 15s
    In this video, you'll learn more about the complexity or simplicity of a system. You'll learn there are several aspects to consider including code, architecture, infrastructure, and supportability. You'll also learn how to gauge the complexity of use, which is determined by how complicated a system is for a user to interact with it. You'll discover functional complexity is based on how much functionality exist within the software. FREE ACCESS
  • Locked
    7.  Structural Complexity
    5m 8s
    In this video, you'll learn that when you look at the overall complexity of something, one thing you might look at is its structural complexity. You'll learn that structural complexity is how hard it is for someone to understand and maintain software. You'll learn this means how difficult it is for a developer to understand and maintain software. FREE ACCESS
  • Locked
    8.  Organizational Complexity
    5m 37s
    In this video, you'll learn more about how to identify how complicated it might be for an organization to coordinate and collaborate on software development. You'll discover that teams need to be organized efficiently so they can get the job done quickly and correctly. There's no magic formula for this. FREE ACCESS
  • Locked
    9.  Complex vs. Complicated
    3m 26s
  • Locked
    10.  Measuring Complexity
    9m 17s
  • Locked
    11.  Software Complexity Analysis
    12m 18s
    In this video, you'll learn about measurable complexity and its benefits on your software. What can you measure? Where can you measure it? Why is it important, and what benefits does it give me? You'll learn that measuring your complexity means you know where you need to improve. FREE ACCESS
  • Locked
    12.  Cyclomatic Complexity
    5m 22s
    In this video, you'll learn how to define the concept of cyclomatic complexity. Cyclomatic complexity is a common method of measuring code complexity that can be used at the method level, the class level or even all the way up at the solution level. You'll learn about how this is based on placement and implementation of logical conditions like if, while and switch statements. FREE ACCESS
  • Locked
    13.  Halstead Metrics
    1m 54s
    In this video, you'll learn more about the Halstead metric. This is a quantitative measure of complexity that determines the complexity of your code by looking at the operands and operators in your code. You'll discover how Halstead metrics are good at calculating how computationally complex your code is. FREE ACCESS
  • Locked
    14.  Maintainability Index
    2m 6s
    In this video, you'll learn more about the maintainability index. This is a measure that helps determine the complexity of your solution as a whole. The maintainability index is calculated based on a number of factors like your cyclomatic complexity and Halstead metrics. Because the maintainability index has a fixed range of 0 to 100, a color coding can be applied to the results. FREE ACCESS
  • Locked
    15.  Class Coupling
    2m 23s
    In this video, you'll learn how to outline the concept of class coupling. This measures the coupling between objects. You'll learn that class coupling measures the number of classes or objects a class or a single object references. FREE ACCESS
  • Locked
    16.  NPATH
    1m 37s
    In this video, you'll learn how to outline how to use NPATH to measure the complexity of a piece of code. You'll discover that there's an alternative to cyclomatic complexity called NPATH. Like cyclomatic complexity, NPATH counts the total number of paths through your code. FREE ACCESS
  • Locked
    17.  Regaining Simplicity
    4m 35s
    In this video, you'll learn more about the opposite of complexity, simplicity. The whole point of measuring and keeping track of complexity in your code is to regain the simplicity of your software. Simple means easier to understand, understand and work with. You can measure your cyclomatic complexity, your maintainability index, or your end path. And then you can take action based on those values. FREE ACCESS
  • Locked
    18.  Course Summary
    1m 23s
    In this video, you'll summarize what you've learned in the course. You've examined software complexity, including the metrics for measuring and interpreting complexity and the importance of aiming to simplify projects and resources. You also learned about simple systems and software are easier to understand, maintain, test. The importance of simple code and software complexity is also covered. FREE ACCESS

EARN A DIGITAL BADGE WHEN YOU COMPLETE THIS COURSE

Skillsoft is providing you the opportunity to earn a digital badge upon successful completion on some of our courses, which can be shared on any social network or business platform.

Digital badges are yours to keep, forever.

YOU MIGHT ALSO LIKE

Rating 4.7 of 114 users Rating 4.7 of 114 users (114)
Rating 4.3 of 25 users Rating 4.3 of 25 users (25)
Rating 4.8 of 66 users Rating 4.8 of 66 users (66)

PEOPLE WHO VIEWED THIS ALSO VIEWED THESE

Rating 4.6 of 184 users Rating 4.6 of 184 users (184)
Rating 4.6 of 277 users Rating 4.6 of 277 users (277)
Rating 4.8 of 5 users Rating 4.8 of 5 users (5)