What is Computer Software? Explain various Types of Software?

https://www.computersprofessor.com/2017/11/what-is-computer-software-explain.html
Computer Software
A computer cannot do anything on its own. It must be instructed to do a job desired by us. Hence, it is necessary to specify a sequence of instructions a computer must perform to solve a problem. Such a sequence of instructions written in a language understood by a computer is called a computer program. A program controls a computer processing activity, and the computer performs precisely what the program wants it to do. When a computer is using a program to perform a task, we say, it is running or executing that program.
The term software refers to a set of computer programs, procedures. and associated documents (flowcharts, manuals, etc.) describing the programs, and how they are to be used A software package is a group of programs that solve a specific problem or perform a specific type of job. For example, a word-processing package may contain programs for text editing, text formatting, drawing graphics, spelling checking, etc. Hence, a multipurpose computer system, like a personal computer in your home, has several software packages, one each for every type of job it can perform.
Types of Software
Software can be broadly classified in two categories:
- System Software
- Application Software
- System Software
System software provides basic functionality to the computer. System software is a set of one or more programs designed to control the operation and extend the processing capability of a computer system] In general, a computer’s system software performs one or more of the following functions:
- Supports development of other application software.
- Supports execution of other application software.
- Monitors effective use of various hardware resources such as CPU, memory, peripherals, etc.
- Communicates with and controls operation of peripheral devices such as printer, disk, tape, etc.
Hence, system software makes the operation of a computer system more effective and efficient.
Some commonly known types of system software:
i. Operating System
ii. Programming Language Translators
iii.Communications Software
iv. Utility Program
i.Operating Systems
Operating system software takes care of effective and efficient utilization of all hardware and software components of a computer system. Different kinds of application software use specific hardware resources of a computer like CPU,I/O devices and memory, as needed by the application software. OS controls and coordinates the use of hardware among the different application software and the users. The key functions of OS are-
- It provides an environment in which users and application software can do work.
- It manages different resources of the computer like CPU time, memory space, file manager.
- It controls the execution of different programs to prevent occurrence of error.
- It provides a convenient interface to the user in the form of commands and graphical interface, which facilitates the use of computer.
Some available operating systems are Microsoft Disk System (MS-DOS), Windows 7, Windows XP, Linux, UNIX and Mac OS X Snow Leopard.
ii. Programming Language Translators
Programming language translators transform the instructions prepared by programmers in language into a form that can be interpreted and executed by a computer system. There are three type of translator programs : Assembler, compiler and Interpreters.
iii. Communication Software
In a network environment, communication software enables transfer of data and programs from one computer system to another.
iv. Utility Programs
Utility program assist users in system maintenance tasks, such as disk formatting, data compression, data backup, and scanning a system for computer viruses. Some frequently used utility programs are:
a) Disk Formatting Utility. To use anew disk (hard disk, floppy disk, or optical disk) on a computer system, we need to format it according to the requirements of the computer’s operating system. Disk formatting utility enables users to perform this task with great ease.
b) Data Compression Utility. This utility uses a compression algorithm to transform files into a fraction of their normal size, so that they occupy less storage space on disk, or can be transferred across a network in less time. It has an associated decompression algorithm used to convert a compressed file into its normal form and size when accessed by a user. It helps in significant saving of disk space _ it can effectively double the capacity of a disk.
c) Data Backup Utility. Data stored in a computer system can be damaged Or lost in several ways such as disk crash, virus, hardware malfunction, accidental deletion of files, or natural disasters like fire, earthquake, etc. Hence, we must always keep extra copies (called backup data) of important data. A backup utility enables creation of copy of data on some storage media, such as floppy disk, CD, pen drive, or magnetic tape. The storage media with backup data is often stored off-line away from computer system to prevent loss of critical data due to natural disasters. When some data stored on- line is damaged or lost, it can be restored from backup media. It is not necessary that backup media is always kept off-line. In today’s era of computer networks, some backup devices are kept on-line at a place away from main computer system and data backup on this device is done automatically by the computer system.
d) Antivirus Utility. A computer virus is a piece of code attached to a legitimate program that when executed, infects other programs in a system by replicating and attaching itself to them. In addition to this, replicating effect, a virus normally does some other damage to the system, such as corrupting/erasing files. Therefore, due to its spreading nature, a virus can cause severe damage to a system.
A typical virus works as follows. An intruder writes a new program that performs some interesting or useful function (such as some game or utility) and attaches a virus to it in such a way that when the program is executed, the, viral code is also executed. The intruder then sends this infected program by mail to other system users, or offers it free or for a nominal charge on floppy disks/CDs. Now, if anyone uses the infected program, its viral code is executed. While executing, the viral code selects an executable file on hard disk randomly and checks if it is already infected. Most viruses include a string of characters that acts as a marker showing that a program has been infected. If the selected file is already infected, the virus selects another executable file. When an uninfected program is found, the virus infects it by attaching a copy of itself to the end of that program and replacing the first instruction of the program with a jump to viral code. When execution of viral code finishes, it executes the previously bypassed instruction (the first instruction of original program) and then jumps to the second instruction so that the program now performs its intended function. Notice that a virus spreads because every time an infected program is executed, it tries to infect more programs. Also, notice that a virus does not infect an already infected file in order to prevent an object file from growing ever longer. This allows a virus to infect many programs without increasing disk space usage noticeably.
When a computer system suffers from virus infection, it has to be cured. Antivirus utilities are often used to cure a computer from virus infection. These utilities first identify the type of virus that has infected the computer by matching its marker against markers of well-known viruses. Once the type is known, original programs are restored from their infected versions by applying a detailed knowledge of the infection method used by the virus. For example, in viruses that modify jump instructions at the beginning of host program, recovering can be done simply by restoring the original jump to the start of the host program code. However, notice that these utilities can cure known viruses only. They cannot cure a newly encountered type of virus. A good antivirus utility can cure several hundred types of viruses normally and its power can be improved regularly by frequently updating it as new viruses are discovered. New generation anti-virus applications employ heuristic analyzer to monitor virus like activity and processing to tag or block memory containing seemingly dangerous instructions. This mechanism creates a working solution to tackle new viruses.
2. Application Software
Application software is a set of one or more programs designed to solve a specific problem, or do a specific task. For example, payroll processing software, examination results processing software, railway/airline reservation software, computer games software are all application software. Similarly, a program written by a scientist to solve a research problem is also application software. The programs included in an application software package are called application programs. The programmers who prepare’ application software are referred to as application programmers. There are literally millions of application software available for a wide range of applications. They range from simple applications such as word processing, inventory management, preparation of tax returns, banking, hospital administration, insurance, publishing, to complex scientific and engineering applications such as weather forecasting, space shuttle launching, oil and natural gas exploration, design of complex structures like aircrafts, ships, bridges, sky-rise buildings, etc. With so many applications available, it is not possible to categorize them all and to cover them here.
Some commonly known application software are:
i. Word-Processing Software
Word-processing software enables us to make use of a computer for creating, editing, viewing, formatting, storing, retrieving, and printing documents (written material, such as letters, reports, books, etc.)
ii. Spreadsheet Software
Spreadsheet software is a numeric-data-analysis tool that allows us to create a kind of computerized ledger. A manual ledger is a book having rows and columns that accountants use for keeping a record of financial transactions and for preparing financial statements.
iii. Database software
A database is a collection of related data stored and treated as a unit for information retrieval purposes. A database software is a set of programs that enable us to create a database, maintain it (add, delete, and update its records), organize its data in desired fashion (for example, sort its records alphabetically name-wise), and selectively retrieve useful information from it. For example, queries such as get the telephone number of the person named Kashyap Rana from the address database, or get the names of all currently enrolled students whose birthdays fall today from the student database can be handled easily.
iv. Graphics Software/Multimedia and Animation Software
Graphics software enables us to use a computer system for creating, editing, viewing, storing, retrieving, and printing of designs, drawings, pictures, graphs, etc. For last few years, graphics, multimedia and animation software are becoming very popular for high quality presentation of business and other applications. CorelDraw, Adobe Photoshop and Auto CAD MAP are some of the commonly used graphic software. Multimedia, a latest computer technology displays information using a combination of full-motion video, text, graphics, animation and sound. A wide range of multimedia and animation software are available in the market. Macromedia Director, 3D Studio Max, Animator Pro and Animator Studio are some of the commonly used multimedia/animation software.
v. Personal Assistance Software. Personal assistance software allows us to use personal computers for creating, editing, viewing, storing, retrieving and printing of designs, drawings, pictures, graphs etc.
vi. Education Software
Education software allows a computer to be used as a teaching and learning tool. A few examples of such software include those used for teaching mathematics, grammar, language, or any other subject.
vii. Entertainment Software
Entertainment software allows a computer to be used as an entertainment tool. Computer video games belong to this category of software.