A computer cannot do anything on its own. It must be instructed to do a job desired by us. Hence, it is necessary to specify a sequence of instructions a computer must perform to solve a problem. Such a sequence of instructions written in a language understood by a computer is called a computer program. A program controls a computer‘s processing activity, and the computer performs precisely what the program wants it to do. When a computer is running a program to perform a task, we say, it is running or executing that program. Hardware you can touch, software you can not.
The term software refers to a set of computer programs, procedures, and associated documents (flowcharts, manuals, etc.) describing the programs, and how they are to be used.
Software package is a group of programs that solve a specific problem or perform a specific type of job. For sample, a word-processing package may contain programs for text editing, text formatting, drawing graphics, spelling checking, etc. Hence, a multipurpose computer system, like a personal computer in your home, has several software packages, one each for every type of job it can perform. Software is a collection of instructions that enables a user to interact with the computer or have the computer perform specific tasks for them. Without any software the computer would be useless.
Software can be broadly classified in two categories:
1. System Software
2. Application Software
System software is a set of one or more programs designed to control the operation and extend the processing capability of a computer system.
Application software is a set of one or more programs designed to solve a specific problem, or do a specific task. The programs included in an application software package are called application programs. For example, payroll processing software, examination results processing software, railway/airline reservation software, computer games software are all application software.
Software Hierarchy