Reliability Engineering: Definitions, Goals, and Getting Started

UPI Study › Courses › Software Engineering › Free lessons › Lesson 12.1 Free with a free account

Reliability Engineering: Definitions, Goals, and Getting Started

Software Engineering · Chapter 12: Reliability Engineering and SecuritySection 12.1 · lesson 75 of 1036 min · free with a free account

← Applying Formal Methods to Software DevelopmentNext lesson: Writing Code That Holds Up: Reliable Programming Practices →

Earn 3 college credits for Software EngineeringRecommended for credit by NCCRS · Computer Science 301 · self-paced · one payment, lifetime access

In this lesson

Being exact about what can go wrong - and how much of it a team can stop.

  • Define reliability precisely, as a probability
  • Distinguish a fault, an error, and a failure
  • Explain why reliability targets depend on the cost of failure
  • Describe the orientation reliability engineering brings to a system

Transcript

Everything said in the video, section by section (796 words). Read along, or search it.

Reliability Engineering and Security

Reliability Engineering: Definitions, Goals, and Getting Started

Saying a system is reliable sounds simple, until you try to define it precisely. Reliability engineering starts by being exact about what can go wrong, in what order, and how much of that chain a team can interrupt. This section covers the definitions, the goals, and the way this discipline approaches a system.

Precise, Not Binary

What Reliability Actually Means

Reliability is the probability that a system performs its intended function correctly, over a specified period of time, under specified conditions. That definition is deliberately precise. Reliability is not a label that a system either has, or does not have. It is always relative to a stretch of time and a set of operating conditions. And it is expressed as a likelihood, not a guarantee. It is also narrower than dependability, the broader umbrella that includes availability, safety, and related qualities. Reliability specifically concerns continuity of correct service, over time.

3 Different Things

Fault, Error, and Failure

When something goes wrong, it typically follows a chain described by three terms. Keeping them distinct matters. A fault is an underlying defect, like a mistake in the code or a flaw in the design. It may sit dormant, entirely unexercised, for a long time. An error is what happens when a fault actually gets triggered during execution. It is an incorrect internal state. But an error can still be entirely invisible from outside the system. A failure is what happens when an error propagates all the way to the system's external behavior. That is the point where a user, or another system, can see something has gone wrong.

Figure 1

The Chain Isn't Automatic

The important thing about this chain is that it is not automatic, at either step. A fault can stay dormant, and never be triggered at all. And an error can be caught or corrected internally, so it never reaches the output. Neither branch ever becomes a failure. Most reliability engineering effort goes into these two branches.

Table 1

Who Can See It?

Here are the three terms side by side, sorted by who can see them. A fault is an underlying defect. It is not visible from outside, and may sit dormant indefinitely. An error is an incorrect internal state. It is not visible from outside either, and may be caught before it spreads. A failure is a deviation in the system's output. That is the one an observer actually sees. So not every fault becomes an error, and not every error becomes a failure. That gap is where most of the real work happens.

Reliability Goals

What "Good Enough" Looks Like

So how reliable does a system need to be? There is no universal target. What counts as good enough depends entirely on the real consequences of failure. A note-taking app failing occasionally is an inconvenience. A flight control system failing is a different order of problem altogether. Domains where failure is catastrophic justify a level of rigor that would be excessive anywhere else. And targets are usually concrete, measurable figures, like an expected time between failures, or a target rate of successful operations over a defined period.

Getting Started

The Reliability Orientation

Reliability engineering brings a few recurring habits to any system. First, anticipate where faults are likely to originate, before they cause any trouble. Second, build in ways to detect problems early in the chain, ideally before a fault becomes an error, or an error becomes a failure. Third, plan deliberately for what happens when something fails anyway, because perfect prevention is never actually achievable. The concrete techniques are their own topic. What matters here is the orientation they are built on.

Apply It

"The System Should Be Reliable"

Let's apply that. A requirements document for a payment service says only this. The system should be reliable. What is wrong with that as a reliability goal? A vague aspiration cannot be verified. Setting a specific, measurable target is itself part of the discipline. And that figure should be chosen deliberately, from what failure would actually cost for this system, not by default or habit.

Key Terms

The Vocabulary of This Section

