0% found this document useful (0 votes)
7 views

The Computer Software

The document explains the concept of computer software, which consists of programs and procedures that instruct a computer to perform tasks. It categorizes software into system software, which manages hardware operations, and application software, which serves specific user needs. Additionally, it discusses the role of operating systems, language processors, and utility programs in enhancing computer functionality.

Uploaded by

Edwin massam
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

The Computer Software

The document explains the concept of computer software, which consists of programs and procedures that instruct a computer to perform tasks. It categorizes software into system software, which manages hardware operations, and application software, which serves specific user needs. Additionally, it discusses the role of operating systems, language processors, and utility programs in enhancing computer functionality.

Uploaded by

Edwin massam
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 27

THE COMPUTER SOFTWARE

 It is important to note that a computer cannot do


anything on its own. It must be instructed to do a
desired job. Hence it is necessary to specify a
sequence of instructions that a computer must
perform to solve a problem. Such a sequence of
instructions written in a language that can be
understood by a computer is called a computer
program.

 The term software refers to the set of computer


programs, procedures and associated documents
(flowcharts, manuals etc) that describe the
programs and how they are to be used. To be
precise, software means a collection of programs
whose objective is to enhance the capabilities of
the hardware machine.

Types of Software

User

Application software

System Software

Hardware

1
Relationship between
Hardware, Software and
User of a computer hardware
system

 Computer software is normally classified into


two broad categories: System software and
Application software.
 System software is a set of one or more programs
designed to control the operation of a computer
system these are programs written to assist
people in the use of the computer system by
performing such tasks as controlling all
operations required to move data into and out of
a computer and all other steps in executing an
application program. In general system software
supports the running of other software;
communicate with peripheral devices: support
2
the development of other software and monitor
the use of various hardware resources. Thus
system software makes the operation of a
computer more effective and efficient
 The programs included in system software are
called system programs and are prepared by a
systems programmer

 Application software is a set of one or more


programs designed to carry out operations for a
specified application. For example a Payroll
package, which produces payslips as a major
output. The programs that constitute application
package are known as application programs
and are prepared by an application
programmer

 Firmware refers to a sequence of instructions


(software) that is substituted for hardware. With
the advancement in technology and the reduction
in hardware costs, today software is being made
available by many computer manufacturers on
Read Only Memory (ROM) chips. These ROM
chips can be easily plugged into the computer
system and they form part of the hardware. For
example, in an instance where cost is more
important than performance speed, the computer
system architect might decide not to use special
electronic circuits (hardware) to multiply two
3
numbers, but instead write instructions
(software) to cause the machine to accomplish
the same function. This software will be stored a
ROM chip of the computer system and will be
executed whenever the computer has to multiply
two numbers
 Initially, only systems software was supplied in
the firmware, but today even application
programs are being in firmware form. Firmware
is a cost-effective alternative to wired electronic
circuits and its use in computer design will
increase.

SYSTEM SOFTWARE

System software coordinates the various parts of


the computer system and mediates between
application software and computer hardware.
System software includes:
o Operating System (OS) – The system software
that manages and controls the activities of the
computer
o Language Processors (Translators) – Converts
programming language instructions into
machine language
o Utility programs – Perform common
processing tasks

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.

Functions of the operating system

1. Processor management, that is assignment of


processors to different tasks being performed by
the computer
2. Memory management, that is allocation of main
memory and other storage areas to the system
programs, application programs and data
3. Input/Output management, that is coordination
and assignment of the different input and output
devices while one or more programs are being
executed
4. File management, that is the storage of files on
various storage devices and the transfer of these
files from one storage device to another It also
5
allows files to be easily changed or modified
through use of text editors or through some other
file manipulation routines
5. Establishment and enforcement of a job priority
system. That is, it determines and maintains the
order in which jobs are to be executed in the
computer system
6. Interpretation of commands and instructions
7. Coordination and assignment of translators,
utility programs and other software to the
various users of the computer
8. Establishment of data security and integrity. That
is, it keeps different programs and data in such a
manner that they do not interfere with each other.
It provides security features such as passwords,
mandatory logons, rights assignments etc.
9. Production of traces, error messages and other
debugging and error detecting aids
10. Maintenance of internal time clock and log
of system usage
11. Facilitates easy communication between the
computer system and the computer user

Types of Operating Systems

1. Single-program Operating System -A Single –


program operating system allows one program to
execute at a time. The program must completely
finish executing before the next can begin

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.

Discussion: Describe the common operating


systems

Factor to consider while selecting an operating


system
 What application software runs on the
operating system?
 What kind of computer hardware does the OS
run on?
 How quickly does the OS run?
 How easy is the OS to learn and use?
 Is the OS designed for single users or for
multiple users on a network?
 Does the OS have strong multitasking
capabilities?
 How reliable is the OS?
 How much does it cost to install the OS?
 What technical support or assistance is
required to install and run the OS? Where is
this support available?

2. Language Processors (Translators)

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

Compilers and interpreters translate programs


written in high-level languages into machine
language.
Compilers check the entire user written program
(known as source program) and, if error free
produce a complete program in machine language
(known as object program). The source program is
retained for possible modification and corrections

10
and the object program is loaded into the computer
for execution.

Interpreters does a similar job but in a different


style. The interpreter translates one statement at a
time and, if error-free executes. This continues till
the last statement. Thus an interpreter translates
and executes the first instruction before it goes to
the second while a compiler translates the whole
program before execution.

The major differences between a compiler and an


interpreter are:
 Error correction (debugging) is much simpler
in the case of the interpreter because it is done
in stages. The compiler produces an error list
for the entire program at the end.
 Interpreters take more time for the execution
