---
title: "Software characteristics and software crisis"
subject: "Software Engineering"
chapter: 1
key: "semester_5/software_engineering:characteristics-and-crisis"
source: https://www.bctengineer.com/q/semester_5/software_engineering/characteristics-and-crisis
site: BCT Engineering
---

# Software characteristics and software crisis

Software Engineering · Chapter 1: Software Process and requirements

- Asked in: year not given, 4+4 marks
- Video: [#1 Introduction To Software Engineering - Characteristics, Evolving role Of Software  |SE|](https://www.youtube.com/watch?v=qxv6vPlx2Cs) — Trouble- Free
- Answer checked by Claude Sonnet 5.5 on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/characteristics-and-crisis
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-1

## Question

What are typical software characteristics? What do you mean by software crisis?

## Short answer

Software is developed, not manufactured; it doesn't wear out but deteriorates with changes; it's mostly custom-built, intangible, and complex. The software crisis is the persistent problem of projects being late, over budget, unreliable, and failing to meet user needs, while demand grows faster than production capacity.

## Answer

#### Software characteristics
Software is a set of programs together with its documentation and configuration data. Its nature is very different from hardware or other manufactured products. Pressman lists three basic characteristics, and several others follow from them.

1. **Software is developed or engineered; it is not manufactured.**
   Almost all the cost is in design and development (engineering effort). Making copies costs almost nothing, and quality is built in during development, not during "production".

2. **Software does not wear out, but it deteriorates.**
   Hardware follows a "bathtub" failure curve: high failure early, low in the middle, and rising again as parts wear out. Software is not affected by dust, heat or ageing, so ideally its failure rate falls and stays flat. In practice every change (bug fix or new feature) can introduce new defects, so the failure rate spikes after each change and the minimum level slowly rises. The software deteriorates because of change, not because of wear.

```text
Failure
 rate
  ^    change   change   change
  |\     |\       |\       |\     actual curve
  | \    | \      | \      | \____
  |  \___|  \_____|  \_____|
  |   ............................ idealized curve
  +----------------------------------> Time
```

3. **Most software is custom built.**
   Hardware is assembled from standard components (ICs, screws). Much software is still written for a particular customer, although reuse and component-based development are growing.

Other typical characteristics:
- **Intangible**: it cannot be seen or touched, so progress is hard to measure.
- **Complex**: it has a huge number of states and interacting parts.
- **Flexible / easy to change**: this is a strength, but it also invites frequent changes and loss of structure.
- **No spare parts**: a failure means a design error that must be fixed in the code, not a part that can be replaced.

Sommerville describes the attributes that **good software** should have:

| Attribute | Meaning |
|---|---|
| Maintainability | Can evolve to meet changing needs |
| Dependability and security | Reliable, safe, secure; no damage on failure |
| Efficiency | Does not waste memory, CPU or network |
| Acceptability (usability) | Understandable and usable by its intended users |

#### Software crisis
The **software crisis** refers to the serious and continuing problems in software development that were recognised in the late 1960s: software was delivered **late**, cost **more than estimated**, was **unreliable**, **did not meet user requirements** and was **very hard to maintain**. At the same time the demand for software was increasing faster than the capacity to produce it.

Main causes:
- Growing size and complexity of systems.
- Poorly understood and frequently changing requirements.
- Unrealistic estimates and weak project management.
- No systematic development process ("code and fix").
- Insufficient testing and quality control.

Example: a large government payroll system that was budgeted for one year takes three years, still produces wrong tax deductions, and every rule change requires weeks of rework.

The answer to the crisis was **software engineering**: applying engineering discipline (process models, requirements engineering, design, testing, quality and configuration management) to software development.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Why does software deteriorate even though it does not wear out?
   A. Dust and heat damage the code over time
   B. Each change (bug fix or new feature) can introduce new defects, so the failure rate spikes after changes
   C. The storage medium ages and loses bits
   D. Software parts must be replaced like spare parts
   Answer: B. Deterioration comes from change, not physical wear: every modification can add defects and the minimum failure level slowly rises. (Key point: Software does not wear out but deteriorates)

2. What does 'software is developed or engineered, not manufactured' mean?
   A. Most cost is in producing physical copies
   B. Quality is built during production on an assembly line
   C. Almost all cost is in design and development, and copying costs almost nothing
   D. Software is built from standard hardware components
   Answer: C. Engineering effort dominates cost and quality is built in during development; copies are nearly free. (Key point: Developed not manufactured)

3. How does the hardware failure curve differ from the idealized software curve?
   A. Hardware follows a bathtub curve rising with wear, while idealized software failure rate falls and stays flat
   B. Both rise steadily with age
   C. Hardware failure rate is flat; software rises with age
   D. Software has the bathtub curve and hardware does not
   Answer: A. Hardware wears out so failures rise late; software is unaffected by ageing so ideally the rate stays low. (Key point: Hardware vs software failure curve)

4. Which statement about software being 'custom built' is correct?
   A. Software is always assembled only from standard ICs
   B. Much software is written for a particular customer, whereas hardware is assembled from standard components
   C. Reuse has made custom software disappear
   D. Custom building lowers software cost to zero
   Answer: B. Hardware uses standard components; much software is still written for a specific customer, though reuse is growing. (Key point: Custom built)

## Related in Software Engineering

- [Software crisis](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Asoftware-crisis) — Software Engineering, chapter 1
- [Designing software for real-time environments](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Areal-time-design-considerations) — Software Engineering, chapter 4

## Related in other subjects

- [CAD software modules: part, assembly, drafting](https://www.bctengineer.com/question.md?key=semester_4%2Fcomputer_aided_design%3Acad-software-modules) — Computer Aided Design, chapter 1
- [Software fault tolerance and recovery](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Asw-fault-tolerance-rollback) — Instrumentation II, chapter 9, asked 2×
- [Ownership and structure for software company](https://www.bctengineer.com/question.md?key=semester_7%2Forganization_and_management%3Aceo-software-ownership) — Organization and Management, chapter 4
- [Software maintenance and fixing common bugs](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Asw-maintenance-bugs) — Instrumentation II, chapter 9
