Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. Data software exists solely for its eventual use by other program software.
The term software was first used in this sense by John W. Tukey in 1957; colloquially, the term is often used to mean application software. In computer science and software engineering, computer software is all information processed by computer system, programs and data.
Computer software is often contrasted with computer hardware, which is the physical substrate on which software exists.
For other uses of the word software see Software (disambiguation).
System and application software
- System software helps run the computer hardware and computer system. It includes operating systems, device drivers, programming tools, servers, windowing systems, utilities and more.
- Application software allows a user to accomplish one or more specific tasks. Typical applications include office suites, business software, educational software, databases and computer games. Most of application software has GUIs.
Users see three layers of software
Users often see things differently. People who use modern general purpose computers (as opposed to embedded systems) usuallly see three layers of software performing a variety of tasks: platform, application, and user software.
- Platform software
- Platform includes the basic input-output system (often described as firmware rather than software), device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer, and users may not realize that it exists or that they have a choice to use different platform software.
- Application software
- Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are almost always independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
- User-written software
- User software tailors systems to meet the users specific needs. User 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.
Software in operation
Computer software has to be "loaded" into the computer's storage (or memory).
Once the software is loaded, the computer is able to operate. Computers operate by executing the computer program. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the flow of instructions.
Software is created with programming languages and related utilities, which may come in several of the above forms: single programs like script interpreters, packages containing a compiler, linker, and other tools; and large suites (often called Integrated Development Environments) that include editors, debuggers, and other tools for multiple languages.
- Computer programming
- Software engineering
- Software licenses
- Origins of computer terms
af:Sagteware bg:Софтуер ca:Programari cs:Software da:Program de:Software et:Tarkvara es:Programa de ordenador o computadora (software) eo:Programaro fr:Logiciel ko:소프트웨어 hi:सोफ्टवेर hr:Softver it:Software ku:Nivîsbarî lt:Programinė įranga hu:Szoftver nl:Software ja:ソフトウェア no:Dataprogram nds:Software pl:Oprogramowanie pt:Software ro:Software ru:Программное обеспечение simple:Software sv:Programvara tt:Sanaq programı th:ซอฟต์แวร์ zh-cn:计算机软件 zh-tw:電腦軟體