Although, the computer can not perform any function on its own, requiring just a statement that will guide and organize all operations to comply. This' one are the instructions that the programmer writes. These instructions are grouped in the form of programs that will be deposited in the computer's memory, are what is called software.
Therefore, it is a component created by humans, and is what allows the computer to perform tasks smart adequately to address the physical or hardware. It is the software that tells the hardware how and under what logical sequence to do the calculations and data manipulation.
The software is a set of programs developed by man, that control the performance of the computer, causing it to follow in their actions a number of default logic schemes.
This characteristic 'logic' or 'intelligent' software is what makes it also defines the immaterial part of computing, since although the software programs that are resident in a physical medium, such as main memory or floppy disks (or any hard storage device), the function of the programs on a computer is similar to the thinking of a human being.
The software is the link between hardware and man. The computer alone can not communicate with man and vice versa, because it separates the barerra language. The software tries to bridge that barrier, establishing procedures for communication between man and machine, ie, the software acts as an intermediary between the hardware and man.
If the hardware capabilities were very large, and consequently the user has full facilities in use, it would be necessary to use software. Unfortunately, it never will be.
While hardware progress is increasing and the physical devices are built more and more 'intelligence' included, in ways that are solved by hardware functions by software previously only feasible, it is virtually impossible that technological advance comes one day eliminate the need for software, since it is also evolving and facilities that the user asks the computer are becoming more sophisticated.
A most true and correct to understand the division of software and hardware, is the theological division between body and soul.
The question now is: what is a program? A program is a sequence of instructions that can be interpreted by a computer, obtaining as a result of this interpretation a particular outcome has been predetermined set by humans.
The programs are divided into routines. A routine is a subset of the set of instructions that make up the program. Each of the routines of a program performs a specific function within it.