A-level Computing/AQA/Paper 2/Fundamentals of computer systems/Classification of software

You have probably used a lot of software over the years, here we are going to study the different classifications (types) of software that are out there. The two main classifications of software that all programs fit under are:
 * System software
 * Application software

Without software, most hardware would sit there doing nothing or perform specific tasks. To make most hardware run we need to use software, and your task here is to select the correct type of software for each job.

System software
Modern computers are complex machines involving many different parts. To keep it running well you will need system software. System software will handle the smooth running of all the components of the computer as well as providing general functionality for other programs to use, tools to speed up the computer, tools to develop new software and programs to keep you safe from attacks. There are several different types of system software that we will look at in more detail very shortly:


 * Operating Systems are a collection of programs that make the computer hardware conveniently available to the user and also hide the complexities of the computer's operation. The Operating System (such as Windows 7 or Linux) interprets commands issued by application software (e.g. word processor and spreadsheets). The Operating System is also an interface between the application software and computer. Without the operating system, the application programs would be unable to communicate with the computer.


 * Utility programs are small, powerful programs with a limited capability, they are usually operated by the user to maintain a smooth running of the computer system. Various examples include file management, diagnosing problems and finding out information about the computer etc. Notable examples of utility programs include copy, paste, delete, file searching, disk defragmenter, disk cleanup. However, there are also other types that can be separately installable from the Operating System.


 * Library programs are a compiled collection of subroutines (e.g. libraries make many functions and procedures available when you write a program)


 * Translator software (Assembler, Compiler, Interpreter)
 * 1)  Assembler translates assembly language programs into machine code (A binary code that a machine can understand).
 * 2)  Compiler translates high level language code into object code (which is the machine language of the target machine).
 * 3)  Interpreter analyses and executes a high-level language program a line at a time. Execution will be slower than for the equivalent compiled code as the source code is analyzed line by line.

Application software
Application software is designed for people like me and you to perform tasks that we consider useful. This might be the ability of a scientist to work out statistical information using a set of results, or someone who wants to play the latest computer game. There are several categories of Application software that we'll look into shortly:


 * General purpose application software.
 * Special purpose application software.
 * Bespoke application software

Place the following software into its correct category:
 * Computer Game - This is built for a human user, therefore it is application software
 * Virus Scanner - This is built to make the computer run better, therefore it is system software