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 highlevel
language is only a small part of that process – taking-up only around
15% of the effort
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.
The Software Development Process
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
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 onepage
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
Hardware
Operating System
Utility Language
Translator
Device Driver
Scientific
Apps.
Business
Apps.
Productivity
Apps.
Entertainment
Apps.
System software
Application software
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 copyrighted 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 copyright 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
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
|