Chapter 11
Chapter 11
Computer Sofware
This chapter introduces the reader to the essentials of computer software. Computer software
refers to computer program(s)that causes a computer to carry out particular operations. The
chapter starts with the definition of software, followed by its relationship with the hardware. The
discussion continues with the types of software, namely, system software and application
software, their roles along with the hardware in building up a fully functional computer system.
In the later part of the chapter, piracy and techniques of its prevention are explained. The
chapter concludes by providing an overview of software terminology.
CHAPTER OBJECTIVES
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 organized collection of computer data and instructions. It is
responsible for controlling, integrating, and managing the hardware components of a computer
and to accomplish specific tasks. In other words, a 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 organizing 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.
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
(see Figure 11.1). 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 get the
work done. 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 complementary to
each other.
An analogy can be taken of a video game system, which comprises 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 categorized as system software and application software (see Figure 11.2).
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 to a 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.
Figure 11.2 Software Categories
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 with some software stored in
either a CD or a DVD, 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 as it usually interacts 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 (see Figure 11.3).
Figure 11.3 System Software, Application Software, and Hardware
In simple terms, system software makes the computer functional. It provides basic functionality
like file management, visual display, keyboard input, etc., 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: It is the first layer of software loaded into the 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
organizes and controls the hardware. Examples of operating systems are Windows XP, UNIX,
and Linux. The basic functions of an operating system are (see Figure 11.4 also):
Figure 11.4 Operating System
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 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
specialized instructions that the printer understands. Note that each device has its own set of
specialized 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 (see Figure 11.5).
Figure 11.5 Device Drivers
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
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.
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 organize directories, copy, move,
and remove files. For example, the Windows Explorer in Microsoft Windows
operating system does all the said activities in a user-friendly interface.
Backup: Sometimes, it may happen that some data files are corrupted or accidentally
deleted. In such a case, data backups become very useful. A backup system utility is
essential for those organizations that 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 data recovery tools, an experienced technician can successfully recover 80
to even 100 per cent of lost data.
Virus Protection: Anti-virus programs are essential system utilities for a computer
system functioning in a network. They provide security to the system from viruses that
can damage the computer system. Viruses are small programs written with malicious
intent, which copy themselves to hard disk from the 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. To protect system from viruses, one
needs anti-virus software. Once installed on the system, anti-virus software scans the
hard disk for any kind of virus and, if found, removes them. In addition, it
continuously monitors the computer and prevents viruses from getting inside.
Examples of some anti-virus programs are Norton anti-virus and McAfee anti-virus.
Disk Management: Disk management programs include various 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 recognizes 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 disk.
Firewalls: Firewalls form a barrier between networked computers within an
organization and those outside the organization. They are commonly used to protect
information such as e-mail and data files within a physical building or an organization.
Essentially, a firewall is designed to protect a computer from unauthorized access,
especially via network.
Disk Cleanup: To keep a computer running smoothly, its regular maintenance is vital.
Therefore, one should use the disk cleanup utility, which easily determines which files
on the 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 the system performance.
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 the application software. Application software may consist of a single
program, such as Microsoft's Notepad (for writing and editing simple text), or a collection of
programs, 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.
Word Processors: A word processor is a software used to compose, format, edit, and print
electronic documents (see Figure 11.8). 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 the page. A variety of different
typefaces are 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 colour. Nowadays, virtually all personal computers are equipped with a word-
processing program, which has functions 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 the results from
the data placed in other cells or a series of cells. A simple example might be a column of
numbers totalled in a single cell containing an equation relating to that column (see Figure 11.9).
Spreadsheet software is used predominantly for accounting and other numerically based tasks,
because financial and mathematical data and analysis are often managed in a tabular style, with
columns of financial figures being manipulated and then influencing other data computations.
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 graphic 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 (see Figure 11.10).
Figure 11.10 Image Editing Software
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, assemble type and graphics, and then using a laser printer
or image setter to output the assembled pages onto a paper, film, or printing plate. Desktop
publishing software is 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 (see Figure 11.13).
Figure 11.13 Desktop Publishing Software
Once software (system or application) is carefully selected and purchased, it should be installed
on the computer to start working with it. During the installation-process, files are copied to their
appropriate folders and icons are added to the system menus and/or desktop. Software has
recently become much more user friendly in this area. Most software’s handle the installation
chores without a lot of input from the user.
THINGS TO REMEMBER
Zip Files
The zip files format was originally created by Phil Katz in January 1989. A zip file is a collection
of files compressed into a single unit (file) to take up less space and reduce download times.
Before using a zip file, the user needs to unzip (uncompress) it. To zip or unzip a file, utility such
as WINZIP, PKZIP, and NETZIP is used. In some cases, a self-extracting (exe) zip file can be
created that does not require any utility to open and uncompress the file.
The process of copying software from CD-ROM (or floppy disks) to the hard disk and
configuring it to work with the computer hardware is known as software installation (see Figure
11.14). Software vendors provide special programs, known as installer, to carry out the
installation process. An installer decompresses the required files within it and places them in
proper folders. It is the process of arranging a program in a computer system such that the
program works as desired by the user. The first step in installation is to locate the actual
installation file. Installation files usually have the extension .EXE or .ZIP. If the installation is
of .EXE extension (usually setup.exe or install.exe), simply double-click it and follow the
instructions that appear on the screen. On the other hand, if the file has a .ZIP extension, the user
needs to unzip the compressed files and then install the software.
Usually software needs timely maintenance and upgrades to cater to the growing needs of the
users and hardware changes. Sometimes the older version of the software (or parts of it) is
replaced by their newer versions. This process of adopting a newer version of existing software
with an enhanced feature is known as software upgrade. Generally, a new release (or version) of
software contains new functionalities and upgrades are numbered. For example, various
upgrades of Microsoft Internet Explorer had the versions IE4.0, IE5.0, IE5.5, and IE6.0.
Apart from software upgrade, the existing software also undergoes the process of
update. Software update is a new release (or version) of software that is generally understood to
be an error-correction release and does not contain new functionality. A software update usually
adds relatively minor new features to a product or corrects errors (bugs)found since the program
has released. Another important term related to software upgrade and update is software patch. A
software patch is a collection of one or more files that correct flaws in the performance,
reliability, or security of a specific software product. Each patch remedies a specific set of
reported errors in the version of the product to which the patch applies. Every patch is identified
by a unique number, such as “patch567.” The number is used in manufacturing to identify the
errors that the patch corrects (see Figure 11.15).
Figure 11.15 Software Upgrade, Update, and Patch
Sometimes software is installed just for testing or perhaps it has been superseded by a better
software. Hence, unwanted software should be uninstalled, that is, cleanly removed. Uninstall
program completely removes all files of that program and all associated files in other directories.
Note that simply deleting the folder in which the software is stored will not remove all the files
related to that software; it needs to be uninstalled to remove all the linked files of the software.
When a program is installed, its files are copied to the system disk, and changes are made to
certain system files and folders to allow the program to work properly. Properly uninstalling a
program means deleting all the files and undoing any changes made to system files.
There are six basic forms of software piracy, and all are harmful for the software publisher as
well as the for the end user.
Softloading: Softloading (also known as softlifting) means sharing a program with someone
who is not authorized by the licence agreement to use it. A common form of softloading involves
purchasing a single licensed copy of software and then loading the software onto several
computers, in violation of licensing terms. For example, sharing software with friends, co-
workers, and others.
Internet Downloading: It is the fastest growing form of piracy. With the growing number of
users online and with the rapidly increasing connection speeds, the exchange of software on the
Internet has attracted an extensive following. Currently, there are hundreds of thousands of
“warez” sites providing unlimited downloads to any user. Often, the software provided through
these warez sites is cracked to eliminate any copy protection schemes.
Renting: It involves someone renting out a copy of software for temporary use, without the
permission of the copyright holder. The practice, similar to that of renting a video of a movie,
violates the licence agreement of software.
Hard Disk Loading: This form of piracy involves installing an unauthorized copy of software
onto a computer being sold to the end user. It is often committed by hardware dealers. This
makes the deal more attractive to the buyer, at virtually no cost to the dealer. Dealer usually does
not provide the buyer with manuals or the original CDs of the software.
Software piracy all over the world has become a major problem. To avoid this, several licence
and copyrights are issued to the software and the users. A copyright is a form of intellectual
property that grants its holder the legal right to restrict the copying of an original, creative
expression for a defined period. Nowadays, some software developers use software copyrights in
order to ensure that the software they develop will remain free, using licences such as
the general public license (GPL). It is a good idea to put the copyright notice on the computer
software both on the packaging and in the program as it serves as a warning to others that the
software is protected by copyright. In addition to the copyright notice, warning against
unauthorized use should also be mentioned. The general rule is that the creator of some work is
the first owner of copyright on it. Here are some guidelines to prevent software piracy:
Always buy software from authorized sellers and when in doubt, contact the software
manufacturer for a list of authorized sellers.
While purchasing software, consumers should make sure that they get authenticated
software licences. In case of hardware purchase, do not allow dealers to install
unlicensed software onto the computer.
Unless authorized in the licensing agreement, employees of an organization should not
make personal copies of software used in an organization.
One should not make copies of software other than those allowed by the licence
agreement.
Software renting or reselling must not be practised.
The best way to prevent software piracy is to report it to the concerned copyright
holder.
Piracy affects us all. It is not just the IT industry that loses out to software piracy; the user is
often left in a vulnerable position. They will not be entitled to technical support or have access to
information regarding upgrades. Illegal products may be incomplete, virus contaminated, or their
functionality may be impaired. Hence, if software consumers have any information regarding the
abuse or illegal sale of software, they should contact the software copyright holder.
11.6 SOFTWARE TERMINOLOGIES
Some of the common terms used in the field of software are given below:
Public Domain Software: Public ___domain software refers to any program that is not
copyrighted. This software is free and can be used without restrictions, that is, the user can copy,
distribute, and even modify the software without obtaining permissions from the software
developer. Usually, public ___domain software is offered through websites, electronic bulletin
boards, user groups, and other sources.
Freeware: The term freeware is commonly used for copyrighted software that is given free by
its owner. Though it is available for free, the owner retains the copyright, which means that a
user does not have the right to modify anything in the software. Thus, freeware software permits
redistribution but not modification. Freeware usually carries a licence that permits redistribution
but may have other restrictions such as limitations on its commercial use. Freeware is an
umbrella term that covers:
Donationware: The authors of donationware ask that anyone using their software
make a donation to the authors or to some third party such as a charity.
Postcardware: It is freeware (no-charge software that is freely shared) that requires
only that the user send the software provider a postcard as a form of payment.
Abandonware: It is commercial software that has not been sold for a long time or
whose copyright holder is defunct. The licences of most of such software forbid
redistribution or require payment; hence distributing it violates the owner's copyright
(even if the owner does not or cannot enforce it).
Adware: It is distributed as freeware, but it requires the user to view advertisements to
use the software. Note that adware is sometimes called spyware.
Shareware: Shareware is the software that is distributed free on a trial basis. It allows people
to redistribute copies for a limited period. Anyone who continues to use a copy is required to pay
a licence fee. Therefore, the free use of the software is usually limited to a certain period. It is
distributed without payment ahead of time as is common for proprietary software. Typically
shareware software is obtained free of charge by downloading, thus allowing one to try out the
program ahead of time. It is accompanied by a request for payment, and often payment is
required as per the terms of the licence past a set period. WinZip software is an example of
shareware, which is distributed with a 30-day trial period.
Firmware: Firmware is a program or data that has been written onto read-only memory
(ROM). For example, the BIOS (which is installed inside a computer on a chip) checks different
parts of the system before loading the operating system into memory. Being firmware, it ensures
that it will always be available and will not be damaged in the case of a power failure. ROMs,
PROMs, and EPROMs that have data or programs recorded on them are firmware (see Figure
11.16).
LET US SUMMARIZE
1. Software is a generic term for organizing collection of computer data and instructions.
Computer software can be divided into two major categories: system
software and application software.
2. 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 system, device
driver, language translators, and system utility.
3. Application software is used to accomplish specific tasks rather than just managing a
computer system. Word processors, spreadsheets, image editors, database management
systems, presentation software, and desktop publishing applications are some of the
examples of application software.
4. Software installation is the process of copying software from CD-ROM (or floppy
disks) to the hard disk and configuring it to work with the computer hardware.
5. Software upgrade is the process of adopting a newer version of existing software with
an enhanced feature.
6. Software update is a new release (or version) of software that is generally understood
to be an error-correction release and does not contain new functionality. It usually adds
relatively minor new features to a product or corrects errors (bugs) found since the
program has released.
7. A software patch is a collection of one or more files that correct flaws in the
performance, reliability, or security of a specific software product.
8. Software piracy is an unauthorized copying of an organization's internally developed
software or the illegal duplication of commercially available software. It includes
illegal activities such as softloading, software counterfeiting, Internet downloading,
renting, hard disk loading, and licence misuse.
9. Public ___domain software refers to any program that is not copyrighted. This software is
free and can be used without restrictions, that is, the user can copy, distribute, and even
modify the software without obtaining permissions from the software developer.
10. The term freeware is commonly used for copyrighted software that is given free by its
owner. It permits redistribution but not modification and usually carries a licence that
permits redistribution but may have other restrictions, such as limitations on its
commercial use.
11. Shareware is the software that is distributed free on a trial basis. It allows people to
redistribute copies for a certain period.
12. Commercial software represents the majority of software purchased from software
publishers. This software comes pre-packaged, is available in software stores, and can
be obtained through the Internet.
13. Open-source software is created by generous programmers and released into the public
___domain for public use. The underlying programming code is available to the users so
that they may read it, make changes to it, and build new versions of the software
incorporating their changes for software.
14. Proprietary software describes a technology or product that is owned exclusively by a
single company that carefully guards knowledge about the technology or the product's
internal working.
15. Firmware is a program or data that has been written onto ROM.