In today’s age computer software has become a driving force. It is a key factor that distinguishes between modern products and services from the traditional ones. It is implanted in systems of all kinds, transportation, medical, telecommunications, military, industrial processes, entertainment, etc.

“So, what is software anyways?”

A textbook description of software looks like the following:

Software is instructions that when executed provide desired function and performance, it is data structures that enable the programs to adequately manipulate information and it is documents that describe the operation and use of the programs.

Simply put software is a collection of program codes and procedures which when run gives the desired output.

Three main characteristics of software as defined by software engineering scholar Roger Pressman are:

Software is developed or engineered; it is not manufactured in the classical sense. Like hardware when software is developed nothing physical is created. It is just sequence of texts.

Software doesn’t wear out. In due course of time every hardware component wears out due to various reasons, but since there is nothing physical about software it doesn’t wear out. It runs with the same efficiency even 10 years from when it was developed. Software might get outdated with the advent of new technology and better and faster programs.

Although the industry is moving toward component-based assembly, most software continues to be custom built. Software still continues to be built depending on the requirement and specification given by a client or for a specific application.

A few major applications of software are:

System software: Collection of programs which services other programs or enables the usage of other programs is known as system software. Example: Operating systems, editors, compilers, etc.

Real time software: Software which enables monitoring of real world events as an when they occur is known as real time software. Example: Continuous monitoring of earth pressures and radiations, etc.

Business software: Software which helps in information processing to facilitate a business decision or interactive computing fall in this category. Example: MIS systems, sale transaction processing using plastic money, etc.

Engineering and scientific software: Very high specification software with complex algorithms to give fast and detailed solutions for applications like astronomy, automation of industrial activities, etc. These were earlier known as number crunching algorithms but now it also includes software for system simulation, computer aided designs, etc.

Embedded software: Systems with embedded software are a common sight now-a-days. It’s become a part and parcel of our lives. Example: Mobile phones, digital watches, etc.

Personal computer software: This software assists a user in his everyday work like documents preparation, storing data, etc. Any application software that is available on a computer and helps a user in his work falls into this category. Example: Word Processor, multimedia programs, spread sheets, databases, etc.

Web based software: This combines numerous executable codes to give a user unlimited access to world wide information. Example: Internet.

Artificial intelligence software: Expert systems like gaming software are an example of this category.