Software is a generic term covering the concepts, procedures and instructions which cause the computer systems to accomplish the required job, Generally, software is thought of in terms of programs, discrete units of software which enable the computer to carry out a particular task, and or systems or package&7--integrated collections of programs.
The importance of software lies in the fact that it is the software which applies power of the computer to solve the problems faced by the users. Most users require a detailed understanding of the capabilities of software than of hardware. It has been clear for some years now that the rapid advances in the capabilities of computer systems has not been matched by corresponding advances in the availability and quality of software.
Software may conveniently be divided into two categories: systems software (i.e., programs designed to control the execution of other programs and to utilise hardware effectively), and applications software (i.e., programs which enable to solve users' problems).
The methods by which software is produced have changed considerably in recent years with the emergence of the new discipline known as 'software engineering'. The traditional pattern of software development used to be a systems analysis to undertake a detailed study of user needs, leading to an elaborate specification for the software, which would then be converted into a programming language. This process is considered inadequate, and leading to backlogs. It is also felt that this procedure does not meet user needs effectively and is poorly maintained.
Increased availability of packaged software and use of fourth generation languages, and flexible integrated software to produce rapidly modified 'prototypes' of programs to meet user needs, are suggested as remedies to the software backlog problem. However, for the average user they mean that there will be an increasing array of packages to meet his requirements.