Software is a general term used to describe a collection of computer programs, procedures and
documentation that perform some task on 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 independent of development and programming. It 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. Many tests on functionality, performance and appearance are
conducted by modern testers with various tools such as QTP, Load runner, Black box testing etc
to edit a checklist of requirements against the developed code. ISTQB is a certification that is in
demand for engineers who want to pursue a career in testing.
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 websites, programs, video games, etc. that are coded by programming languages
like C, C++, etc.
"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.
Computer software is often regarded as anything but hardware, meaning that the "hard" are the parts
that are tangible while the "soft" part is the intangible objects inside the computer. Software
encompasses an extremely wide array of products and technologies developed using different
techniques like programming languages, scripting languages or even microcode or a FPGA state. The
types of software include web pages developed by technologies like HTML, PHP, Perl, JSP, ASP.NET,
XML, and desktop applications like Microsoft Word, OpenOffice developed by technologies like C, C++,
Java, C#, etc. Software usually runs on an underlying software operating systems such as the Microsoft
Windows or Linux. Software also includes video games and the logic systems of modern consumer
devices such as automobiles, televisions, toasters, etc.
 Relationship to computer hardware
Computer software is so called to distinguish it from computer hardware, which encompasses the
physical interconnections and devices required to store and execute (or run) the software. At the
lowest level, software consists of a machine language specific to an individual processor. A machine
language consists of groups of binary values signifying processor instructions which change the state
of the computer from its preceding state. Software is an ordered sequence of instructions for changing
the state of the computer hardware in a particular sequence. It is usually written in high-level
programming languages that are easier and more efficient for humans to use (closer to natural
language) than machine language. High-level languages are compiled or interpreted into machine
language object code. Software may also be written in an assembly language, essentially, a mnemonic
representation of a machine language using a natural language alphabet. Assembly language must be
assembled into object code via an assembler.
The term "software" was first used in this sense by John W. Tukey in 1958. In computer science and
software engineering, computer software is all computer programs. The theory that is the basis for
most modern software was first proposed by Alan Turing in his 1935 essay Computable numbers with
an application to the Entscheidungsproblem.
Practical computer systems divide software systems into three major classes: system software,
programming software and application software, although the distinction is arbitrary, and often
 System software
System software helps run the computer hardware and computer system. It includes:
(these things need not be distinct)
The purpose of systems software is to unburden the applications programmer from the details of the
particular computer complex being used, including such accessory devices as communications,
printers, readers, displays, keyboards, etc. And also to partition the computer's resources such as
memory and processor time in a safe and stable manner.
 Programming software
Programming software usually provides tools to assist a programmer in writing computer programs,
and software using different programming languages in a more convenient way. The tools include:
An Integrated development environment (IDE) is a single application that attempts to manage all these
 Application software
