INTRODUCTION TO COMPUTER SOFTWARE
A computer system consists of hardware, the electronic devices that are capable of computing and manipulating information, and software (set of instructions) that carries out predefined tasks to complete a given job. As we know, a computer cannot think or perform on its own. It performs operations like addition, subtraction, multiplication, and division only when the user instructs it to do so. The user issues instructions and the CPU acts in accordance with the instructions. The sets of instructions, which control the sequence of operations, are known as programs, and collectively programs are called software. It is an intangible commodity, that is, the part of a computer system that users cannot touch.
We can equate hardware and software with human body and human intelligence, respectively. All human physical actions such as walking and eating are based on the thoughts and feelings, which is raised by the brain. If the brain does not raise thoughts and feelings, we do not perform any physical activity. Similarly, the actions and functioning of every hardware equipment are driven by software. The combination of physical equipment (hardware) and logical instructions (software) gives modern computing systems their power and versatility.
Software is a generic term for organised collection of computer data and instructions. It is responsible for controlling, integrating, and managing the hardware components of a computer as well as to accomplish the specific tasks. In other words, software tells the computer what to do and how to do it. For example, software instructs the hardware what to display on the user's screen, what kinds of input to take from the user, and what kinds of output to generate. Thus, software communicates with the hardware by organising the control sequences and the hardware carries out the instructions defined by the software.
As discussed earlier, a computer needs to be instructed to perform any task. These instructions are given in the form of computer programs, which are written in computer programming languages. A program controls the activity of the processor. The moment the hardware (processor, memory, etc.) acts as per the instructions of a program, the program is said to be in running or executing state.
A set of programs, which are specifically written to provide the user a precise functionality like solving a specific problem is termed as a software package. For example, word processing software package provides functionality to the computer so that it can be used to create text documents like letters and mailing lists. Similarly, an image processing software package assists a user in drawing and manipulating graphics.
3.2.1 RELATIONSHIP BETWEEN SOFTWARE AND HARDWARE
Software refers to the computer programs that are loaded into a computer system, and hardware refers to all the visible devices, which are assembled together to build a computer system. Both software and hardware go hand in hand; you cannot have one without the other. Even though hardware is the physical part of a computer, it is nothing unless it has software to control it. In a way, hardware is like a car without a driver; one needs both to make something happen. Software is a set of instructions that tells the hardware what to do and how to perform the requested actions. Thus, hardware and software share a special relationship. If hardware is the “heart” of a computer system, software is its “soul”. Both are complimentary to each other.
An analogy can be taken of a video game system, which comprises of a console, games' cassettes, joystick, and display screen as the hardware. The games in the cassettes can be considered as the software. To play a particular game, the cassette of that game has to be loaded on the console and then the game can be played. Similarly, to get a particular job done by a computer, the relevant software is loaded in the storage device, which makes a computer perform the desired functions. Therefore, it is evident that the software is vital. Another inference from this analogy is that different software can be used on the same hardware to perform different jobs, just as different games can be played on the same console by using different cassettes.
Software can be categorised as system software and application software. System software is a generic term for referring to any computer program whose purpose is to help the user to run the computer system, whereas application software employs the capabilities of a computer directly to a task that the user wishes to perform. As an analogy, we can equate an electric bulb to an application and the electric power generation plant with system. The power plant merely generates electricity. It is not really of any use until harnessed to an application like the electric bulb, which performs a service that the user desires.
3.3.1 SYSTEM SOFTWARE
System software consists of several programs, which are directly responsible for controlling, integrating, and managing the individual hardware components of a computer system. You must have noticed that a new computer system is always accompanied by some software, either stored in a floppy or CD, which is supplied by the manufacturer. This software manages and supports the computer system and its information processing activities.
System software is more transparent and less noticed by the users, they usually interact with the hardware or the applications. This software provides a programming environment in which programmers can create applications to accommodate their needs. This environment provides functions that are not available at the hardware level and performs the tasks related to the execution of an application program. Hence, system software acts as an interface between the hardware of the computer and the software applications.
In simple terms, system software makes the computer functional. They provide basic functionality like file management, visual display, and keyboard input, and are used by application software to accomplish these functions. Some examples of system software are operating systems, device drivers, language translators, and system utilities.
- Operating System: Operating system is the first layer of software loaded into computer memory when it starts up. As the first software layer, all other software that gets loaded after it depends on it for various common core services. These common core services include disk access, memory management, task scheduling, and user interfacing. In addition, the operating system ensures that different programs executing at the same time do not interfere with each other. It provides a software platform on top of which other programs can run. In simple words, the operating system organises and controls the hardware. Examples of operating systems are Windows XP, UNIX, and Linux. The basic functions of an operating system are:
- Process Management: It handles the creation, deletion, suspension, resumption, and synchronisation of processes.
- Memory Management: It handles allocation and de-allocation of memory space as required by various programs.
- File Management: It is responsible for creation and deletion of files and directories. It also organises, stores, retrieves, names, and protects all the files.
- Device Management: It manages all the devices of the computer system such as printers and modems. If any device fails, it detects the device failure and notifies the same to the user.
- Security Management: It protects system resources and information against destruction and unauthorised use.
- User Interface: It provides the interface between the user and the hardware.
- Device Drivers: Device drivers are system programs, which are responsible for proper functioning of devices. Every device, whether it is a printer, monitor, mouse or keyboard, has a driver program associated with it for its proper functioning. Whenever a new device is added to the computer system, a new device driver must be installed before the device is used. In modern operating systems, most hardware drivers such as the keyboard driver, come with the operating system. A device driver acts like a translator between the device and program (typically, an operating system) that uses the device. For example, when a user prints a document, the processor issues a set of generic commands to the printer driver, and the driver translates those commands into the specialised instructions that the printer understands. Note that each device has its own set of specialised commands that only its driver understands. A device driver is not an independent program; it assists and is assisted by the operating system for the proper functioning of the device.
- Language Translators: Computers only understand a language consisting of 0s and 1s called machine language. To ease the burden of programming entirely in 0s and 1s, special programming languages called high-level programming languages were developed that resemble natural languages like English. Therefore, a tool was required which could translate a program written in a programming language to machine language. Along with every programming language developed, a language translator was also developed, which accepts the programs written in a programming language and executes them by transforming them into a form suitable for execution. To be precise, they convert programming statements into the 0s and 1s that the computer is able to process.
Depending on the programming language used, language translators are divided into three major categories: compiler, interpreter, and assembler. All these are listed in Table 2.1.
|Compiler||The programs written in any high-level programming language (C or Pascal) are converted into machine language using a compiler. As a system program, the compiler translates source code (user written program) into object code (binary form).|
|Interpreter||An interpreter analyses and executes the source code in line-by-line manner, without looking at the entire program. In other words, an interpreter translates a statement in a program and executes the statement immediately, before translating the next source language statement. The advantage of interpreters is that they can execute a program spontaneously. Compilers require some time before an executable program is formed because it looks at the whole source code. However, programs produced by compilers run much faster than the same programs executed by an interpreter.|
|Assembler||Compared to all the types of programming languages, assembly language is closest to the machine code. Assembly language is fundamentally a symbolic representation of machine code. The assembly language program must be translated into machine code by a separate program called an assembler. The assembler program recognises the character strings that make up the symbolic names of the various machine operations, and substitutes the required machine code for each instruction. In short, an assembler converts the assembly codes into machine codes, making the assembly program ready for execution.|
Typical software generally comprises millions of lines of programming statements or code. The code is divided into logical groups and stored in different independent modules so that the debugging and maintenance of the code becomes easier. Before execution, different object codes resulting from the independent modules have to be linked together to create an executable program. A linker is a system program that links together several objects modules and libraries to form a single, coherent, program (executable program). The part of the operating system that brings an executable file residing on disk into memory and executes it is known as loader. Being responsible for tasks like loading, linking, and relocation, loader performs the function of a linked program and then immediately schedules the executable for execution without creating an executable file as an output.
- System Utility: System utility programs perform day-to-day tasks related to the maintenance of the computer system. They are used to support, enhance, and secure existing programs and data in the computer system. They are generally small programs, having specific tasks to perform. Some utility programs are usually provided along with the operating system, some are free while some need to be purchased from the third party commercial vendors. Most common functions of system utilities include:
- File Management: These utilities make it easier to manage data files. Many programs are written to help users to find the files, create and organise directories, copy, move, and remove files. For example, the Windows Explorer in Microsoft Windows operating system does all the said activities in user-friendly interface.
- Backup: It may happen that sometime data files are corrupted, or accidentally deleted. In such a case, data backups become very useful. A backup system utility is essential for those organisations, which want to keep their data intact.
- Data Recovery: It is the process of retrieving deleted or inaccessible data from failed electronic storage media such as computer hard disk drives, removable media, optical devices, and tape cartridges. The data might become inaccessible due to a software problem, computer virus, mechanical or electrical malfunction or a deliberate human act. Using these tools, experienced technicians can successfully recover 80 to even 100 percent of lost data.
- Virus Protection: Anti-virus programs are essential system utilities for a computer system functioning in a network. They provide the security to the system from viruses that can damage the computer system. Viruses are small programs written with malicious intent, which copy themselves to the hard disk from Internet or other infected systems. Viruses keep on spreading to other computers through the network or exchange of infected storage devices such as floppies and CDs. Once installed on the system, anti-virus software scans the hard disk for any kind of virus and, if found, remove them. In addition, they monitor the clean (virus free) computer for any activity of viruses. Examples of some of the anti-virus programs are Norton anti-virus and McAfee anti-virus that protect the system from viruses.
- Disk Management: Disk management programs include various system software like disk defragmenter, data compressor, and disk formatting tools. De-fragmentation implies putting fragments of files in a sequential order onto the disk which reduces the time to access the file. It recognises the data stored on the disk so that it can be arranged more effectively. Data compression programs squeeze out the slack space generated by the formatting schemes. Formatting tools format the hard drive in tracks and sectors for orderly storing of data in the drive.
- Firewall: Firewall forms a barrier between networked computers within an organisation and those outside the organisation. It is commonly used to protect information such as e-mail and data files within a physical building or organisation. Essentially, a firewall is designed to protect a computer from unauthorised access, especially via network.
- Disk Cleanup: To keep a computer running smoothly, regular maintenance is vital. Therefore, one should use the disk cleanup utility, which easily determines which files on hard drive are no longer needed, and delete those files. In addition to freeing up potentially significant hard disk space; using disk cleanup on a regular basis can significantly improve system performance.
3.3.2 APPLICATION SOFTWARE
The most often seen software by a user is the application software. It is used to accomplish specific tasks rather than just managing a computer system. For a user, the computer system has no specific use without application software. Application software may consist of a single program, such as Microsoft's Notepad (for writing and editing simple text). It may also consist of a collection of programs, often called a software package, which work together to accomplish a task, such as database management software. Application software may also include a larger collection of related but independent programs and packages (a software suite), which have a common user interface or shared data format, such as Microsoft Office suite.
Application software is dependent on system software. A system software (like operating system) acts as an interface between the user and the computer hardware, while application software performs specific tasks. Applications are software that perform tasks for the user besides helping the computer operate, which is the task of system software. Application software are controlled by system software, which manages hardware devices and performs background tasks for them. The distinction between the two is important. Without system software, the computer will not run, and without application software, the computer, no matter how powerful, will not be helpful in meeting user requirements. Think of it this way—applications apply the computer's thinking power to business tasks such as tracking the general ledger or billing your customers. Figure 3.7 illustrates that application layer executes on the system software layer, which lies on the hardware layer.
Application software ranges from games, calculators, and word processors (document creating programs), to programs that “paint” images on screen (image editors). Applications represent real world tasks. They can be easily divided by looking at exactly what function they serve. Some of the most commonly used application software are discussed below.
- Word Processors: A word processor is software used to compose, format, edit, and print electronic documents. Word processing is one of the earliest applications for office productivity and the personal computer. It involves not only typing, but also checking the spelling and grammar of the text and arranging it correctly on a page. A variety of different typefaces is available for a variety of effects. It is possible to include pictures, graphs, charts, and many other things within the text of the document. It also allows for changes in margins, fonts, and colours. Nowadays, virtually all personal computers are equipped with a word processing program, which has the same function as a typewriter for writing letters, reports or other documents, and printing. Examples of some well-known word processors are Microsoft Word and WordPerfect.
- Spreadsheets: One of the first commercial uses of computers was in processing payroll and other financial records. So the programs were designed to generate reports in the standard “spreadsheet” format used by bookkeepers and accountants. A spreadsheet application is a rectangular grid, which allows text, numbers, and complex functions to be entered into a matrix of thousands of individual cells. The spreadsheet provides sheets containing cells each of which may contain text and/or numbers. Cells may also contain equations that calculate results from data placed in other cells or series of cells. A simple example might be a column of numbers to talled in a single cell containing an equation relating to that column. Microsoft Excel and Lotus 1-2-3 are examples of spreadsheet applications.
- Image Editors: Image editor programs are designed specifically for capturing, creating, editing, and manipulating images. These graphics programs provide a variety of special features for creating and altering images. In addition to offering a host of filters and image transformation algorithms, some image editors also enable the user to create and superimpose layers. Most graphic programs have the ability to import and export one or more graphic file formats. These computer programs enable the user to adjust an image to improve its appearance. With image editing software, one can darken or lighten an image, rotate it, adjust its contrast, crop out extraneous detail, and much more. Examples of these programs are Adobe Photoshop, Adobe Illustrator, and CorelDRAW.
- Database Management Systems: Database management software is a collection of computer programs that allow storage, modification, and extraction of information from a database in an efficient manner. It supports the structuring of the database in a standard format and provides tools for data input, verification, storage, retrieval, query, and manipulation. When such software is used, information systems can be changed much more easily as the organisation's information requirements change. New categories of data can be added to the database without disrupting the existing system. It also controls the security and integrity of the database from unauthorised access. FoxPro and Oracle are database management systems.
- Presentation Applications: A presentation is a means of assessment, which requires presentation providers to present their work orally in the presence of an audience. It combines both visual and verbal elements. Presentation software allows the user to create presentations by producing slides or handouts for presentation of projects. Essentially, such computer programs allow users to create a variety of visually appealing electronic slides for presentations. Microsoft PowerPoint is one of the most famous presentation applications.
- Desktop Publishing Software: The term desktop publishing is usually used to describe the creation of printed documents using a desktop computer. It is a technique of using a personal computer to design images and pages, and assemble type and graphics, then using a laser printer or image-setter to output the assembled pages onto paper, film, or printing plate. These software are used for creating magazines, books, newsletters, and so on. Such software assist in creating sophisticated documents including complicated page designs, detailed illustrations, and camera-ready typefaces. Quark Express and Adobe PageMaker are desktop publishing software.
- A computer system consists of hardware, the electronic devices that are capable of computing and manipulating information, and software (set of instructions) that carries out predefined tasks to complete a given job.
- Instructions are given in the form of computer programs, which are written in computer programming languages.
- A set of programs, which are specifically written to provide the user a precise functionality like solving a specific problem is termed as a software package.
- Software refers to the computer programs that are loaded into a computer system, and hardware refers to all the visible devices, which are assembled together to build a computer system.
- Software can be categorised as system software and application software.
- System software consists of several programs, which are directly responsible for controlling, integrating, and managing the individual hardware components of a computer system. Some examples of system software are operating systems, device drivers, language translators, and system utilities.
- Application software is used to accomplish specific tasks rather than just managing a computer system. For a user, the computer system has no specific use without application software. Some of the most commonly used application software are word processors, spreadsheets, image editors, database management systems, presentation applications, and desktop publishing software.
- A system software (like operating system) acts as an interface between the user and the computer hardware, while application software performs specific tasks.
Fill in the Blanks
- Software can be categorie as __________ and __________.
- A __________ acts like a translator between the device and programs that use the device.
- __________ translate a program written in a programming language to machine language.
- __________ refers to all the visible devices.
- A new computer system is always accompanied by some software either stored in a __________ or __________.
- Windows XP, UNIX, and Linux are examples of __________.
- The most often seen software by a user is the __________.
- Anti-virus programs provide security to the system from __________.
- The part of operating system that brings an executable file residing on disk into memory and executes it is known as __________.
- __________ and __________ are database management systems.
Multiple Choice Questions
- Which of the following is system software?
- (a) Microsoft Word
- (b) Adobe Photoshop
- (c) Microsoft PowerPoint
- (d) Windows XP
- __________ analyses and executes each line of source code in line-by-line manner, without looking at the entire program.
- (a) Compiler
- (b) Operating System
- (c) Interpreter
- (d) Device Drivers
- The assembly language program must be translated into machine code by a separate program called __________.
- (a) Assembler
- (b) Interpreter
- (c) Loader
- (d) Compiler
- Which of the following is application software?
- (a) Image Editor
- (b) Database Management System
- (c) Spreadsheets
- (d) All the above
- Which of the following is not system software?
- (a) Operating System
- (b) Language Translator
- (c) Adobe Photoshop
- (d) System Utility
- Which of the following is not a function of system utility?
- (a) Process Management
- (b) Backup
- (c) Disk Cleanup
- (d) None of the above
- Choose the odd one out.
- (a) Device Driver
- (b) Language Translator
- (c) Spreadsheets
- (d) System Utility
- Which of the following performs file management?
- (a) Assembler
- (b) Operating System
- (c) System Utility
- (d) Both (b) and (c)
- Which of the following consists of several programs, which are directly responsible for controlling, integrating, and managing individual hardware components?
- (a) Application Software
- (b) System Software
- (c) Database Management System
- (d) All the above
- Which of the following is developed by Microsoft?
- (a) Oracle
- (b) WordPerfect
- (c) CorelDRAW
- (d) PageMaker
State True or False
- Operating system is application software.
- A device driver allows another program to interact with a hardware device.
- Data recovery is the process of retrieving deleted or inaccessible data from failed electronic storage media.
- WordPerfect is a well known image editor.
- Computer needs to be instructed to perform every task.
- Software is a set of instructions that tells the hardware what to do but not how to do the requested action.
- System software is more transparent and less noticed by users.
- Application software are dependent on system software.
- A program in assembly language is easily recognisable by hardware without translation because assembly language is too close to machine language which computer understands.
- Anti-virus is designed to protect a computer from unauthorised access via network.
- What do you understand by the term software?
- Discuss the relationship between software and hardware.
- Describe the two categories of software?
- Write short notes on the following.
- (a) Interpreter
- (b) Device driver
- (c) System utility
- (d) Loader
- (e) Spreadsheet
- Define application software. Also, name some most commonly-used application software.
- Discuss the significance of system utility. Also, list their common functions.
- Discuss the basic functions of operating system.
Fill in the Blanks
- System software, application software
- Device driver
- Language translators
- Floppy, CD
- Operating system
- Application software
- FoxPro, Oracle
Multiple Choice Questions
State True or False