of a program compared to compilers because a
statement has to be translated every time is
read.
The language processors are usually written and
supplied by the hardware and specialized software
vendors.

3. Utility Programs (Service programs)


These are programs provided by the manufacturers
to assist in the operation of a computer by
performing some frequently required processes

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

Application software is primarily concerned with


accomplishing the tasks of end users. While an
operating system makes the hardware run properly,
application programs are specially prepared to do
certain specific tasks.

Application software can be classified into two


categories:
1. Standard Applications (General Purpose
Application Packages)
2. Unique Applications

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.

Discussion: List common standard application


packages giving examples

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.

Advantages of using standard applications


 They are usually revised by the developers to
suit the changing demand and technology
 Testing of the package is less expensive
 Easy to learn and use
 Have minimum errors because they are
thoroughly tested before release
 Saves time since programmers do not spend
time writing programs
 Implementation usually take shorter time
 Can sometimes be customized or modified to
build the individual user needs
 Cost savings because the services of specialists
like programmers are required.

Disadvantages of standard applications


 Frequent upgrades means extra cost to the user
 They are not usually as efficient (run time and
memory use as user made programs
13
 Not all packages are compatible with all
computer systems
 Programmer training may be difficult.

Considerations while selecting an application


package
 Is the cost within your limit?
 What is the actual objective of the package
 Does the supplier maintain the package?
 Is the documentation adequate and simple to
follow?
 What are the views of independent users?
 What are the hardware requirements?
 Will the run time and core utilization present
difficulties? Is it fast enough in usage?
 Is the package simple to learn?
 Can it be used in a variety of computers?
 Does the supplier provide training and
guidance?
 Can the user modify the software?
 Which is the current version in the market?

PROGRAMMING LANGUAGES

A language is a system of communication. A


computer language is a means of communication
used to communicate between people and the
computer.
14
All computer languages have vocabulary of their
own. Each symbol of the vocabulary has a definite
unambiguous meaning which can be looked up in
the manual meant for that language.
The main difference between a natural language
and a computer language is that a natural language
has a large vocabulary but most computer
languages use a very limited or restricted
vocabulary.

Steps in program development


1. Read and understand the program specification
(from the Systems Analyst)
2. Draw the program flowcharts or any program
logic like pscheudocode, decision tables etc
3. Code the program in the appropriate high level
language
4. Prepare the program for the compilation process
5. Attempt to compile the program, amending the
program on finding syntax or sematic errors
6. Test the program to detect logic errors, correct
any errors and attempt again to compile it.
7. Document the program; prepare program listing
manuals showing how use the program.
8. Maintain it. Modify programs when changes
occur to keep the program upto date

Categories of Programming languages


1. Machine Language (computer Language)
2. Assembly Language (Low level)
15
3. High Level 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.

Advantages of Machine Language


 They are economical in terms of the amount of
memory they use
 Running a program is fast, no compilation is
needed
 They are not used by many programs hence
can be used to code secret programs

Disadvantages of machine Language


 Programming is very time consuming because
the programmer has to write one binary
instruction for each step which the machine
has to take
 Assembly programs are error prone
 The program is hard to understand
 It is difficult to debug and maintain the
program

16
 The programs are machine dependent. Each
model of computer has its own machine
language, which is made according to its
hardware.

Assembly Language (Low level Language)


Assembly language was developed to replace the
0’s and 1’s of the machine language.
Low-level languages were developed to overcome
the disadvantages of machine language. This
language uses symbolic codes rather than numeric
codes. The symbols represent various operations. A
symbol has a corresponding binary representation
e.g. ADD means addition and has its corresponding
binary code when a program called assembler is
used to compile the code, which can be understood
by the computer.

Advantages of Assembly Language


 They are easier to use than machine language
 They operate very efficiently, second to
machine language
 They are easier to debug

Disadvantages of assembly Language


 The programs are long
 Assembly language programs are complex
 The programs machine dependent

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.

Advantages of High Level Languages


1. They are easily portable since they are machine
independent
2. Ease of learning
3. Requires less time to code
4. Provide better documentation (or self
documenting)
5. Ease of maintenance
6. With careful coding, errors are few

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

Common high level languages

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.

LISP and Prolog


LISP (LISt Processing) and Prolog are widely used
in artificial intelligence.
LISP is oriented toward putting symbols such as
operations, variables and data values into
meaningful lists.
LISP is better at manipulating symbols than at
ordinary number crunching
Prolog is well suited to symbol manipulation and
can run on general-purpose computers, whereas
LISP usually runs best on machines configured
especially to run LISP programs

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.

Objectives of fourth-generation languages


 Increasing the speed of developing programs
 Minimizing user effort to obtain information
from a computer
 Decreasing the skill level required of users so
that they concentrate on the application rather
than intricacies of coding, and thus solve their
own problems without the aid of a professional
programmer
 Minimizing maintenance by reducing errors and
making programs that are easy to change

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

Fifth-Generation Programming Languages


These are languages of the future. Some of them
are already in use (Prolog). Most of them are meant
for the expert system and artificial intelligence

Choosing Programming Language


While managers need not become programming
specialists, they should know the differences
between programming languages and should be
able to use clear criteria in deciding which
language to use. Following questions need to be
asked:
1. What languages does the selected (or
available) computer system support?
2. Will the application require complex
computations, file processing or report
generation?
3. Is a fast response time crucial, or will batch
processing be satisfactory?
26
4. Are equipment changes planned for the future?
5. Are programmers available for the language?
6. How frequently will programs need
modification?
7. Do management or marketing factors indicate
a preference for a particular language?
8. Is the language to be used compatible with the
computer system in use?
9. Are the language programs easy to read and
maintain?
10. I/O ability. How does the program deal with
the printer, keyboard and screen?

27

You might also like