The Computer Software
The Computer Software
Types of Software
User
Application software
System Software
Hardware
1
Relationship between
Hardware, Software and
User of a computer hardware
system
SYSTEM SOFTWARE
4
1. The Operating System
An operating system is an integrating set of
programs that is used to manage the various
resources and overall operations of a computer
system. It is designed to support the activities of
a computer installation. Its prime objective is to
improve the performance, efficiency and
increase the ease with which a system can be
used. Thus like a manager of a company, an
operating system is responsible for the smooth
and efficient operation of the entire computer
system. More over it makes the computer system
user friendly.
6
2. Concurrent Operating System - A concurrent
operating system allows a single CPU to execute
what appears to be more than one program at a
time when in fact only one program is being
executed. The CPU switches its attention
between programs as it receives requests for
processing, executing statements from one
program and then from another. This processing
happens so fast that it appears the programs are
being executed simultaneously.
3. Time-sharing Operating System- A time-
sharing operating system allows multiple users to
access a single computer system. The attention
of the CPU is switched among users on a time
basis controlled by the operating system; it
appears as if each user has uninterrupted access
to the CPU. If the number of users exceeds the
operating system’s capability, noticeable delays
in processing will result.
4. Multiprocessing Operating System- A
multiprocessing operating system allows the
simultaneous execution of programs on a
computer that has several CPUs. Many
computer systems, such as mainframes and
supercomputers have more than one CPU
5. Virtual-storage Operating System- A virtual-
storage operating system allows the use of a
secondary storage device as an extension of
primary storage. Portions of a program are
swapped between the secondary storage device
7
and primary storage as needed; this gives the
illusion of having the maximum amount of
primary storage in the CPU available to each
user. With this type of operating system, the user
need not worry about how much primary storage
is available.
6. Real time Operating system- A real time
operating system allows a computer to control or
monitor tasks performed by other machines and
people by responding to the input data in the
required amount of time. For controlling
processes, immediate response is usually
necessary; for simply monitoring processes,
periodic response is generally adequate.
7. Virtual-machine (VM) Operating System- A
virtual machine (VM) operating system is a very
powerful program that can run several different
operating systems at a time. It allows several
users of a computer system to operate as if each
had the only terminal attached to the computer.
To users it appears as if each one was on a
dedicated system and had sole use of the CPU
and input and output devices. After the VM
operating system is loaded, the user chooses the
operating system that is compartible with the
application he or she plans to run or is familiar
with and wants to develop programs for. Other
operating systems, such as the virtual storage
operating system appear as just another
application program to the VM operating system.
8
The VM operating system gives users flexibility
and allows them to choose an operating system
that best suits the needs of a particular
application.
9
Computers can understand instructions only when
they are written in their own language called
machine language. Therefore, a program written
in any other language should be translated into
machine language. Special programs called
language processors or translators do this job.
The translators accept user written programs, check
each statement and if it is grammatically correct,
produce a corresponding set of machine code
instructions.
The forms of translators are:
Assemblers
Compilers
Interpreters
Assemblers translate instructions written in
assembly language into machine language. An
assembly language uses symbolic codes rather than
numeric codes (as use in machine language). For
example ADD is used a symbolic operation code to
represent addition and SUB is used for subtraction
10
and the object program is loaded into the computer
for execution.
11
such as sorting, merging, report generation, file
maintenance etc.
Examples of utility programs are:
Text editors
Dumb utilities
Norton utilities
Antivirus programs etc
APPLICATION SOFTWARE
Standard Applications
Some applications are common for many
organizations. Ready to use software packages for
such applications are available from hardware and
software vendors. These are the standard
applications. These packages are accompanied by
manuals and documentation explaining how the
package is to be used.
12
The programming languages used in developing
application software falls in this category.
Unique Applications
These are the customized software packages that a
vendor develops at a users request to meet the
user’s specifications or unique requirements.
PROGRAMMING LANGUAGES
Machine Language
All computers operate in their own language. At
the beginning of the first generation computer era,
programming was done in machine language.
These programs are written in binary form (in
terms or 0’s and 1’s). The computer can directly
understand this form. The machine codes (binary
digit) are a one to one mapping. They occupy little
space in the CPU.
16
The programs are machine dependent. Each
model of computer has its own machine
language, which is made according to its
hardware.
17
High Level Languages
High-level languages use words and symbols,
which resemble ordinary English.
They can be used in virtually all machines
(machine independent). High-level language
instructions are translated to machine language by
the compiler or interpreter.
Disadvantages
1. Program executed more slowly
2. The languages use computer resources less
efficiently
3. They are inefficient. The hardware control is
limited
4. Require larger CPU capacity for compilation
18
FORTRAN
FORTRAN is a limited - purpose, machine
independent and problem oriented language. The
name FORTRAN is an acronym derived from the
words FORmula TRANslator. The language was
originally designed for scientific and mathematical
uses. It is popular in education and in management
science applications. Many kinds of business
applications can be in FORTRAN
It is relatively easy to learn and contemporary
versions (e.g. FORTRAN77) provide sophisticated
structures for controlling program logic
FORTRAN is not very good at providing
input/output efficiency or in printing
The syntax is very strict and keying errors are
common, making the programs difficult to debug.
COBOL
COBOL (Common Business Oriented Language)
was designed for business and commercial
purposes. It processes large data files with
alphanumeric characters and for performing
repetitive tasks like payroll.
COBOL is easy to learn
As one of the most widely used programming
languages, it is supported by external groups and
there is abundance of productivity aids.
COBOL is poor at complex mathematical
calculations
19
There are many versions of COBOL and not all are
compatible with each other.
Lengthy COBOL programs can become complex
as to be virtually incomprehesible
BASIC
BASIC (Beginners All Purpose Symbolic
Instruction Code) is one of the popular
programming languages on college campuses and
for microcomputers. BASIC can do almost all
computer-processing tasks from inventory to
mathematical calculations.
It is easy to use, demonstrates computer
capabilities well and requires only a small
interpreter.
The weakness of BASIC is that it few tasks well
even though it does them all.
It has no sophisticated program logic control or
data structures, which make it difficult to use in
teaching good programming practices.
While BASIC has only a few commands and is
easily learned, subsequent versions of the language
that have tried to add to the early syntax make the
new versions of BASIC incompatible with the old
ones.
PL/1
PL/1 (Programming Language 1) is a powerful
programming language because it can handle
mathematical and business applications with ease;
20
it is highly efficient in input/output activities and
can handle large volumes of data.
PL/1 is somewhat difficult to learn in its entirety.
Pascal
Named after Blaise Pascal, the seventeenth century
mathematician and philosopher.
Pascal programs can be compiled using minimal
computer memory, so they can be used on
microcomputers.
With sophisticated structures to control program
logic and simple, powerful set of commands,
Pascal is used primarily in computer science
courses to teach sound programming practices.
The language is weak at file handling and
input/output and is not easy for beginners to use.
Ada
Ada was developed to provide the United States
Defense Department with structured programming
language to serve as the standard for all its
applications.
Ada was named after Ada, a nineteenth century
mathematician and programmer.
The language can also be used for general business
applications since it can operate on
microcomputers and is portable across different
brands of computer hardware.
21
C
C was developed at AT & T’s Bell Labs and is the
language in which much of UNIX operating system
is written.
C combines some of the tight control and
efficiency of execution features of assembly
language with machine portability. In other words,
it can work on a variety of computers rather than
just one.
C is unlikely to dislodge COBOL for mainframe
business applications, but it will be used
increasingly for commercial microcomputer
software and for scientific and technical
applications.
22
Fourth-Generation Languages
Fourth- generation languages consist of a variety of
software tools that enable end users to develop
software applications with minimal or no technical
assistance or that enhance productivity of
professional programmers.
Fourth-generation languages tend to be
nonprocedural or less procedural than conventional
programming languages. Procedural languages
require specification of the sequence of steps, or
procedures, that tell the computer what to do and
how to do it. Nonprocedural languages need only
to specify what has to be accomplished rather than
provide the details about how to carry out the task.
Thus a nonprocedural language can accomplish the
same task with fewer steps and lines of program
code than a procedural language.
23
Categories of fourth Generation Languages
Query Languages
Query Languages are high-level languages for
retrieving data stored in databases or files. They are
usually interractive, on-line and capable of
supporting requests for information that are not
predefined.
They are always tied to database management
systems and microcomputer tools.
Query languages can search a database or file,
using simple or complex selection criteria to
display information relating to multiple records.
Available query language tools have different
kinds of syntax and structure, some being closer to
natural language than others. Two examples of
Query language are Query-By-Example, FOCUS.
Report Generators
Report generators are facilities for creating
customized reports. They extract data from
databases or files and create reports in many
formats.
Report generators generally provide more control
over the way data is formatted, organized and
display than query languages. The more powerful
report generators can manipulate data with
complex calculations and logic before they are
output. Some generators are extension of database
or query language. The more complex and
24
powerful generators may not be suitable for end
users without some assistance from professional
information systems specialists.
Graphics Languages
Retrieves data from files or databases and display
them in graphics format. Users can ask for data and
specify how they are to be charted. Some graphics
software can perform arithmetic or logical
operations on data as well. SAS, Havard Graphics
are popular graphics tools.
Application Generators
These contain programmed modules that can
generate entire applications, greatly speeding
development. A user can specify what needs to be
done, and the application generator will create the
appropriate code for input, validation, and update,
processing and reporting.
Most full-function application generators consist of
a comprehensive, integrated set of development
tools: a database management system, data
dictionary, query language, screen painter, graphics
generator, report generator, decision
support/modeling tool, security facilities etc.
Some application generators are interactive,
enabling users sitting at a terminal to define inputs,
files processing and reports by responding to
questions on-line.
25
Very High Level Programming Languages
Are designed to generate program code with fewer
instructions than conventional languages. Programs
and applications based on these languages can be
developed in much shorter periods of time.
Simple features of these languages can be
employed by end users. However these languages
are designed primarily as productivity tools for
professional programmers. APL and Normad are
examples of these languages
27