Application software is a subclass of computer software that employs the capabilities of a computer directly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities, but typically does not directly apply them in the performance of tasks that benefit the user. In this context the term application refers to both the application software and its implementation.
A simple, if imperfect, analogy in the world of hardware would be the relationship of an electric light—an application—to an electric power generation plant—the system. The power plant merely generates electricity, itself not really of any use until harnessed to an application like the electric light which performs a service that the user desires.
The exact delineation between the operating system and application software is not precise, however, and is occasionally subject to controversy. For example, one of the key questions in the United States v. Microsoft antitrust trial was whether Microsoft's Internet Explorer web browser was part of its Windows operating system or a separable piece of application software. As another example, the GNU/Linux naming controversy is, in part, due to disagreement about the relationship between the Linux kernel and the Linux operating system.
Typical examples of software applications are word processors, spreadsheets, and media players.
Multiple applications bundled together as a package are sometimes referred to as an application suite. Microsoft Office and OpenOffice.org, which bundle together a word processor, a spreadsheet, and several other discrete applications, are typical examples. The separate applications in a suite usually have a user interface that has some commonality making it easier for the user to learn and use each application. And often they may have some capability to interact with each other in ways beneficial to the user. For example, a spreadsheet might be able to be embedded in a word processor document even though it had been created in the separate spreadsheet application.
User-written software tailors systems to meet the user's specific needs. User-written software include spreadsheet templates, word processor macros, scientific simulations, graphics and animation scripts. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is.
System software is a generic term referring to any computer software which manages and controls the hardware so that application software can perform a task. It is an essential part of the computer system. An operating system is an obvious example, while an OpenGL or database library are less obvious examples. System software contrasts with application software, which are programs that help the end-user to perform specific, productive tasks, such as word processing or image manipulation.
If system software is stored on non-volatile storage such as integrated circuits, it is usually termed firmware.