Software is never finished
A shop launches an app. It works well. Everyone is happy.
Six months later, a new law says every food product must show its allergy information. The app must change.
A month after that, a bad file damages part of the customer list. The app must be repaired.
Software needs work after it is released. That work is called maintenance.
Key words
| Word | What it means | Example |
|---|---|---|
| Maintenance | Work on software after it is released, to keep it working and useful. | A fix, an update |
| Preventive maintenance | Change made before a problem happens, because we can see it coming. | Update for a new law |
| Corrective maintenance | Change made to repair an error that nobody expected. | Repair damaged data |
| Regulation | A rule from the government or an official body. | A law on allergy labels |
| Business process | The steps a company follows to do its work. | How an order is checked and sent |
| Zero-day | A weak place that attackers find before the maker knows about it. | A new fault in a popular tool |
| Targeted attack | An attack on one person or one company. | A thief attacks one bank only |
| Data corruption | Data that is damaged or wrong. | An age of -5 |
The cells students fill in are left blank in this preview.
Eight reasons for maintenance
| Group | Reason to change | Example |
|---|---|---|
| Prevent: we can see it coming | A change to a regulation | A new law about data or labels. The software must follow it |
| Prevent | Compatibility with new products or technology | A new phone system arrives. The app must work on it |
| Prevent | A change in the business process | The company starts to send parcels from a second warehouse |
| Prevent | The release of a new product or service | The shop adds a gift card. The software must handle it |
| Correct: nobody expected it | A new weakness because another product changed (zero-day) | A tool the app uses has a new fault that attackers use at once |
| Correct | A targeted attack | A thief attacks one company and gets into its site |
| Correct | Data corruption | A bad update turns some ages into words |
| Correct | A system failure | The server stops and orders are lost |
The cells students fill in are left blank in this preview.
Why "zero-day"?
data-callouts.important.label
The maker has had zero days to fix the weak place. Attackers know about it first. This is why these updates are urgent.
Try it: spot damaged data
rows = [(1, 17), (2, "abc"), (3, -5), (4, 20)]
for customer, age in rows:
good = isinstance(age, int) and 0 <= age <= 120
print(customer, age, "good" if good else "DAMAGED")
# 0 <= age <= 120 means: age is from 0 to 120.
# Add a row (5, None). Is it good or damaged?
Quick check: why change?
Have a go
Quick check: why change?
4 questionsYour answers are marked here and are not kept. A college account keeps every student’s marks.