Computer Software
Computer Software
Computer cannot do anything on its own. It is the user who instructs computer; what to do, how to do
and when to do. In order to perform any task, you have to give a set of instructions in a particular
sequence to the computer. These sets of instructions are called Programs. Software refers to a set of
programs that makes the hardware perform a particular set of tasks in particular order. Software can be
classified mainly into following categories and sub-categories as shown below
Software
System Software
When you switch on the computer the programs stored in ROM are executed which activates different
units of your computer and makes it ready for you to work on it. This set of programs can be called
system software.
System softwares are sets of programs, responsible for running the computer, controlling various
operations of computer systems and management of computer resources. Operating System (OS) falls
under this category.
An operating system is system software that provides an interface for a user to communicate with the
computer, manages hardware devices (disk drives, keyboard, monitor, etc), manages and maintains disk
file systems and supports application programs. Some popular Operating systems are UNIX, Windows
and Linux.
Functions of an Operating System: The basic functions of an operating system include a user interface,
resource management, task management, file management, and utilities and other functions.
- Booting the computer: This is the process of starting or restarting the computer. A cold boot is
when you turn on the computer that has been turned off completely.
- The User Interface. The user interface is the part of the operating system that allows you to
communicate with it so you can load programs, access files, and accomplish other tasks. Three main
types of user interfaces are the command-driven, menu-driven, and graphical user interfaces. The
trend in user interfaces for operating systems and other software is moving away from the entry of
brief end user commands, or even the selection of choices from menus of options. Instead, the
trend is toward an easy-to-use graphical user interface (GUI) that uses icons, bars, buttons, boxes,
and other images. GUIs rely on pointing devices like the electronic mouse or trackball to make
selections that help you get things done.
- Resource Management An operating system uses a variety of resource management programs to
manage the hardware and networking resources of a computer system, including its CPU, memory,
secondary storage devices, telecommunications processors, and input/output peripherals. For
1
example, memory management programs keep track of where data and programs are stored. They
may also subdivide memory into a number of sections and swap parts of programs and data
between memory and magnetic disks or other secondary storage devices. This can provide a
computer system with a virtual memory capability that is significantly larger than the real memory
capacity of its primary storage unit. So, a computer with a virtual memory capability can process
larger programs and greater amounts of data than the capacity of its memory circuits would
normally allow.
- File Management - Operating system contains file management programs that control the creation,
deletion, and access of files of data and programs. File management also involves keeping track of
the physical location of files on magnetic disks and other secondary storage devices. So operating
systems maintain directories of information about the location and characteristics of files stored on
a computer system’s secondary storage devices.
- Task Management The task management programs of an operating system manage the
accomplishment of the computing tasks of end users. They give each task a slice of a CPU’s time and
interrupt the CPU operations to substitute other tasks. Task management may involve a
multitasking capability where several computing tasks can occur at the same time. Multitasking
may take the form of multiprogramming, where the CPU can process the tasks of several programs
at the same time, or time-sharing, where the computing tasks of several users can be processed at
the same time. The efficiency of multitasking operations depends on the processing power of a CPU
and the virtual memory and multi-tasking capabilities of the operating system it uses.
Although operating system provides all the features users need to use and maintain their systems,
inevitably, they still do not meet everyone’s expectations. This has led to another type of system
software called “Utilities ". These are programs that bridge the gap between the functionality of an OS
and the needs of users. They Performs a variety of tasks that maintain or enhance the computers
Operating system. Each type has a specific job to do. Below are some descriptions of utilities.
- Anti-virus applications protect your computer from the damage that can be caused by viruses
and similar programs
- Compression utilities make files smaller for storage (or sending over the Internet) and then
return them to normal size.
- Data recovery utilities attempt to restore data and files that have been damaged or accidentally
deleted.
- Firewalls prevent outsiders from accessing your computer over a network such as the Internet.
Application Software
Application software is a set of programs, which are written to perform specific tasks, for example: An
application package for managing library known as library information system is used to manage
information of library such as: keeping book details, account holder details, book issue details, book
return details etc. Another application package for managing student details is called student’s
information system, manages student’s roll no, name, parents name, address, class, section , processing
of examination results etc. Application software can be broadly classified into two types:
a) Generalized packages
b) Customized packages
Generalized Packages
These are user friendly softwares written to cater to user’s very general needs such as preparing
documents, drawing pictures, database to manage data/information, preparing presentations, play
games etc.
It is a group of programs that provide general purpose tools to solve specific problems. Some of the
generalized packages are listed below:
2
- Word Processing Software (for preparing documents) e.g. Word Perfect, MS-Word, OpenOffice.org
Writer
- Spreadsheets (Data Analysis) e.g. Lotus Smart suites, MS- Excel, OpenOffice.org Calc, Apple Numbers
- Presentations e.g. Presentation Graphics, MS-PowerPoint, OpenOffice.org Impress
- Database Management System e.g. MS-Access, OpenOffice.org Base, MS-SQL Server , ORACLE
- Graphics Tools e.g. Paint shop pro, Adobe Photoshop
NB: Nowadays most of the generalized package application software is being sold as a complete
software suite (known as Application packages suite) such as Microsoft office – which includes ms word,
ms excel (spreadsheet), ms access, ms power point etc. These suites offer more software products
packaged together at a much lower price than buying the packages separately. The following are
advantages of using application packages:
- Handling of voluminous work – Tasks that are voluminous can easily be handled by these
applications with a lot of precision.
- Accuracy and Precision – Data that has to be validated must always meet the validation criteria. This
enforces permanent correctness of data being processed.
- Repetitiveness – Neither the package nor the hardware will be bored or tired of doing the same task
always. The same tasks will always be repeated with the same precision again and again.
- Faster Computations – a solution to a complex problem can be developed and implemented by an
application package. There will be no need to spend time thinking of how the problem will be
solved.
- Speed on Performance – Application packages enhances the computation speed provided by the
hardware.
- Sharing of data – Application packages facilitate sharing of data in applications that are set up to
cater for shared computing.
Disadvantages of using application packages
- They might not fit well into the organizations processing tanks since they are intended to meet a
variety of user’s needs.
- The user may not be free to correct any routines of the package; because there is always a
maintenance guarantee and/or the developer’s copyright (user doesn’t own the program only buys
the right to use)
Customized Packages
These are the applications that are customized (or developed) to meet the specific requirements of an
organization/institution. For Example: Student information details, Payroll packages, inventory control
etc. These packages are developed using high-level computer language.
Programming languages
Languages are a means of communication. Normally people interact with each other through a
language. On the same pattern, communication with computers is carried out through a language. This
language is understood both by user and the machine. Just as every language like English, Hindi has its
grammatical rules; every computer language is bound by rules known as SYNTAX of that language. The
user is bound by that syntax while communicating with the computer system.
Computer languages are broadly classified as:
1. Low Level Language: The term low level means closeness to the way in which machine understand.
The low level languages are:
a. Machine Language: This is the language (in the form of 0’s and 1’s, called binary numbers)
understood directly by the computer. It is machine dependent. It is difficult to learn and even more
difficult to write programs.
3
b. Assembly Language: This is the language where the machine codes comprising of 0’s and 1’s are
substituted by symbolic codes (called mnemonics) to improve their understanding. It is the first step to
improve programming structure.
Assembly language programming is simpler and less time consuming than machine level programming,
it is easier to locate and correct errors in assembly language than in machine language programs. It is
also machine dependent. Programmers must have knowledge of the machine on which the program will
run.
2. High Level Language
You know that low level language requires extensive knowledge of the hardware since it is machine
dependent. To overcome the limitation, high level language has been evolved which uses normal English
like, easy to understand statements to solve any problem. Higher level languages are computer
independent and programming becomes quite easy and simple.
Various high level languages are given below:
BASIC (Beginners All Purpose Symbolic Instruction Code): It is widely used, easy to learn general
purpose language. Mainly used in microcomputers in earlier days.
COBOL (Common Business Oriented language): A standardized language used for commercial
applications.
FORTRAN (Formula Translation): Developed for solving mathematical and scientific problems.
One of the most popular languages among scientific community.
C: Structured Programming Language used for all purpose such as scientific application,
commercial application, developing games etc.
C++ : Popular object oriented programming language, used for general purpose.
Fig: Compiler
The software (set of programs) that reads a program written in assembly language and translates it into
an equivalent program in machine language is called as Assembler.
Fig.: Assembler
4
SOFTWARE EVALUATION CRITERIA
The type of business operations or transaction and the Information contents are important factors in
determining the nature of software application. Factors influencing choice of software includes:
- User requirements: the selected software or package should fit user requirement as closely as
possible
- Processing time: these involves the response time e.g. if the response time is slow the user might
consider the software or package as unsuccessful
- Documentation: the software should be accompanied by manual, which is easy to understand by
non-technical person. The manual should not contain technical jargon.
- User friendliness: the package should be easier to use with clear on screen prompts, menu driven
and extensive on screen help facility
- Controls: the software should have in-built controls which may include password options, validation
checks, audit trails or trace facilities etc
- Up-to-date: the software should be up-to-date e.g. should have changes or corrections in line with
business procedures
- Modification: one should consider whether the user could freely change the software without
violating copyright.
- Success in the market: one should consider how many users are using the software and how long it
has been in the market
- Compatibility of the software: how the software integrates with other software particularly the
operating system and the user programs
- Portability: one should consider how the software runs on the user computer and whether there
will be need for the user to upgrade his hardware
- Cost: the user company should consider its financial position to establish whether it can afford the
software required for efficient operations rather than the least cost package software available.
Computer Viruses
A set of computer instructions deliberately created that propagates and does unwanted things.
Characteristics of Computer Viruses:
- Cannot exist in a viable form, apart from another (usually legitimate) program.
- Propagates when the host program is executed.
- Has an incubation period, during which no damage is done.
- After incubation period, begins to manifest its behavior.
Sources of computer viruses
- Contact with contaminated system e.g. using contaminated diskettes
- Pirated software
- Infected proprietary software
- Fake games - some virus programs pose as games software. Many users like playing games and
virus spreads fast by use of games.
- Updates of software distributed via networks - provide widespread and anonymous propagation
Virus symptoms (manifestations)
- Unfamiliar graphics or quizzical messages appearing on the VDU
- Programs taking longer than usual to load
- Disks accesses seeming excessive for simple tasks
- Unusual error messages occurring more frequently
- Less memory available than usual
5
- Programs or files mysteriously disappearing
- Executable files changing size for no obvious reason
- Changes to disk volumes identifications
Virus protection
- Make backup copies of your data on a frequent basis
- Protect data on your floppy disks by using write protect tabs
- Turn off your computer when you are not using it
- Avoid downloading computer games from electronic bulletin boards
- Limit your use of “shareware”
- Do not loan out your utility or other software programs
- Run virus protection programs frequently
- Never open an email attachment if you have even the slightest doubt about its origin