Let's lock in the key terms. Reliability is the probability that a system performs its intended function correctly, over a specified period, under specified conditions. A fault is an underlying defect or flaw, which may remain dormant until triggered. An error is the incorrect internal state produced when it is triggered. A failure is a deviation from expected behavior that becomes visible in the system's actual output. And dependability is the broader concept, covering reliability alongside availability, safety, and related qualities.

Key Takeaways

What to Carry Forward

To pull this together. Reliability is a probability, tied to a period of time and a set of operating conditions. A fault is triggered into an error, and an error can propagate into a failure. That chain is not automatic, and interrupting it is where most of the effort goes. Reliability targets depend on the real cost of failure, and they have to be measurable. And the discipline's orientation is simple. Anticipate faults, detect problems early, and plan for failure anyway.

About Software Engineering at UPI Study

Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.

Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Compare: Software Engineering vs Systems Analysis

Why take it here

Why students take Software Engineering with UPI Study

How professional software gets builtSoftware Engineering covers how teams turn requirements into working, maintainable software: process models, agile, requirements, design, testing, reliability and project management. It is a core course in computer science and software degrees.
Credit at a fraction of the priceThe same 3 credits can cost $750 or more at a US college. Here it is one payment, self-paced, with lifetime access.
Finish your degree soonerTransfer credits reduce the courses you still owe, so you can graduate earlier or lighten a heavy semester.
Strengthen an applicationA completed college-level course on an official transcript shows admissions and scholarship committees you can do the work.
Study on your own scheduleNo start dates, no deadlines. Watch the lessons, practice, and take the final when you are ready.
130,000+students helped with college creditsACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Where the credit goes

Universities that work with NCCRS

Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.

FAQ

Questions students ask us

About Reliability Engineering: Definitions, Goals, and Getting Started

What is the definition of software reliability?
Reliability is the probability that a system performs its intended function correctly over a specified period of time under specified conditions. It is expressed as a likelihood, not a guarantee, and it is always relative to a stretch of time and a set of operating conditions. It is narrower than dependability, which also includes availability, safety, and related qualities; reliability concerns continuity of correct service over time.
What is the difference between a fault, an error, and a failure?
A fault is an underlying defect, such as a coding mistake or design flaw, that may stay dormant for a long time. An error is the incorrect internal state produced when that fault is triggered during execution, and it may be invisible from outside. A failure occurs when an error propagates to the system's external behavior, where a user or another system can see it. Not every fault becomes an error, and not every error becomes a failure.
How do you set a reliability target for a software system?
A reliability target should be a concrete, measurable figure, such as an expected time between failures or a target rate of successful operations over a defined period, chosen from the real cost of failure. There is no universal target: an occasional failure in a note-taking app is an inconvenience, while a flight control failure could be catastrophic. A vague goal like "the system should be reliable" cannot be verified.
What is the main approach of reliability engineering?
Reliability engineering brings three habits to a system: anticipate where faults are likely to originate, build in ways to detect problems early in the chain, and plan deliberately for what happens when something fails anyway, since perfect prevention is never achievable. Most of the effort goes into interrupting the fault-error-failure chain, keeping faults dormant or catching errors internally before they reach the system's output.

About the Software Engineering course

How many college credits is Software Engineering?
Software Engineering (Computer Science 301) carries a NCCRS credit recommendation for 3 semester credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
How much does Software Engineering cost and what is included?
$250, paid once, with lifetime access: all 103 video lessons, a practice quiz after each, the graded work and final exam, and an official transcript when you finish. Students who want several courses choose UPI Study PRO instead.
Which universities accept UPI Study credits?
UPI Study has signed partner agreements with universities such as Thomas Edison State University, University of the People and Charter Oak State College, and works with universities such as Penn State, SNHU and SUNY. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities. Use "Find my college" on this page to check yours.
How long does Software Engineering take?
It is self-paced with no deadlines. The 103 lessons total about 11 hours of video; most students add reading and practice time and finish in a few weeks to a few months, on their own schedule.
How are the exams done?
Quizzes and assignments are online in the course. The final exam is taken online with proctoring; a person on the UPI Study team checks assignments, usually within two days.
How do my credits reach my college?
When the course shows 100% complete, request the official transcript from your dashboard. It is sent to the college you name, and you can send it to more than one. Check your college first with "Find my college" on this page, or ask Athena.

Ready for the full course? Earn 3 credits in Software Engineering.

103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.

Software Engineering
3 credits · NCCRS
Enroll →