Software is defined as the code that controls the hardware of a computer system. Without software the hardware cannot work, but equally without hardware, the software has nothing to run on – this created a symbiotic relationship between the two.
We can divide the different types of software into two main types: Application Software and System Software.
Application software helps the user to perform a task which makes them more productive. To decide whether our software is application software, a useful test is to consider whether the task could be performed away from the computer (or offline).
A word processor is an example of system software. It allows us to write, and edit printed documents such as letters – if we considered how this task can be performed away from our computer system, we could simply write the letter using pen and paper.
The word processor helps us to perform this task more efficiently by allowing us to edit and change the format of the letter even after it has been written and printed for the first time.
Another example of application software is an IDE. This is a more advanced type of application software as it allows us to write develop and test program code (or source code syntax). It is difficult to imagine how this task might be performed away from our computer, however many years ago source code was written manually before being entered into a computer system.
System software on the other hand, is purely there to help us to run and maintain the computer system itself. If we were not using a computer, we wouldn’t require the system software.
The most basic example of a piece of system software is an operating system – the operating system not only maintains the hardware and software, but also provides a platform upon which to run all of our other software.
Other examples of system software can be defined as utility software. This particular type of system software is used for maintaining and protecting our computer systems . For example, anti-virus software is a type of utility software that is added to our computer system to protect it from particular types of malicious attacks. If we were not using a computer system, we would not need anti-virus.
This is a useful test to identify whether something is system software: if it is needed to protect or maintain the actual system we are using and we would not need it if we were working away from the computer, then it is system software.