SRE Simplicity: Software System Complexity
SRE
| Intermediate
- 18 videos | 1h 16m 45s
- Includes Assessment
- Earns a Badge
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 courseRecognize how simple systems and software are easy to understand, maintain, and testOutline the importance of simple code, e.g., having fewer bugsDefine the concept of software complexityDescribe the concept of theoretical complexityRecognize 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 developmentDifferentiate between complex and complicated code
-
Describe the importance of measuring complexityList the benefits of complexity analysisDefine the concept of cyclomatic complexityProvide an overview of the halstead metric, used to determine levels of complexityProvide an overview of the maintainability index, used to measure how maintainable source code isOutline the concept of class couplingOutline how to use npath to measure the complexity of a piece of codeIdentify the importance of prioritizing the simplification of projects and resourcesSummarize the key concepts covered in this course
IN THIS COURSE
-
1m 28s
-
3m 32sIn 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
-
4m 41s
-
4m 32sIn 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
-
4m 11s
-
3m 15sIn 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
-
5m 8sIn 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
-
5m 37sIn 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
-
3m 26s
-
9m 17s
-
12m 18sIn 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
-
5m 22sIn 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
-
1m 54sIn 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
-
2m 6sIn 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
-
2m 23sIn 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
-
1m 37sIn 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
-
4m 35sIn 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
-
1m 23sIn 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.