Types: See Also
Types: See Also
On virtually all computer platforms, software can be grouped into a few broad categories.
series on
E-commerce
Digital distribution
E-books
Software
Streaming media
Retail services
Banking
DVD-by-mail
Flower delivery
Food ordering
Grocery
Pharmacy
Travel
Marketplace services
Advertising
Auctions
Comparison shopping
Auction software
Social commerce
Trading communities
Wallet
Mobile commerce
Payment
Ticketing
Customer service
Call centre
Help desk
Live support software
E-procurement
Purchase-to-pay
v
t
e
Application software
which is software that uses the computer system to perform special functions or provide
entertainment functions beyond the basic operation of the computer itself. There are
many different types of application software, because the range of tasks that can be
performed with a modern computer is so large—see list of software.
System software
which is software for managing computer hardware behaviour, as to provide basic
functionalities that are required by users, or for other software to run properly, if at all.
System software is also designed for providing a platform for running application
software,[11] and it includes the following:
o Operating systems
which are essential collections of software that manage resources and provide
common services for other software that runs "on top" of them. Supervisory
programs, boot loaders, shells and window systems are core parts of operating
systems. In practice, an operating system comes bundled with additional software
(including application software) so that a user can potentially do some work with
a computer that only has one operating system.
o Device drivers
which operate or control a particular type of device that is attached to a computer.
Each device needs at least one corresponding device driver; because a computer
typically has at minimum at least one input device and at least one output device,
a computer typically needs more than one device driver.
o Utilities
which are computer programs designed to assist users in the maintenance and care
of their computers.
Malicious software or malware
which is software that is developed to harm and disrupt computers. As such, malware is
undesirable. Malware is closely associated with computer-related crimes, though some
malicious programs may have been designed as practical jokes.
Desktop applications such as web browsers and Microsoft Office, as well as smartphone
and tablet applications (called "apps"). (There is a push in some parts of the software
industry to merge desktop applications with mobile apps, to some extent. Windows 8, and
later Ubuntu Touch, tried to allow the same style of application user interface to be used
on desktops, laptops and mobiles.)
JavaScript scripts are pieces of software traditionally embedded in web pages that are run
directly inside the web browser when a web page is loaded without the need for a web
browser plugin. Software written in other programming languages can also be run within
the web browser if the software is either translated into JavaScript, or if a web browser
plugin that supports that language is installed; the most common example of the latter is
ActionScript scripts, which are supported by the Adobe Flash plugin.
Server software, including:
o Web applications, which usually run on the web server and output dynamically
generated web pages to web browsers, using e.g. PHP, Java, ASP.NET, or even
JavaScript that runs on the server. In modern times these commonly include some
JavaScript to be run in the web browser as well, in which case they typically run
partly on the server, partly in the web browser.
Plugins and extensions are software that extends or modifies the functionality of another
piece of software, and require that software be used in order to function;
Embedded software resides as firmware within embedded systems, devices dedicated to a
single use or a few uses such as cars and televisions (although some embedded devices
such as wireless chipsets can themselves be part of an ordinary, non-embedded computer
system such as a PC or smartphone).[12] In the embedded system context there is
sometimes no clear distinction between the system software and the application software.
However, some embedded systems run embedded operating systems, and these systems
do retain the distinction between system software and application software (although
typically there will only be one, fixed application which is always run).
Microcode is a special, relatively obscure type of embedded software which tells the
processor itself how to execute machine code, so it is actually a lower level than machine
code. It is typically proprietary to the processor manufacturer, and any necessary
correctional microcode software updates are supplied by them to users (which is much
cheaper than shipping replacement processor hardware). Thus an ordinary programmer
would not expect to ever have to deal with it.
Programming tools
Programming tools are also software in the form of programs or applications that software
developers (also known as programmers, coders, hackers or software engineers) use to create,
debug, maintain (i.e. improve or fix), or otherwise support software.
Software is written in one or more programming languages; there are many programming
languages in existence, and each has at least one implementation, each of which consists of its
own set of programming tools. These tools may be relatively self-contained programs such as
compilers, debuggers, interpreters, linkers, and text editors, that can be combined together to
accomplish a task; or they may form an integrated development environment (IDE), which
combines much or all of the functionality of such self-contained tools. IDEs may do this by
either invoking the relevant individual tools or by re-implementing their functionality in a new
way. An IDE can make it easier to do specific tasks, such as searching in files in a particular
project. Many programming language implementations provide the option of using both
individual tools or an IDE.