In other words software is a set of programs, procedures, algorithms and its documentation. 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. The term was coined to contrast to the old term hardware (meaning physical devices). In contrast to hardware, software is intangible, meaning it "cannot be touched".
Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.
Examples of computer software include:-
- Application software includes end-user applications of computers such as word processors or video games, and ERP software for groups of users.
- Middleware controls and co-ordinates distributed systems.
- Programming languages define the syntax and semantics of computer programs. For example, many mature banking applications were written in the COBOL language, originally invented in 1959. Newer applications are often written in more modern programming languages.
- System software includes operating systems, which govern computing resources. Today large applications running on remote machines such as Websites are considered to be system software, because the end-user interface is generally through a graphical user interface, such as a web browser.
- Testware is software for testing hardware or a software package.
Types of Computer Software
Practical Computer Systems divide Software Systems into three major classes: System Software, Programming Software and Application Software.
System software provides the basic functions for computer usage and helps run the computer hardware and system. It includes a combination of the following:
- Device drivers
- Operating systems
- Window systems
System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner.
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:
- Text editors
An Integrated development environment (IDE) is a single application that attempts to manage all these functions..
Application software is developed to aid in any task that benefits from computation. It is a broad category, and encompasses software of many kinds, including the internet browser being used to display this page. This category includes:
- Business software
- Computer-aided design
- Decision making software
- Educational software
- Image editing
- Industrial automation
- Mathematical software
- Medical software
- Molecular modeling software
- Quantum chemistry and solid state physics software
- Simulation software
- Telecommunications (i.e., the Internet and everything that flows on it)
- Video editing software
- Video games
- Word processing