Application software allows end users to accomplish one or more specific (not directly computer
development related) tasks. Typical applications include:
telecommunications, (ie the internet and everything that flows on it)
Computer instructions or data. Anything that can be stored electronically is software. The storage
devices and display devices are hardware.
The terms software and hardware are used as both nouns and adjectives. For example, you can say:
"The problem lies in the software," meaning that there is a problem with the program or data, not
with the computer itself. You can also say: "It's a software problem."
The distinction between software and hardware is sometimes confusing because they are so integrally
linked. Clearly, when you purchase a program, you are buying software. But to buy the software, you
need to buy the disk (hardware) on which the software is recorded.
Software is often divided into two categories:
systems software : Includes the operating system and all the utilities that enable the computer
applications software : Includes programs that do real work for users. For example, word
processors, spreadsheets, and database management systems fall under the category of
Software is a general term for the various kinds of programs used to operate computers and related
devices. (The term hardware describes the physical aspects of computers and related devices.)
Software can be thought of as the variable part of a computer and hardware the invariable part.
Software is often divided into application software (programs that do work users are directly
interested in) and system software (which includes operating systems and any program that supports
application software). The term middleware is sometimes used to describe programming that
mediates between application and system software or between two different kinds of application
software (for example, sending a remote work request from an application in a computer that has one
kind of operating system to an application in a computer with a different operating system).
An additional and difficult-to-classify category of software is the utility, which is a small useful program
with limited capability. Some utilities come with operating systems. Like applications, utilities tend to
be separately installable and capable of being used independently from the rest of the operating
applets are small applications that sometimes come with the operating system as "accessories." They
can also be created independently using the Java or other programming languages.
Software can be purchased or acquired as shareware (usually intended for sale after a trial period),
liteware (shareware with some capabilities disabled), freeware (free software but with copyright
restrictions), public domain software (free with no restrictions), and open source (software where the
source code is furnished and users agree not to limit the distribution of improvements).
Software is often packaged on CD-ROMs and diskettes. Today, much purchased software, shareware,
and freeware is downloaded over the Internet. A new trend is software that is made available for use
at another site known as an application service provider.
Some general kinds of application software include:
Productivity software, which includes word processors, spreadsheets, and tools for use by most
Graphics software for graphic designers
Specialized scientific applications
vertical market or industry-specific software (for example, for banking, insurance, retail, and
firmware or microcode is programming that is loaded into a special area on a microprocessor or read-
only memory on a one-time or infrequent basis so that thereafter it seems to be part of the hardware.
Computer software is a general term that describes computer programs. Related terms such as
software programs, applications, scripts, and instruction sets all fall under the category of computer
software. Therefore, installing new programs or applications on your computer is synonymous with
installing new software on your computer.
Software can be difficult to describe because it is "virtual," or not physical like computer hardware.
Instead, software consists of lines of code written by computer programmers that have been compiled
into a computer program. Software programs are stored as binary data that is copied to a computer's
hard drive, when it is installed. Since software is virtual and does not take up any physical space, it is
much easier (and often cheaper) to upgrade than computer hardware.
While at its most basic level, software consists of binary data, CD-ROMs, DVDs, and other types of
media that are used to distribute software can also be called software. Therefore, when you buy a
software program, it often comes on a disc, which is a physical means of storing the software.
Software is a generic term for organized collections of computer data and instructions, often broken
into two major categories: system software that provides the basic non-task-specific functions of the
computer, and application software which is used by users to accomplish specific tasks.
System software is responsible for controlling, integrating, and managing the individual hardware
components of a computer system so that other software and the users of the system see it as a
functional unit without having to be concerned with the low-level details such as transferring data
from memory to disk, or rendering text onto a display. Generally, system software consists of an
operating system and some fundamental utilities such as disk formatters, file managers, display
managers, text editors, user authentication (login) and management tools, and networking and device
Application software, on the other hand, is used to accomplish specific tasks other than just running
the computer system. Application software may consist of a single program, such as an image viewer;
a small collection of programs (often called a software package) that work closely together to
accomplish a task, such as a spreadsheet or text processing system; a larger collection (often called a
software suite) of related but independent programs and packages that have a common user interface
or shared data format, such as Microsoft Office, which consists of closely integrated word processor,
spreadsheet, database, etc.; or a software system, such as a database management system, which is a
collection of fundamental programs that may provide some service to a variety of other independent
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 science) written programs or procedures or rules and associated documentation pertaining
to the operation of a computer system and that are stored in read/write memory
Software is the stuff that turns a computer into a tool. Without software, a computer is just a big,
expensive, useless, chunk of plastic, steel and silicon. Software is what makes a computer behave the
way you need. For example, wordprocessing software makes the computer behave like a typewriter.
Database software makes it behave like a card file. Software is just a set of instructions that tells the
computer how to behave; i.e., what to show you on the screen, what kinds of input to take from you
and what kind of output to produce.
Some software is built into the chips in the computer. This software, called the Bios, tells the computer
how to start itself up when you turn the power on. Usually this software tells the computer how to
access its hard disk and system programs.
Once a computer is started, it relies on other installed software to perform its tasks. Most software is
purchased from commercial software development companies like Microsoft or Wordperfect. Some
authors develop software and give it away free; i.e., freeware. Some software is distributed freely and
you're expected to pay for it if you continue using it after a short trial period; i.e. shareware. No
matter how software is distributed, it usually comes with a "license agreement." This agreement
informs you of your legal rights and responsibilities regarding the use of the software. Copying
software is often prohibited by the license agreement. U.S. Federal law imposes a $250,000 fine for
each incident of illegal copying of software.
System software refers to the files and programs that make up your computer's operating system.
System files include libraries of functions, system services, drivers for printers and other hardware,
system preferences, and other configuration files. The programs that are part of the system software
include assemblers, compilers, file management tools, system utilites, and debuggers.
The system software is installed on your computer when you install your operating system. You can
update the software by running programs such as "Windows Update" for Windows or "Software
Update" for Mac OS X. Unlike application programs, however, system software is not meant to be run
by the end user. For example, while you might use your Web browser every day, you probably don't
have much use for an assembler program (unless, of course, you are a computer programmer).
Since system software runs at the most basic level of your computer, it is called "low-level" software. It
generates the user interface and allows the operating system to interact with the hardware. Fortunately,
you don't have to worry about what the system software is doing since it just runs in the background.
It's nice to think you are working at a "high-level" anyway.
Application software is any tool that functions and is operated by means of a computer, with the
purpose of supporting or improving the software user's work. In other words, it is the subclass of
computer software that employs the capabilities of a computer directly and thoroughly to a task that the
user wishes to perform. This should be contrasted with system software (infrastructure) or middleware
(computer services/ processes integrators), 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
bulb (an application) to an electric power generation plant (a system). The power plant merely
generates electricity, not itself of any real use until harnessed to an application like the electric light
that performs a service that benefits the user.
Typical examples of 'software applications' are word processors, spreadsheets, media players and
Multiple applications bundled together as a package are sometimes referred to as an application suite.
Microsoft Office, OpenOffice.org, and iWork, 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 may be embedded in a word processor document
even though it has been created in a 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.
In some types of embedded systems, the application software and the operating system software may
be indistinguishable to the user, as in the case of software used to control a VCR, DVD player or
It is important to note that this definition may exclude some applications that may exist on some
computers in large organizations. For an alternative definition of an application: see Application