Chapter 3 6 min read
Save

Computer Software

Fundamental of Computer · BCA · Updated Apr 06, 2026

Table of Contents

Introduction to Hardware and Software

A computer system is a combination of two distinct but interdependent components: hardware and software. Hardware refers to the physical, tangible parts of the computer that you can see and touch, such as the CPU, motherboard, and monitor. In contrast, software is a collection of instructions or programs that tell the hardware exactly what to do. Without software, the hardware is like a body without a mind; it has the potential to work but no instructions to follow.

Logical System Architecture

Logical System Architecture refers to the conceptual model that defines the structure and behavior of a computer system. It describes how data flows from input units, through the processing and storage units, and finally to the output units. This architecture ensures that the system components—the Control Unit (CU)ALU, and Memory—work in a synchronized manner to process instructions via the "Fetch-Decode-Execute" cycle.

System Logical Architect
  Fig: System Logical Architect

 

Language Translators: Compipreter

Computers only understand machine language ($0s$ and $1s$), but humans write code in high-level languages. Translators are required to bridge this gap:

  • Compiler: Translates the entire high-level program into machine code all at once before execution. It generates an "executable" file, making it faster during runtime but slower during the initial translation phase.
  • Interpreter: Translates and executes the program line-by-line. If an error is found, it stops immediately, which makes it excellent for debugging but slower for running large programs

Types of Software

Software is generally categorized based on its purpose and the relationship it has with the hardware.

A. System Software

System software is the foundational layer that manages the computer’s internal resources and provides a platform for all other software to run. It essentially "translates" the complexities of hardware into a usable environment.

  • Operating System (OS): This is the master controller of the computer. It manages hardware components like the CPU and memory, handles file storage, and provides the Graphical User Interface (GUI) that allows you to interact with the machine. Without an OS, you would have to write code just to move the mouse or save a file.
  • Translating Programs: Computers cannot understand human languages or even high-level code like C++ or Python; they only process binary ($0$s and $1$s). Compilers and Interpreters act as the essential translators that convert human-written instructions into machine language.
  • Utility Software: These are specialized "maintenance" tools. While the OS runs the computer, utilities keep it healthy and efficient. For example, Antivirus software protects the system from threats, while Disk Defragmenters reorganize data on a hard drive to speed up file access.

B. Application Software

Unlike system software, which focuses on the machine, application software is entirely focused on the user's productivity, creativity, or entertainment.

  • Customized (Tailored) Software: This is "bespoke" software created for a specific client. For instance, a university might commission a unique registration system designed specifically for their internal workflow. It is expensive and time-consuming to build but fits the user's needs perfectly.
  • Packaged Software: These are ready-made, off-the-shelf programs designed for the general public. Because they are mass-produced, they are affordable and widely used. They are categorized into various suites based on the task they perform:

Categories of Packaged Software

  • Word Processing: Tools like MS Word used for creating, formatting, and printing text documents.
  • Electronic Spreadsheets: Programs like Excel designed for complex numerical calculations, data analysis, and graphing.
  • Database Management Systems (DBMS): Software like Oracle or Access used to store, organize, and retrieve massive amounts of structured data efficiently.
  • Graphics Packages: Applications like Adobe Photoshop used for creating and editing digital images or illustrations.
  • Education and Entertainment: This includes everything from digital encyclopedias and flight simulators to high-end video games.

System Software

Application Software

It serves as the essential infrastructure designed to manage the computer’s internal resources and hardware components.

It is specifically designed to perform functional tasks or solve problems for the end-user.

It acts as the background interface between the hardware and other software; users rarely interact with it directly.

Users interact with it constantly to achieve specific goals like writing, browsing, or gaming.

It runs independently and provides the platform required for other programs to function.

It is entirely dependent on system software and cannot run without an operating system.

It is generally more complex as it involves low-level machine communication and resource management.

It is designed to be more user-friendly and focused on the interface experience.

It is typically installed when the operating system is set up or is built into the hardware as firmware.

It is installed by the user as needed based on their specific requirements.

Examples include Operating Systems (Windows, macOS), Translators (Compilers), and Utilities.

Examples include Word Processors (MS Word), Spreadsheets (Excel), and Web Browsers.

Firmware

Firmware is a class of software permanently embedded in a hardware device's Read-Only Memory (ROM) to provide low-level control for that device. It acts as the most fundamental set of instructions that tells hardware how to function and interact with other components. A primary example of firmware is the BIOS (Basic Input/Output System) in a PC, which handles the initial boot process and hardware initialization before the operating system takes over. Because it is stored in non-volatile memory, firmware remains intact even when the power is turned off.

Middleware

Middleware is often described as "software glue" or a translation layer that sits between applications or between an operating system and an application, allowing them to communicate and share data effectively. It is particularly essential in distributed systems where different software components running on different platforms need to exchange information seamlessly. Middleware handles the complexities of network connectivity and data translation, allowing developers to focus on the core functionality of their applications. Common types of middleware include Remote Procedure Calls (RPC), which allow a program to execute code on a different computer, and Message Oriented Middleware (MOM), which facilitates the exchange of data messages across a network.

Types of Middleware

  • Remote Procedure Call (RPC): Allows a program to execute a procedure in a different address space (usually on another computer).
  • Message Oriented Middleware (MOM): Supports the sending and receiving of messages between distributed systems.
  • Object Request Broker (ORB): Enables objects to send and receive requests in a multi-platform environment.
  • SQL-oriented Data Access: Middleware that allows applications to interact with different databases using a standard SQL interface.
  • Embedded Middleware: Communication services designed specifically for embedded systems like those in cars or appliances.

Related Notes

Discussion

0 comments

Join the discussion

Log in to share your thoughts and help fellow students.

Log in to comment

No comments yet. Be the first to share your thoughts!