Introduction & SDLC · Software Engineering

Characteristics of Software

Watch lectures

Characteristics of Software

Software vs. Hardware — Key Distinguishing Characteristics

1. Software is Developed/Engineered, Not Manufactured

  • Hardware: built in a factory, physical manufacturing process, quality determined by manufacturing
  • Software: designed and developed, not assembled from physical parts — costs are concentrated in engineering, not production

2. Software Does Not "Wear Out"

  • Hardware degrades physically over time (wear and tear), following a bathtub curve (high early failure, low steady failure, rising failure with age)
  • Software has a different failure curve: bugs are found and fixed early (idealized zero-defect curve), but maintenance introduces new defects, causing an increase in failure rate over time — it "deteriorates" due to change, not physical wear

3. Most Software is Custom-Built, Not Assembled from Components

  • Hardware: built from standardized, reusable components (ICs, resistors)
  • Software: historically built from scratch, though this is changing with reusable components, libraries, and frameworks (see Software Reuse)

4. Software is Flexible

  • Can be changed after deployment (patches, updates) — but each change carries risk of introducing new bugs

5. Software is Complex and Invisible

  • Cannot be seen or touched — its complexity is conceptual/logical, hard to visualize compared to physical hardware

Summary Table

Aspect Hardware Software
Production Manufactured Developed/Engineered
Wear out Yes (physical) No (logical deterioration via changes)
Reuse Standard components Custom-built (increasingly reusable)
Visibility Physical, tangible Abstract, intangible

Exam tip: Draw the two failure-rate curves (hardware "bathtub curve" vs. software "idealized + actual" curve) — this diagram is frequently asked.

Student FinanceWeb Platform

Pocketly — Personal Finance for Students

Keep your hostel and college expenses under control. Track accounts, log spending in seconds, and stay within your monthly budget.

← All Software Engineering modules