Computer software, or just software is a general term used to describe the role that computer programs, procedures and documentation play in a computer system.
The term includes:
- Application software, such as word processors which perform productive tasks for users.
- Firmware, which is software programmed resident to electrically programmable memory devices on board mainboards or other types of integrated hardware carriers.
- Middleware, which controls and co-ordinates distributed systems.
- System software such as operating systems, which interface with hardware to provide the necessary services for application software.
- Software testing is a domain dependent of development and programming. Software testing consists of various methods to test and declare a software product fit before it can be launched for use by either an individual or a group.
- Testware, which is an umbrella term or container term for all utilities and application software that serve in combination for testing a software package but not necessarily may optionally contribute to operational purposes. As such, testware is not a standing configuration but merely a working environment for application software or subsets thereof.
Software includes things such as websites, programs or video games, that are coded by programming languages like C or C++.
Software is sometimes used in a broader context to mean anything which is not hardware but which is used with hardware, such as film, tapes and records.