Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
A program is generally made up of a sequence of instructions that clearly specify what a computer is supposed to do. Software, in contrast, is a set of programs that are either supplied by the manufacturer of the hardware associated with it or written by an application developer, with purposeful intent of commercial or public use. Thus, for a program to qualify as software, it should have the properties of correctness, versatility, and maintainability in addition to well-documented code.
Software engineering is a methodical approach used in software development. It is defined in IEEE Software Engineering Standards 1987 as Software Engineering is the systematic approach to the development, operation, maintenance and retirement of software.
A program is rarely executed correctly on a computer system unless considerable amount of time has been spent in the problem-solving phase of its development. Coding can start only after the problem-solving phase is complete. The computer language (code) is then coded from the prepared plan. The plan for solving a problem involves development of a series of instructions, referred to as an algorithm. An algorithm enables us to solve the problem at hand in a systematic way. The development of an algorithm for a problem is justified by the fact that it is necessary to select the correct logical steps to be followed so that the problem can be solved in a quick and an efficient manner.
Let us understand the working of a program by drawing an analogy with a blender used to prepare our favourite recipe. To prepare food, we follow different types of processes – the first pertaining to the use of the blender and the second to the ingredients required for the recipe. Here the recipe is analogous to the program, the ingredients are the input, and the prepared food is the output of the program.
We require two different types of software to enable a computer to process data, namely, systems software and application software. Returning to the analogy, application software can be equated with the recipe, while systems software acts as the blender. Let us take a look into each type of software first.
Computer software consists of two major types of programs: