|
|||||
![]() Introduction
to Computing CS101
VU
LESSON
10
COMPUTER
SOFTWARE
To
discuss the role of software in
computing systems
To
learn to differentiate among software
belonging to the system and application
categories
To
learn about software
ownership
We mentioned
in Lesson 4 that at the
highest level, two things
are required for computing
Hardware:
The physical equipment in a
computing environment such as the
computer and its peripheral
devices
(printers, speakers...)
Software:
The set of instructions that
operates various parts of the hardware.
Also termed as "computer
program"
Computer
Software
The
HW needs SW to be useful; the SW needs HW
to be useful
When
the user needs something done by the computer,
he/she gives instructions in the
form of SW to
computer
HW
These
instructions need to be written in a
language that is readily understood by computer
uP
10.1
Machine Language
A
system of codes directly understandable
by a computer's CPU is termed this
CPU's native
or
machine
language.
Although machine
code may
seem similar to assembly
language they
are in fact
two
different types of languages. Machine
code is composed only of the
two binary digits 0 and
1.
Every
CPU has its own machine
language, although there is considerable overlap
between some. If CPU
A understands
the full language of CPU B it is
said that A is
compatible with B. CPU
B
may
not be
compatible
with CPU A, as
A
may
know a few codes that
B
does
not.
10.2
Language Translators
Human
programmers write programs in a language
that is easy to understand for them.
They use
language
translators to convert that program
into machine language. It converts the human
understandable
code in uPs understandable code,
i.e. a language that is easy to
understand for the uPs
10.3
Software Development
A software
development process is a
process used to develop computer
software. It may be an ad hoc
process,
devised by the team for one project,
but the term often refers to a
standardised, documented
methodology
which has been used
before on similar projects or one which
is used habitually within
an
organisation.
The
SW development process involves
many steps, and coding, that
is typing the instructions in a
high-
level
language is only a small part of
that process taking-up
only around 15% of the
effort
Hardware
Operating System
Device Driver
Utility
Language
Scientific
Business
Productivity
Entertainment
Translator
Apps.
Apps.
Apps.
Apps.
System
software
Application
software
51
![]() Introduction
to Computing CS101
VU
The
Software Development
Process
Concept &
Feasibility
User
Requirements
Developer
Specs
Planning
Design
Implementation
10.4
Major Types of SW
System
SW
System
software is responsible for controlling,
integrating, and managing the individual
hardware
components
of a computer system.
System
software performs tasks like
transferring data from
memory to disk, or rendering
text onto a
display
Specific kinds of system
software include loading programs,
operating systems, device
drivers,
compilers,
assemblers, linkers, and
utilities.
Software
libraries that perform generic
functions also tend to be regarded as
system software.
System
software
stored on non-volatile storage on
integrated circuits is usually termed
firmware. These
generally
perform the background tasks in a
computer. These programs, many times,
talk directly to the
HW.
Application
SW
Programs
that generally interact with
the user to perform work
that is useful to the user.
These programs
generally
talk to the HW through the assistance of
system SW.
10.5
System SW are programs that
...
Control
the overall operation of the
computer
OS
Interact
directly with HW
Device
drivers
Perform
system management &
maintenance
Utilities
Are
used to develop or maintain
other programs
Language
translators
10.6
Operating System
It performs
its work invisibly to
control the internal functions of a
computer, e.g. maintaining files
on
the
disk drive, managing the
screen, controlling which
tasks the uP performs and in what
order. It
interacts
directly with the computer HW.
Other SW normally does not
directly interact with the
HW,
e.g.
Windows
Mac
OS
Linux
UNIX
Solaris
DOS
CP/M
VMS
Firmware
ROM
is a component of OS that permanently
stored on a chip. It is a firm ware
program. When a
computer is
powered-on, it is the first program
that it always executes.
Firmware consists of startup and
52
![]() Introduction
to Computing CS101
VU
a few
low-level I/O routines that
assist the computer in finding
out and executing the rest of the
OS. On
IBM-compatible
PC's, it is called BIOS
10.7
Utilities:
It is a
small program that provides
an addition to the capabilities provided
by the operating system. In
some
usages, a utility is a special and
nonessential part of the operating
system. These are the
computer
programs
that perform a particular
function related to computer system
management and maintenance
Examples:
1.
Anti-virus SW
2. Data
compression SW
Disk
optimization SW
Disk
backup SW
10.8
Language Translators
Programs
that take code written in a
HLL and translate it into a low-level language
that is easily
understood by the
uP
1. Compiler
translates the
program written in a HLL in one go.
The translated code is then
used by the
uP
whenever the program needs to be
run
2.
Interpreter translates the
HLL program one statement at
time. It reads a single
statement, translates
it
into machine language and passes that
machine language code to the uP and then
translates the next
statement,
and so on ...
10.9
Device Drivers
A device
driver, often
called a driver
for
short, is a computer program that is
intended to allow another
program
(typically, an operating system) to
interact with a hardware device.
Think of a driver
as
a
manual
that gives the operating
system (e.g., Windows) instructions on
how to use a particular piece
of
hardware.
A
device driver essentially converts the
more general input/output instructions of the
operating system
to
messages that the device
type can understand.
10.10
Application SW
Application
SW are programs that
interact directly with the
user for the performance of a certain
type of
work
Scientific/engineering/graphics
SW
Mathematica;
AutoCad; Corel Draw
Business
SW
The
billing system for the
mobile phone company
Productivity
SW
Word
processors; Spreadsheets
Entertainment
SW
Games
Educational
SW
Electronic
encyclopedias; The VU Web site
53
![]() Introduction
to Computing CS101
VU
Hardware
Operating
System
Device
Driver
Utility
Language
Scientific
Business Productivity
Entertainment
Translator
Apps.
Apps.
Apps.
Apps.
System
software
Application
software
10.11
Another way of classifying SW
Shrink-Wrapped
SW
You
can just go to a shop and
buy it
Custom-built
SW
You
cannot just go to a shop and buy
it; you have to find someone
who can develop it for
you
Shrink-Wrapped
SW
SW
built in such a way that it
is useful for many different
users in many different
ways.
Example:
MS Word. Individuals use it and so do
many large corporations. It is
used for writing one-
page
letters and also to typeset books
Custom-Built
SW (1)
These
SW are built for a
particular organization to fulfill the
needs of that particular
organization. This
type
of SW is expensive because the builder
has to recoup costs and make
a profit from a single
sale
Example:
A system for predicting the
preferences of the Nortwest Airline
pilots
Custom-Built
SW (2)
This
is other type of custom
built SW. The delivery time
is longer. Customers get more
productivity out
of it
because it is built according to
their exact specifications just
like a custom-built shoe
fits better,
but
generally is more expensive, and requires
a longer period for
delivery
10.12
Who Owns Software?
Generally,
although a piece of SW that is being
used by millions, it is not
owned by any of them!
Instead,
it is owned by the maker of the SW
The
makers let us use their SW
but keep the ownership to themselves.
When we buy a SW package,
we
do
not really buy it we
just buy a license that
allows us to use it, the
ownership stays with the
maker
However,
there are variations on this
theme ...
10.13
Main types of SW
licensees
Proprietary
Most software on a Windows PC or a
Macintosh belongs to this
category
Freeware
Most software on a Linux PC belongs to
that category
54
![]() Introduction
to Computing CS101
VU
Shareware
the category which lies between the
above two categories
10.14
Proprietary SW License
Proprietary
software, as
defined by the Free Software
Foundation, means any
software that is not
free
software
or is only partially free.
The modification, use and
redistribution is prohibited, or
requires
express
permission the originator. The user
needs to pay the maker of the SW for
buying a license that
allows
the user to use the SW
The
license, generally, does not transfer the
ownership of the SW; it just
allows the user to use it.
The
user
is legally barred from making
copies of the licensed SW. Generally, the license is
for the personal
use
only. Most SW in use in the
world is of this
type.
Examples:
Windows, Mac OS, MS Word,
Adobe Photoshop, Norton
Antivirus
Types
of Proprietary Licenses
Single-user
license
Multi-user
license
Concurrent-user
license
Site
license
10.15
Freeware SW License
It is
also known as "Public Domain
SW". It allows the user to
free use of the SW. The
author, however,
generally
retains ownership. It can usually be
downloaded from various Web
sites.
Examples:
Linux; LaTeX; Netscape Web browser
the Navigator; MS Web browser the
Internet
Explorer
10.16
Open-Source SW License
Some
authors give away the machine code
only, which is extremely
difficult to modify, if at all.
Others
even
give away the high-level language
source code so that users
can make changes according to
their
own
requirements. The later practice is
called open-source
licensing.
Generally
is any computer software whose
source code is either in the
public domain or,
more
commonly,
is ed by one or more persons/entities and
distributed under an open-source license
.
Such
a license may require that the
source code be distributed
along with the software, and
that the
source
code be freely modifiable,
with at most minor
restrictions, such as a requirement to
preserve the
authors'
names and
statement in the code,
Examples:
Linux; Netscape
Navigator
10.17
Shareware SW License
Shareware
is
software that 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. A shareware program is accompanied
by a request for payment,
and
often
payment is required per the terms of the
license past a set period of
time. shareware are similar
in
that
they can be obtained and
used without monetary cost.
Usually shareware differs
from open source
software
in that requests of voluntary "shareware
fees" are made, often within
the program itself, and in
that
source code for shareware
programs is generally not
available in a form that
would allow others to
extend
the program.
A
shareware's program source, maintenance
and extensibililty can
sometimes be negotiated for
a
licensing
fee with the author(s) similar to
standard proprietary
software.
Examples:
WinZip, Download
Accelerator
55
![]() Introduction
to Computing CS101
VU
10.18
Trialware
It is
similar to shareware but
difference is that the SW is usable
for a short period only.
When the period
is
expired, it is no more in use until the
license is not purchased. The
trial period may vary
according to
its
developer. This period may
range from a week to a few
months.
It
can be downloaded from the
Internet or alternatively.
What
have we learnt
today?
We have
found out about the role
software plays in a computing
environment
We
also learned to distinguish between
software belonging to the system and
application categories
We
also discussed the different types of
software licenses
Topics
of some of the future
lectures
Operating
system
Application
SW
Productivity
SW
Word
processor
Spreadsheets
Presentation
making
Databases
Programming
Languages
The
SW development process
The
Web development series of lectures is
clearly focused on developing
SW
Focus
of the Next Lecture
The
role of the OS in a computing
environment
The
various functions that an OS
performs
The
main components of an OS
Various
types of OSes
56
Table of Contents:
|
|||||