1.0 INTRODUCTION
You all must have come across computers being used at many different places –
post offices, hospitals, book stores, grocery stores, universities, banks, publishing houses, etc. You have also studied about computers and their applications in the
previous block. But, have you ever wondered how the similar looking machines
can behave so differently? What is it that makes them extremely useful machines
for varied and unlimited purposes, unlike any other machine available to us? For
example we can use a crane only to move loads – its usage is quite limited, but a
computer can be used to create a document, do calculations, give presentations,
book movie tickets, play movies, music or games and accomplish much more.
What makes computer the versatile machines that they are?
It is the software that enables a computer to perform all the useful and desired
functions. Different types of software help a computer to be used for multiple and
varied purposes, in totally different areas of work. We will study about the
software aspect of computers in detail in this unit.
1.2 OBJECTIVES
After going through this unit, you will be able to:
- define what is software;
- discuss different aspects of software evolution; and
- differentiate between types of software.
1.2 WHAT IS SOFTWARE ?
A computer system consists of two parts – hardware and software. The first part,
computer hardware, refers to all the visible components of the computer system:
keyboard, monitor, hard disc, printer, scanner, processing unit, memory, electrical
connections, etc. It does all of the physical work a computer is known for. The
second part is a set of simple and step-by-step sequence of instructions that tell
the hardware what to do and how to do it. This organized set of instructions
written in a defined order and to accomplish a specific task is called computer
software or computer program. Hence, a computer software provides
intelligence to the hardware, which otherwise is just a collection of circuits and
pieces of plastic and metal.
A computer programmer writes the software that gives a computer the ability to
solve any business or scientific problem.
You already kn Software Evolution ow that the computer hardware is essentially a piece of complex electronics that understands only 1‘s and 0‘s – electrical ―on‖ or ―off‖ conditions. Hence, the instructions to perform a task must be written in a series of binary 1‘s and 0‘s. But, although this binary format, called the machine code makes perfect sense to a machine, it is incomprehensible to a computer programmer who writes the program. So a programmer codes the program in the English like programming language which is easier to understand. This program is then translated into machine code by another computer program. This translated program, called the software is eventually executed to achieve the desired goal.
You will study about types of software and its evolution in the following sections.
1.3 SOFTWARE EVOLUTION
As you know that in a computer system both hardware and software complement
each other – one is of hardly any use without the other. Hence, since the very
beginning of computer history, software evolution has been closely tied to the
advances made in hardware. As hardware became faster, cheaper and with better
capacity of storage, software became more complex and sophisticated.
Over the decades computers have been used in new areas and to solve new
problems. With changing needs and improved hardware, the software has evolved
in its various aspects. The software architecture, its design paradigms,
programming languages, its usage, costing and licensing have all changed and
evolved over the years.
Software evolution with respect to its architecture, design styles, programming language and licensing will be covered in the following section.
1.3.1 Evolution of Software Architecture
The software architecture has always moved in unison with the hardware
advancement.
1.3.1.1 Mainframe Architecture
Till a few decades back, all computing was controlled through the central
mainframes server. Multiple users could connect to the central host through
unintelligent terminals which captured the keystrokes, sent the information to the
host and displayed the text output. All the processing was done by the
applications residing on the main central server. Only large transaction-oriented
applications were developed during that time. Business tasks such as accounts
receivable, accounts payable, general ledger, credit account management and
payroll that were repetitive and could be run as batch jobs were automated.
In these centralized computing models, the host provided both the data storage
and processing power for the client systems. There was no support for graphical
user interface or access to multiple databases from geographically dispersed sites.
0 Comments