‘Software’ refers to electronically stored data or computer instructions that is generally split into two categories: Systems software and application development software.
Systems software consists of all of the instructions necessary for a computer to run hardware and application programs. The operating system, for instance, is system software that coordinates the basic functions of a computer such as scheduling tasks and memory allocation. System software also device drivers that manage the flow of data between the operating system and attached devices such as the keyboard, known as the basic input/output system, ‘BIOS’ or device firmware. Each system software will function to mediate the transfer of data and coordinate processes to enable a computer to work cohesively. Another example is utility software which is used to analyse the computer in order to maintain the computers function. An example of this is virus protection programs. However, utility software can be on the borderline between system software and application software, because virus protection software can sometimes be downloaded as application software or may be a pre-existing component of a systems software.
Applications software or end-user-programs is a software program that performs a particular activity. For instance, a word processor or file compression program is considered application software. A piece of application software can be considered as horizontal or vertical depending on how generalised the purpose is. Whereas horizontal application software is designed for more general purposes and may be quite widespread, vertical application software is specifically designed for a particular business or process that is not widespread. For example, horizontal application software includes spreadsheet programs such as excel whereas vertical application software includes point-of-sale software which encodes for the scanning of barcodes, removal from stock, payment via card etc.