Introduction to Software
1. What Software Is
Software is the collection of programs, procedures, associated data and documentation that instructs the hardware what to do and how to do it. Hardware is the physical machine; software is the logical, intangible part — "the hardware is the body, software is the mind".
| Term | Meaning |
|---|---|
| Algorithm | A finite, ordered set of unambiguous steps that solves a problem |
| Program | An algorithm expressed in a programming language (source code) |
| Software | Programs + data + documentation + procedures + support services delivered to a user |
| Firmware | Software permanently stored in ROM/flash inside a device (BIOS, printer, router) — between hardware and software |
2. Characteristics of Software
- Intangible / logical — cannot be touched; its value is in the logic, not the material. A copy costs almost nothing, which is why software is protected by licences rather than possession.
- Engineered, not manufactured — it is developed by analysis, design, coding and testing, so quality depends on process, not on a production line.
- Does not wear out, but deteriorates — no physical fatigue, yet every modification introduces the risk of new defects (the "software entropy" curve: failure rate rises as changes accumulate).
- Complex and immaterial to inspect — a 100,000-line program cannot be visually verified; testing and reviews substitute for inspection.
- Maintainable and reusable — most lifetime cost is maintenance, not initial development; components are reused through libraries and frameworks.
- Documentation-dependent — without requirement, design and user documents, software becomes unmaintainable when its authors leave.
3. Program vs Software in One Picture
ALGORITHM ──code──► PROGRAM ──+ data, docs, procedures──► SOFTWARE PRODUCT
(logic) (source/executable) (delivered & maintained)
4. Why Software is Developed in a Disciplined Way
The software crisis of the late 1960s — projects delivered late, over budget, full of defects ("the software crisis") — led to software engineering and the Software Development Life Cycle (SDLC):
| SDLC phase | Activity | Deliverable |
|---|---|---|
| Requirement analysis | What the user needs (functional + non-functional) | SRS document |
| Design | How to build it — architecture, modules, database, interfaces | Design document |
| Coding | Translate design into a program | Source code |
| Testing | Unit, integration, system, acceptance tests | Test reports, working build |
| Deployment | Install, train, migrate data | Released product |
| Maintenance | Corrective, adaptive, perfective, preventive changes | Patches and versions |
Models for organising these phases: Waterfall (sequential), Incremental/Iterative, Agile/Scrum (short sprints), Spiral (risk-driven), DevOps (continuous integration and delivery).
5. Broad Categories of Software
SOFTWARE
┌──────────────────┼───────────────────┐
SYSTEM SOFTWARE APPLICATION SOFT. UTILITY / TOOLS
(runs the machine) (does user's work) (maintains the system)
• Operating system • General purpose • Antivirus, backup
• Translators (Word, browser, • Disk cleaner,
(compiler, media player) defragmenter
interpreter, • Custom/tailor-made • Compression tools
assembler) (school ERP, bank • Debuggers, IDE,
• Device drivers software) version control
• Loader/linker • Packages: office, • Performance monitors
• Firmware/BIOS CAD, gaming
Middleware (web servers, database engines, message brokers) sits between the OS and application software. Detailed treatment of system and application software follows in the next topics.
6. Software vs Hardware
| Basis | Hardware | Software |
|---|---|---|
| Nature | Physical, tangible | Logical, intangible |
| Production | Manufactured in a factory | Engineered/developed by people |
| Failure mode | Wears out with use and age | Degrades with modification; bugs are design faults |
| Repairable? | Yes — replace the failed part | Yes — patch/reinstall; no "spare parts" concept |
| Cost structure | High material + manufacturing cost per unit | High development cost, near-zero copying cost |
| Copies | Each unit costs money | Copies are essentially free (licence limits use) |
| Maintenance | Preventive/scheduled servicing | Continuous upgrading, bug fixes, versioning |
| Protection | Patents on physical design | Copyright, licence, patent, trade secret |
| Dependency | Cannot do anything without software | Cannot run without hardware |
7. Licences and Distribution Models
- Proprietary / commercial — paid licence, source closed (Microsoft Office, Windows).
- Open source — source available, may be modified and redistributed (Linux, Firefox, Python) under GPL/MIT/Apache licences.
- Freeware / shareware — free to use, or free trial with paid upgrade.
- SaaS / subscription — software used over the internet (Google Docs, Office 365) with no local installation.
8. Exam Points
- Define software; differentiate software from hardware (tabular) — 5 marks, very frequent.
- What is the difference between an algorithm, a program and software? — 3-5 marks.
- Characteristics of software: why does software not "wear out" but still deteriorate? — 5 marks.
- Explain the software development life cycle phases — 5-7 marks.
- Classify software into system, application and utility with examples — 5 marks.
- What is firmware? Give two examples — 2-3 marks.