Phase 3 of 5  ·  Quality & Trust
Week 10 / 20   ·   Ch 10

Dependability
and Security

"What makes software trustworthy? 5 properties every engineer must know."

📚 Ch 10 — Dependability🛡️ 5 Properties🔐 Security by Design⏱ ~20 min read

🔍Concept Deep Dives

Click each concept to expand — real examples, diagrams, pros & cons.

🔄

Availability

The probability that a system is operational at any given point in time.

When to Use

Any system where downtime has cost — e-commerce, healthcare, infrastructure.

Real-World Example

AWS targets 99.99% (52 min downtime/year). 99.9% = 8.7 hours/year. 99% = 87 hours/year.

✓ Advantages

  • Measurable metric
  • Foundation for SLAs
  • Drives redundancy design

⚠ Watch Out

  • High availability = high cost
  • Availability ≠ correctness
Availability — the uptime formula
Availability = MTTF / (MTTF + MTTR)
MTTFMean Time To Failure
MTTRMean Time To Repair
99.99% availability = just 52 minutes of downtime per year.
📊

Reliability

The probability that a system performs correctly over a given time period.

When to Use

Systems where incorrect operation causes harm or financial loss.

Real-World Example

A bank transfer must be reliable — a system that's available but transfers wrong amounts is not reliable.

✓ Advantages

  • Focuses on correct behavior, not just uptime
  • Measurable (POFOD, ROCOF, MTTF)

⚠ Watch Out

  • Hard to achieve 100% reliability
  • Trade-off with performance
Reliability metrics
PPOFOD — probability of failure on demand
RROCOF — rate of occurrence of failures
MMTTF — mean time to failure
High availability ≠ high reliability — a system can be up but still behave incorrectly.
🛡️

Safety

The probability that a system will not cause damage to people or the environment.

When to Use

Safety-critical systems: medical devices, avionics, industrial control, autonomous vehicles.

Real-World Example

Toyota unintended acceleration (2009): software bug caused deaths. Safety engineering would have prevented this.

✓ Advantages

  • Prevents catastrophic failure
  • Required by regulation in critical domains

⚠ Watch Out

  • Expensive (redundancy, certification)
  • Can conflict with performance
Safety-critical systems
Avionicse.g. Boeing 737 MAX
Medical devicese.g. insulin pumps
Industrial controle.g. nuclear plants
Autonomous vehiclesSelf-driving cars
🔐

Security

The ability to protect the system from malicious attacks and unauthorized access.

When to Use

Always — there is no system that doesn't need security.

Real-World Example

Equifax breach (2017): unpatched Apache Struts vulnerability exposed 147 million records.

✓ Advantages

  • Protects assets and users
  • Required by regulation (GDPR, HIPAA)

⚠ Watch Out

  • Adds complexity
  • Security vs usability trade-off
  • Never 100% secure
Core security properties
ConfidentialityOnly authorized parties see data
IntegrityData isn't tampered with
AvailabilityAccessible when needed
Authn + AuthzAuthentication & authorization
🌊

Resilience

The ability to continue delivering services in the presence of partial system failure.

When to Use

Systems that must survive failures, attacks, or unexpected events.

Real-World Example

Netflix Chaos Monkey: intentionally kills production servers to test resilience. If it can't survive chaos, it's not resilient.

✓ Advantages

  • Systems survive partial failures
  • Business continuity
  • Graceful degradation

⚠ Watch Out

  • Complex to design
  • Expensive to test
  • May mask bugs
The resilience cycle
RecognizeDetect the threat
ResistWithstand it
RecoverRestore service
AdaptImprove for next time
System stays operational even when parts fail

📋Quick Reference

θ Ch 10 Cheat Sheet — Dependability and Security
Availability
P(operational at given time). MTTF/(MTTF+MTTR). 99.9% = 8.7hr/yr downtime.
Reliability
P(correct operation over time period). POFOD, ROCOF, MTTF metrics.
Safety
P(no harm to people/environment). Critical in avionics, medical, industrial systems.
Security
Protection from malicious attack. CIA triad: Confidentiality, Integrity, Availability.
Resilience
Continue operating despite partial failure. Recognize → Resist → Recover → Adapt.
Fault vs Failure
Fault = cause (bug, hardware). Error = incorrect state. Failure = visible wrong behavior.
Dependability
Umbrella term: availability + reliability + safety + security + resilience.
θ
Sommerville's Key Points — Ch 10
Author's own summary from the end of the chapter.
  • 1Dependability: availability, reliability, safety, security, resilience — all required for trustworthy systems.
  • 2Availability: system operational when needed. Measured as MTTF/(MTTF+MTTR).
  • 3Reliability: system delivers correct service. Measured as POFOD or ROCOF.
  • 4Safety: no harm to people/environment. Critical in safety-critical systems.
  • 5Security: protection from malicious attacks. CIA triad: confidentiality, integrity, availability.
  • 6Resilience: maintain service despite failures. Recognize, resist, recover, adapt.
  • 7Fault → Error → Failure: the chain from cause to visible wrong behavior.

🌍From the Book & Beyond

📖

Case Study — Ariane 5: Redundancy Without Diversity

In 1996, the European Space Agency's Ariane 5 rocket exploded 37 seconds after lift-off on its maiden flight — a software systems failure. There WAS a backup computer (redundancy!), but it ran the same software, so it failed in exactly the same way. Rocket and satellite payload: destroyed. That's why Sommerville insists on redundancy AND diversity. The book then shows both philosophies flying safely today: the Airbus 340's flight control is diverse and redundant, while the Boeing 777 runs the same, exhaustively validated software on redundant hardware — betting on simplicity instead. Both aircraft are very reliable.

2026 Perspective — The CrowdStrike Outage

On 19 July 2024, a faulty configuration update from security vendor CrowdStrike crashed roughly 8.5 million Windows machines worldwide — grounding thousands of flights, disrupting hospitals, banks, and broadcasters. No hacker, no rocket: one bad content update pushed to everyone at once. It's this chapter in headline form. A sociotechnical failure (the software, the update process, and the organizations depending on it), a monoculture with zero diversity, and no staged rollout to contain the blast radius. The industry response — canary deployments, customer-controlled update rings, kill switches — is redundancy-and-diversity thinking, rediscovered the expensive way.

🧠Quiz — Test Yourself

Think through your answer first, then reveal.

Q1
Recall
What is the difference between availability and reliability? Give an example where a system has high availability but low reliability.
Availability = system is operational. Reliability = system operates correctly. Example: a database server that is always online (high availability) but occasionally returns wrong query results (low reliability). Available but not reliable.
Q2
Apply
Why can't you just 'add security later'?
Security is an architectural concern — it affects every layer of the system. Authentication, encryption, input validation, access control — these are design decisions. Retrofitting security onto a system not designed for it requires rebuilding large parts of it. Security must be designed in from day 1.
Q3
Analyze
Explain the fault-error-failure chain with an example.
Fault = root cause (e.g., integer overflow bug in code). Error = incorrect internal state (counter wraps to negative). Failure = visible wrong behavior (system rejects valid orders). Testing and fault tolerance aim to break this chain before it reaches 'Failure.'
Up Next → Week 11
Reliability Engineering
How Netflix achieves 99.99% uptime — and what you can learn from it
Continue → Week 11