A software is a means of communication between the computer system and computer users. It is the operating system and applications that are used in computers. Basically, it is the collection of computer programs, documentation and procedures performing several tasks on a computer system. Thus, it is considered to be the heart of computer systems.
Generally, computer software consists of a machine language consisting of groups of binary values, specifying the processor instructions. The instructions change the state of computer hardware in a sequence that is predetermined. In conclusion, a computer system is a language in which a computer speaks.
There are 3 types of computer software. They are:
- System Software
- Application Software
- Programming Software
1. System Software
It is a collection of operating systems, servers, device drivers, utilities and windows systems which helps in running the computer hardware and the computer system. It is designed to provide a platform to run application software and operate the computer hardware.
This software helps an application programmer to view away memory, hardware and other internal complexities of a computer. Some of its common types are:
i) Operating system
From performing basic tasks to running important programs, the operating system is the most important program to run a computer. It is the 1st program that loads into memory when the computer is turned on. Without the operating system, no other programs such as spreadsheet
software, word processing software, etc. can be run. So, in a sense, this system brings the computer to life.
When given a command, the operating system issues the instructions to the ‘brain’ i.e. the CPU or microprocessor. While working on the application software, such as Microsoft Word, your given commands are sent through the operating system to the CPU.
Some of its examples are Windows2000, Windows95/98, DOS, UNIX, Mac OS, etc. Below are some of its functions.
- Provide security and backup.
- Booting computers.
- Controlling peripheral devices such as a keyboard, disk drives, printers, etc.
- Provide interface between software and hardware.
- Scheduling processes.
- Memory management.
- Keeping track of files and directories on the disk.
- Recognize input from the keyboard.
- Send output to the display screen.
ii) Utility Software
Utility software are set of collective programs, available to help you with the day to day chores that are associated with personal computing and to keep your computer system run at peak performance. These are designed to help manage, control and maintain computer resources.
Some examples of utility software are:
Virus scanning Software / Antivirus: It protects computers from computer viruses.
Scandisk: It scans disks for any potential problems on them, such as bad disk areas or any physical error.
Backup software: It helps in making copies of your files and even an entire computer hard drive for backup and restoration.
Debuggers: These are used mainly to solve programming errors. ∙
Disk Defragmenter software: It assists you in reorganizing those disk drives which have been scattered across several hard disk locations while files are saved, deleted and resaved again. ∙
File managers: They provide you a convenient method to perform routine data management, management tasks and e-mail recovery.
iii) Language processor
It is a special kind of computer software which translates the programs written in one language into another language. It is compulsory for both low and high-level language. The types of language translators are:
2) Application Software
Application software is used to solve application type of problems. Business software, educational software and databases are some forms of application software. This software enables the users to accomplish certain specific tasks and utilizes the capacities of a computer directly to a dedicated task. It can manipulate numbers, texts and graphics. It can also focus on a certain single task like work processing, spreadsheet or playing of audio and video files. Its types are:
i) Package software:
Package software is for general purposes. Designed by software companies, it is mainly to generalize the tasks. Some common package software are:
Word Processing Software: This software enables the users in creating and editing documents. MS-Word, Notepad, Word pad and some other text editors are some most popular examples of Word Processing Software.
Database Software: It organizes the data and enables the users to achieve database operations. It also allows the users to store and retrieve data from databases. MS Access, Oracle, etc. are its examples.
Spreadsheet Software: By displaying multiple cells that make up a grid, this software simulates paper worksheets and allows the users to perform calculations. Its examples are Apple Numbers, Excel, Lotus 1-2-3, etc.
Multimedia Software: This software allows the users to create and play audio and video media. Audio converters, burners, players, video encoders and decoders are some forms of it. Real Player and Media Player are examples of this software.
Presentation Software: This software is best used to display information in the form of a slide show. It includes 3 functions.
- Editing, allowing insertion and formatting of text.
- A functionality of executing the slide shows.
- Methods to include graphics in the text.
Microsoft Power Point is its best example.
ii) Tailored software:
Tailored Software is also called small type of software. Tailored software is for specific purposes. Written in high-level languages such as C, JAVA, C++, COBOL (Common Business Oriented language), etc. these types of
software are developed for a specific task. Banking software, hotel reservation software, hospital software, billing software, etc. are its examples.
3. Programming Software
It includes tools in the form of programs or applications that software developers take in use to create, debug, maintain and support other programs and applications. Compiler, debugger, interpreter, linker and text editor are the parts programming software.
They convert a high level language program into a low-level language program.
They convert an assembly language program into low-level language programs.
It processes high-level language line by line and simultaneously produces low-level programs.
Most low-level languages allow the developer to develop a large program containing multiple modules. Linker arranges the object code of all the modules that have been generated by the language translator into a single program.
It is a software that is used to detect the errors and bugs in programs. It locates the position of errors in the program codes.
6. Text editor
It is a program that allows the user to work with texts in a computer system. It is used for documentation purpose and enables us to edit information present in an existing document or file.
Example: C, C++, C#, BASIC, Java, Python, etc.