ICT Lesson 4 - Computer Software

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

ICT Lesson 4 – Computer software

Computer applications
Computer applications is the knowledge, skills and attitudes that enable a computer user to
operate and use different computer application programs or packages to accomplish various
tasks.

Computer Software
What is software? Software is a set of instructions that enables a computer to operate. It is also known
as programs. A program is a set of instructions given to a computer to enable it perform or
accomplish a specific task. Computer hardware is only as effective as the instructions given to it
by the end users and those instructions are contained in software. Software not only directs the
computer to manage its internal resources, but also enables the user to tailor a computer system
to provide specific business value. Software instructs the computer on what to do and how to do
it. It follows therefore, that without software the computer can do nothing
Software concept
Software consists of computer programs, which are sequences of instructions for the computer.
The process of writing these programs is known as programming or coding and individuals
who perform this task are called programmers.

Modern computers use the stored program concept, in which stored software programs are
accessed and their instructions executed (followed) in the computer’s Central Processing Unit
(CPU). Once the program has finished executing, a new program is loaded into main memory
and the computer hardware addresses another task.

Programmers write programs in a language that is like broken English called the programming
language or source language, e.g. Vb.net, HTML, C++ etc. The source language produces a
sequence of instructions (script) for the computer known as the source code, using a special
sequence or order of writing characters usually referred to as syntax. The computer understands
only one language which is the machine language, a series of 0s and 1s. Since it cannot
understand the source language, the source code is translated into a machine language script
known as the object code by special translation programs called translators, e.g. compilers,
interpreters and assemblers. A compiler also checks for errors or bugs within the program and
reports them to the programmer for removal, fixing or debugging.

1 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Characteristics of a good program


Programming is a tiring, expensive and time consuming task and care must be taken in writing
programs. A good program has the following characteristics;
 Accuracy: The program must do what it is supposed to do and give accurate results as
per specification.
 Reliability: The program must perform its tasks at all times and not crush.
 Efficiency: The program must use all system resources such as processor, speed, memory
and storage in such a way that these resources are not wasted.
 Robustness: The program should cope with invalid data without creating errors or
stopping without any indication of the cause.
 Portability: The program should run on different platforms (operating systems) with or
without minimal changes.
 Generality: The program should be used for all similar task of the same domain.
 Usability: The program must be easy to use and understand.
 Flexibility: A program should be flexible enough to handle most of the changes without
having to rewrite the entire program.
 Readability: The code in the program must be well laid out and explained with
comments.
 Clarity: The program’s purpose and function should be clear and should stand out with
ease.
 Modulable: The program should be easily divisible into small functional units or
subprograms.
 Documentation: The program’s functions and its development process must be well
described.
Documentation
Computer programs include documentation, which is a written description of the functions of
the program. It is a written report or manual which explains how the program was developed and
instructions on how to install and use the program.
Importance of program documentation

2 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Documentation is of much importance to an organization because:


 It aids the users on how to operate the program such as entering data, obtaining outputs
and error handling.
 It helps others technical users like programmers or system analysts to understand how the
program was designed and coded so that in the event that the program needs to be
modified, it can be done in absentia of the developer.
 Documentation can be a source of evaluating the performance and objectives of the
program.

Relationship between hardware and software


In order for a computer to produce useful output, its hardware and software must work together.
Nothing useful can be done with the computer hardware on its own and software cannot be
utilized without supporting hardware. Although computer system hardware is, by design, general
purpose, software enables the user to instruct a computer system to perform specific functions.
The relationship between hardware and software is as follows

 Both hardware and software are necessary for a computer to accomplish tasks. Both
complement each other.
 The same hardware can be loaded with different software to make a computer system
perform different types of tasks

Classification of computer software


Generally, there are several ways of classifying computer software; we shall discuss three ways
namely:

1. According to purpose
2. According to Acquisition
3. According to End User License (EUL)

Classification according to purpose


Computer software may primarily be designed to manage the hardware resources or help the end
user to accomplish a specific task. In this regard, computer software may be classified broadly
into two categories:

1. System software
3 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

2. Application software

System software
This is computer software that manages the operation of the computer itself and makes sure that
the computer works efficiently. It is responsible for controlling, integrating and managing the
individual hardware components of a computer system. This enables other software and the users
of the computer system to see the system as a single functional unit without having to be
concerned with low-level details.

Basic functions of system software

System software performs a variety of fundamental operations that avail computer resources to
the user. These functions include:

1. Booting the computer and making sure that all the hardware elements are working
properly.
2. Performing a variety of system utility functions.
3. Supports the development of other application software.
4. Supports the execution of other application software.
5. Monitors the effective use of various hardware resources such as CPU, memory,
peripherals etc.
6. Communicates with and controls the operation of peripheral devices, such as printers,
disk, tape etc.

Hence, system software makes the operation of a computer system more effective and efficient.
It helps the hardware components work together and provides support for the development and
execution of application software (programs). The programs included in a system software
package are called system programs and programmers who develop system software are
referred to as system programmers. Some of the most commonly known types of system
software are:

Operating Systems
An operating system is a mandatory program that enables application software to interact with a
computer’s hardware, acts as an intermediary between the computer users and computer
hardware and controls the execution as well as provide a basis or platform for application
4 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

programs. Some popular Operating Systems include Linux Operating System, Microsoft
Windows family Operating System, VMS, OS/400, AIX, z/OS, UNIX and Macintosh (MacOS)
etc.

Firmware
Firmware is a software program permanently etched into a hardware device such as a keyboards,
hard drive, BIOS, or video cards. It is programmed to give permanent instructions to
communicate with other devices and perform functions like basic input/output tasks. Firmware is
typically stored in the flash ROM (read only memory) of a hardware device. It can be erased and
rewritten. This software will be stored in a ROM chip of the computer and will be executed
whenever the computer has to multiply two numbers. To be precise, firmware is software
substitute for hardware and stored in read only memory.
Utility programs
Utility programs, also known as utilities or housekeeping software are a set of programs, which
help users in system maintenance tasks, and in performing tasks of routine nature. Some of the
tasks commonly performed by utility programs include:

 Disk formatting: This is the process of preparing a data device such as a hard disk, solid
state disk, for initial use. In some cases, disk formatting, may also create one or more new
file systems.
 Disk partitioning: This is the process of creating two or more regions on a hard disk/
secondary storage device so that the operating system can manage information in each
region separately. In other words, partitioning is the process of splitting memory into
different drives.
 Scanning Disk: This is the process of checking for errors in a disk drive and repairing
them. The operating system uses scanned disk utility which is a diagnostic tool for
checking and repairing file system errors on a disk drive. An antivirus e.g. Kaspersky is
also used to scan and eliminate viruses on the computer system.
 Disk compression: This is the process of increasing the amount of storage space by
compressing files to occupy minimum disk space.
 Disk defragmentation: This is increasing computer access speed by rearranging files
stored on a disk to occupy contiguous storage locations.

5 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

 Disk backup: This is the process of creating copies of data and program on a separate
storage device to avoid losing important data or programs in case the storage device fails.

Some of the common utility programs include: -

 Text editors: These are programs used to create and subsequently modify textual
information using the computer. The text editor operations are controlled by an
interactive operating system that provides “dialogue” between the computer user and
itself.
 Linker: This is a program in a language processor used to link/join the source code with
other files that are needed for the execution of the program.
 Loader: This is a program that transfers the linker output, into computer memory ready
for it to be executed by the computer hardware.
 Sort utility: These are programs used to alter the sequence of the records maintained in a
file. They are used to arrange records within a file according to some predetermined
sequence. The arrangement can either be in ascending order or descending orders of
alphabetic or numerals.
 Merge utility: This is a program used to influence the combining of the contents of two
or more input files to produce one output file.
 Copy utility: This is a program used to influence the duplication process i.e. copying
the content of one file to another.
 Dump utility: This is a program used to influence dumping i.e. the transfer (copying) of
the computer’s internal memory into a storage media.
 Diagnostic tools: These are tools used to detect and correct system faults both hardware
and software. E.g. Dr Watson, a diagnostic tool from Microsoft that takes a snapshot of
the system whenever a system fault occurs, Norton Utilities, PC Tools, QAPlus etc.

Communications software
In a network environment, where multiple computers are interconnected by communications
networks, communication software enables transfer of data and programs from one computer
system to another.

6 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Programming language translators


Programming language translators are system software which transform the instructions prepared
by programmers in a programming language, into a form which can be interpreted and executed
by a computer system, e.g.

 Compliers: These are language processors which translate the entire source code into
object code all at once.
 Interpreters: These are language processors that translate the source code into object
code line by line.
 Assemblers: These are language processors that translate a source code written in
assembly language into object code.

Note: Source code is a program code typed in the text editor or integrated Development
Environment (IDE) while object code refers to a program code that is in machine readable form
(Binary) or a series of 0s and 1s.

Utility programs
Utility programs, also known as utilities or housekeeping software are a set of programs, which
help users in system maintenance tasks, and in performing tasks of routine nature. Some of the
tasks commonly performed by utility programs include:

 Disk formatting: This is the process of preparing a data device such as a hard disk, solid
state disk, for initial use. In some cases, disk formatting, may also create one or more new
file systems.
 Disk partitioning: This is the process of creating two or more regions on a hard disk/
secondary storage device so that the operating system can manage information in each
region separately. In other words, partitioning is the process of splitting memory into
different drives.
 Scanning Disk: This is the process of checking for errors in a disk drive and repairing
them. The operating system uses scanned disk utility which is a diagnostic tool for
checking and repairing file system errors on a disk drive. An antivirus e.g. Kaspersky is
also used to scan and eliminate viruses on the computer system.
 Disk compression: This is the process of increasing the amount of storage space by
compressing files to occupy minimum disk space.
7 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

 Disk defragmentation: This is increasing computer access speed by rearranging files


stored on a disk to occupy contiguous storage locations.
 Disk backup: This is the process of creating copies of data and program on a separate
storage device to avoid losing important data or programs in case the storage device fails.

Some of the common utility programs include: -

 Text editors: These are programs used to create and subsequently modify textual
information using the computer. The text editor operations are controlled by an
interactive operating system that provides “dialogue” between the computer user and
itself.
 Linker: This is a program in a language processor used to link/join the source code with
other files that are needed for the execution of the program.
 Loader: This is a program that transfers the linker output, into computer memory ready
for it to be executed by the computer hardware.
 Sort utility: These are programs used to alter the sequence of the records maintained in a
file. They are used to arrange records within a file according to some predetermined
sequence. The arrangement can either be in ascending order or descending orders of
alphabetic or numerals.
 Merge utility: This is a program used to influence the combining of the contents of two
or more input files to produce one output file.
 Copy utility: This is a program used to influence the duplication process i.e. copying
the content of one file to another.
 Dump utility: This is a program used to influence dumping i.e. the transfer (copying) of
the computer’s internal memory into a storage media.
 Diagnostic tools: These are tools used to detect and correct system faults both hardware
and software. E.g. Dr Watson, a diagnostic tool from Microsoft that takes a snapshot of
the system whenever a system fault occurs, Norton Utilities, PC Tools, QAPlus etc.

8 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Communications software
In a network environment, where multiple computers are interconnected by communications
networks, communication software enables transfer of data and programs from one computer
system to another.

Programming language translators


Programming language translators are system software which transform the instructions prepared
by programmers in a programming language, into a form which can be interpreted and executed
by a computer system, e.g.

 Compliers: These are language processors which translate the entire source code into
object code all at once.
 Interpreters: These are language processors that translate the source code into object
code line by line.
 Assemblers: These are language processors that translate a source code written in
assembly language into object code.

Note: Source code is a program code typed in the text editor or integrated Development
Environment (IDE) while object code refers to a program code that is in machine readable form
(Binary) or a series of 0s and 1s.

Application software
Application software, also known as application packages are programs that are designed to help
the user accomplish specific tasks or set of tasks. Programs included in an application software
package are called application programs and the programmers and the programmers who
prepare application software are referred to as application programmers. Application software
may consist of a single program, such as an image viewer, a small collection of programs (often
called a software package) that work closely together to accomplish a task, such as a spread
sheet or text processing system.

A larger collection (often called a software suite) of related but independent programs and
packages that have a common user interface or shared data format, such as Microsoft Office,
which consists of closely integrated word processor, spreadsheet, database etc., or a software

9 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

system, such as a database management system, which is a collection of fundamental programs


that may provide some service to a variety of other independent applications.

There are literally millions of application software available for a wide range of applications,
ranging from such applications, such as word processing, inventory management, preparation of
tax returns, banking, hospital administration, insurance, publishing, to complex scientific and
engineering applications such as weather forecasting, space shuttle launching, oil and natural gas
exploration, design of complex structures like aircrafts, ships, bridges, sky rise building etc.

Application areas of various application software


Some of the most commonly known application software are:

 Word processing applications: A word processing software enables make use of a


computer system for creating, editing, viewing, formatting, storing, retrieving and
printing documents.
 Spreadsheet applications: A spreadsheet software is a numeric data analysis tool, which
allows users to create a kind of computerized ledger and manipulate numeric data. A
manual ledger is a book having rows and columns, that accounts use for keeping a record
of financial transactions and for preparing financial statements.
 Database applications: A database is a collection of related data stored and treated as a
unit for information retrieval purposes. A database application is a set of one or more
programs, which enable us to create a database, maintain it (add, delete and update its
records), organize its data and to selectively retrieve useful information from it.
 Graphics applications: A graphics application enables us to use a computer system for
creating, editing viewing, storing, retrieving our personal information and planning and
managing our schedules, contacts, financial and inventory of important items. Graphics
applications are used rather than word processors to create flyers, posters, cards and
newsletters because of the ease of using graphics and text together.
 Personal Assistance applications: A personal assistance application allows us to use
personal computers for storing and retrieving our personal information and planning and
managing our schedules, contacts, financial and inventory of important items.

10 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

 Education applications: Education applications allow a computer system to be used as a


teaching and learning tool. A few examples of such applications are those that teach
young children to do mathematics, recognize alphabets and read whole words and
sentences.
 Entertainment applications: Entertainment applications allow a computer to be used as
an entertainment tool. A good example of such application is computer video games.
 Presentation applications: Presentation applications allow sophisticated presentations to
be created for use as overhead projections, 35mm slides, Web pages or as an on-screen
display with the option of incorporating special effects, audio and video clips.
 Web browsing applications: Allow users to access the information on the Internet; to
search for, view and download text and images from the vast collection of data, which
comprises the World Wide Web.
Software Uses Examples
Word processor Typing documents like letters MS Word, Lotus WordPro, Open
Office Writer, Word Perfect,
Word star.
Spreadsheets Calculating budgets MS Excel, Lotus 1-2-3
Databases Keeping records and files MS Access, MySQL, FoxBASE,
Paradox
Presentation tools Creating applications MS PowerPoint
Desktop publishing Designing publications like Adobe PageMaker, MS Publisher,
newspapers and books Adobe In Design
Web browser Web Browsing facilities MS Internet Explorer, Google
Chrome, Mozilla, Safari etc.
Email software Sending and receiving emails Microsoft Outlook, Gmail, Yahoo
mail, Hotmail etc.
Graphics software Designing and manipulation of Core Draw, Photoshop
graphics
Accounting software Accounting and Payroll Sage, QuickBooks etc.
maintenance
Table 1: Common application packages

Logical system architecture


The logical architecture of a computer system below, depicts the relationship among the
hardware, system software, application software and users of a computer system. At the center of
any computer system is the hardware, which comprises of the physical devices/components of
11 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

the computer system. Surrounding the hardware is the system software layer, which constitutes
the operating and programming environment of the computer system.

End users

Figure 1: Relationship between hardware, system software, application software and end users

The software at this layer is designed to hide the hardware details of the system form application
programmers, end users and to coordinate the operations of the various hardware devices for
optimizing the performance of all the devices. Surrounding the system software is the application
software layer, which consists of a wide range of software, which are designed to do a specific
task, or solve a specific problem.
The final layer of users who normally interact with the system via the user interface provided by
the application software. Different application software usually provides different user interfaces.
Hence, how a particular user interacts with the computer system, depends on which application
he/she is using.
Classification according to acquisition
Software is not usually not included in the purchase price of the computer. For most computer
manufactures, the purchase price of a computer includes only the hardware and minimum of
12 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

system software. The customer has to pay extra charges for additional system software and
application software which he or she may wish to purchase.
A desired software may be obtained today in several ways, developing (in house developed or
customized software), buying pre developed (Vendor off the self) software and downloading
public domain software.

In-house developed, bespoke/custom-built/Tailor made/special purpose


Also known as tailor made, these are programs that are uniquely designed and tailored to meet a
particular user’s needs. For example, a bank may decide to manage its banking operations using
a unique program developed by hired programmers. These programs are not available in the
shops and once developed for one company or user they may not address the needs of other
users. Examples of bespoke software include all the Management Information Systems (MIS)

Advantages

 The users get exactly the software they need.


 The software will work exactly the way it is needed to.
 The software will have specifically needed features.
 They can easily be modified to meet user’s needs.

Disadvantages

 It takes a long time to develop such software, between a few months or years
 It is expensive to develop such software
 Experts such as business analysts and programmers may need to be employed at an extra
cost.
 This kind of software has little terms of support online.

Vendor off the self/ generic/general purpose


These are programs developed by software engineers, packaged and then made available for
purchase through a vendor, a distributor or directly from the developer. A developer may bundle
more than one but closely related software into one package to form a suite or integrated
software, e.g. Lotus Suites, Microsoft-Office and Corel Word perfect, as opposed to single
purpose software, e.g. QuickBooks and Sage Pastel. They are developed to be sold to a range of
different customers. They provide many features that the majority of users would want e.g.
13 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

formatting text, creating charts, organizing tables, but also have a vast number of features that a
user many never use. Examples for generic software include, excel, word processor, access etc.

Advantage

 They are relatively cheap than in house developed software


 They are readily available in computer shops
 They can easily be installed and run
 They have minor or no errors since they are thoroughly tested.

Disadvantages

 They may have some features not needed by the user which may take extra storage
 They may require the user to change processes and hardware for compatibility which
may in turn be expensive.
 They may lack some features required by the user

Downloading public domain software


A public domain software is a software, which is available free or for a minimal charge, from the
bulletin board or user group libraries on the internet. Creator of this software obtain distribution
for their products supplying free copies to bulletins boards and user group libraries. Their basic
objective is to popularize the software. Users are encouraged to copy these software, try them out
and freely share with others. Hence, the name public domain software, shareware or user
supported software.

Advantages

 Free to use: The biggest benefit of using open source its free to use, modify and
distribute. The cost associated with open source software is very less when compared to
proprietary software. Operating without the need for expensive licenses can make all the
difference, especially for a small business. Open source software saves companies an
enormous sum every year.
 Continuous improvement: Open source software is evolving all the time as developers’
fix bugs, make tweaks, and add to it. There’s a larger team of people engaged in
improving it and anyone can take the initiative to improve the software.
14 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

 Freedom without limitations: Open source software give one freedom and
independence, there are no limitations and strict restrictions, the only limitation is one’s
imagination. One can modify open source software to adapt to specific user needs.

 Platform for innovations: Open source software does provide great platform for
innovations and creativity.
 No Complex Licensing: Open source software comes with easy licensing models.
Companies that use open source software do not worry about licensing or anti-piracy
measures nor do they have to fear for legal action.
Disadvantages

 Hard to Learn: Open source software is hard to learn. It is not straightforward to use.
Learning open source system like Linux takes time. It takes effort and proper training to
become master and this will take additional time and cost.
 Not user friendly: Open source system are not user friendly. Like Linux based operating
system is difficult to use as compare to Window operating system. Package and software
are install easily in Window but in Linux it is little difficult you need to install through
command line interface.
 Hardware compatibility issue: Many of the latest hardware are incompatible with open
source software.
 Hidden costs: Many companies are initially attracted by the fact that open source
software is free, but it’s important to factor in the cost of deploying and integrating the
software. Consider ongoing maintenance and support costs.
 Risk of abandonment: If key programmers lose interest or no longer have time to work
on the project, then it could be abandoned quite quickly. Open source projects do
sometimes die out and if one has invested a lot into the software it could prove to be a
serious problem if the updates stop.
Classification according to End User License (EUL)
Software may also be classified according to End User License (EUL) as
 Open source or freeware.
 Proprietary

15 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Open source or non-proprietary


Also, known as freeware or shareware, this refers to software whose source code (programmed
set of instructions) is freely made available to users. The users are encouraged to use, modify and
distribute the modified product. Most distribution of Linux operating systems and Open Office
are open source software which are made available to users under General Public License (GPL).
An example of freeware is Grisoft antivirus software known as AVG free edition, Microsoft
essentials etc.

Proprietary software
This is software whose source code is hidden from users. Modifications are only made by the
software manufacture. Proprietary software may be licensed to users at a fee or applied freely.
Windows Microsoft operating systems and office are examples of proprietary software. Free
wave are software products that are freely made available to the user. However, beware of
freeware because some may be malicious software. Examples of proprietary software that a user
is required to pay for license fee include Microsoft Windows operating systems, Microsoft
Office, Adobe PageMaker and Core Draw suite.

Software installation
Installation or setup of a computer program, is the process of making the program ready for
execution. Since the process varies for each program and computer, programs often come with
an installer, a computer program that installs files, such as applications, drivers, or other
software, onto a computer. Some installers are specifically made to install the files they contain;
other installers are general-purpose and work by reading the contents of the software package to
be installed.
Installation may be part of a larger software deployment process. Installation typically involves
code being copied or generated from the installation files to new files on the local computer for
easier access by the operating system. Since code is generally copied or generated in multiple
locations, uninstallation usually involves more than just erasing the program folder, e.g.
registry files and other system code may need to be modified or deleted for a complete
uninstallation.
Some computer programs can be executed by simply copying them into a folder stored on a
computer and executing them. Other programs are supplied in a form unsuitable for immediate
execution and therefore need an installation procedure. Once installed, the program can be
16 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

executed again and again, without the need to reinstall before each execution. Common
operations performed during software installations include:

 Making sure that certain systems requirements are met.


 Checking for existing versions of software.
 Creating and updating programs files and folders.
 Adding configuration data.
 Making software accessible to the user.
 Automatic components Configuration.
 Product activation.
 Product versions update.
Software installation methods/ modes
The installation process depends on the operating system and the program being installed. There
are different methods or modes of installing software on to a computer. They include;
 Attended installation: This is a software installation process which requires the presence
or intervention of the end user. The end user attends to the software by where by making
choices, such as accepting or declining an End User License Agreement (EULA),
specifying preferences such as the installation location, supplying passwords or assisting
in product activation. In graphical environments, installers that offer a wizard-based
interface are common. Attended installers may ask users to help mitigate the errors. For
instance, if the disk in which the computer program is being installed was full, the
installer may ask the user to specify another target path or clear enough space in the disk.
 Silent installation: This is a software installation process which does not display
messages or windows during its progress. All silent installations are unattended but not
all unattended installations are silent. The reason behind a silent installation may be
convenience or subterfuge. Malware is almost always installed silently.
 Unattended installation: This is a software installation process that is performed
without user interaction during its progress or with no user present at all. One of the
reasons to use this approach is to automate the installation of a large number of systems.
An unattended installation either does not require the user to supply anything or has
received all necessary input prior to the start of installation. In this type of installation, it
17 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

is assumed that there is no user to help mitigate errors, e.g. if the installation medium was
faulty, the installer should fail the installation, as there is no user to fix the fault or
replace the medium. Unattended installers may record errors in a computer log for later
review.
 Headless installation: This is a software installation process that is performed without
using a computer monitor. In attended forms of headless installation, another machine
connects to the target machine, e.g. via a local area network and takes over the display
output. Since a headless installation does not need a user at the location of the target
computer, unattended headless installers may be used to install a program on multiple
machines at the same time.
 Scheduled or automated installation: This is a software installation process that runs on
a preset time or when a predefined condition occurs, as opposed to an installation process
that starts explicitly on a user's command, e.g. a system administrator willing to installed
a later version of a computer program that is being used can schedule that installation to
occur when that program is not running. An operating system may automatically install a
device driver (plug and play) for a device that the end user connects. Malware may also
be installed automatically.
 Clean installation: This is a software installation process that is done in the absence of
any interfering elements such as old versions of the computer program being installed or
leftovers from a previous installation, e.g. the clean installation of an operating system is
an installation in which the target disk partition is erased before installation. Since the
interfering elements are absent, a clean installation may succeed where an unclean
installation may fail or may take significantly longer.
 Network installation: This is a software installation process where a program is installed
from a shared network resource.

Factors to consider when selecting software/ software consideration

Although one may have a good computer with the best hardware, the actual determinant of a
computer’s value to the user is the software in it. The following factors should be considered
while selecting software:

18 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

 Authenticity: The term authenticity refers to genuineness, validity and or legitimacy of


an item. When one acquires a software from the vendor, make sure it is an original copy
that is accomplished by the developer’s license and certificate of authenticity. This is
because some people illegally produce pirated copies which is an offence.
 Documentation: It refers to the manuals prepared by the developers having details on
how to install, use and maintain the software. These include installation guide,
maintenance guide and a user guide. This documentation enables the user to work with
the software with minimum guidance.
 User needs: User needs dictates the type of operating system and application programs
that, should be considered for acquisition. For example, if the user needs to type
documents most often he/she would go for a word processor. People with special
disability will require software that recognizes other forms of input like voice and natural
sound. A good example is a software used in mobile phones to store voice and allow the
user to make a call by just calling a name instead of keying in the number.
 Reliability and security: Data security is paramount. A good software especially the
operating system should have security mechanisms that protect data and information
from illegal access.
 User friendliness: One of the most important features normally considered when using a
computer program is its user friendliness. This is a measure how easily the users can be
able to operate the computer. Some programs are more user friendly than others. The ease
to use a program will most likely influence whether the user will prefer it or not.
 Cost: Software tend to be more expensive than hardware. The cost of acquiring software
product must be carefully considered before acquiring them against the benefits that it is
likely to bring. It is also not advisable to always go for freeware because some of them
may be malicious programs.
 Compatibility and system configuration: A software product should be compatible
with the existing hardware, operating system or application programs and should be
readily upgrade.
 Portability: Portability in this aspect refers to whether a program can be copied or
installed in more than one computer. Although most software in the market today are

19 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

portable, some developers produce software which can be installed on one machine only.
This means that if one has twenty computers, one should buy a license for each.

Computer languages
People use language to communicate with one another. Each language consists of sounds and
symbols and contains grammatical rules that govern its use. Programming languages are similar.
A programming language is a standardized communication technique for describing instruction
for a computer. It is a set of written symbols that instruct the computer hardware to perform
specified tasks. Use of these symbols is governed by a set of rules called syntax. Any program
regardless of the language in which it is written consists of a sequence of instructions which are
carried out in a certain order.
Classification/ Level of programming languages
A program can be written in a variety of languages. The languages are broadly classified two
main categories, namely:
Lower level languages
These are programming languages that enable the programmer to write program instructions
using binary digits of 0’s and 1’s. They are computer oriented languages i.e. they directly
manipulated the hardware. Programs are in a computer readable form thus require no translation
or conversion.
Categories of low level languages
There two types of lower level languages namely;
 Machine language: This is a lower level programming language which allows
programmers to write program instruction using binary digits of 0’s and 1’s. Programs
developed in machine language are already in a machine readable form thus require no
translation. Machine language is tedious, complex and prone to many errors which are
hard to detect. Nevertheless, computers can only execute a machine code hence all
program instructions much be translated to machine language.
 Assembly language: This is a lower level programming language which allows
programmers to write program instructions using a set of symbolic operations codes
called mnemonics, abbreviated English words. Although, assembly language is closer to

20 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

machine language the computer does not understand it thus program instructions written
in assembly language must be translated into machine language by an assembler.
Advantages of low level languages
 Programs written in machine language do not need translation and those in assembly
language require minimum effort to translate.
 Programs written in machine language are stable and hardly crash or breakdown once
written.
 Running low level language program is fast since no compilation is needed.
 Low level languages allow programmers to have direct control over computer hardware.
Disadvantages of low level languages
 They are difficult and cumbersome to use and learn.
 Programs written in machine language requires highly trained experts to both develop
and maintain.
 Debugging programs is difficult.
 They are machine dependent
 They are not portable
 Programs written in lower level languages are long
 Do not allow use of program control structures which encourage modules.
High level languages
These are programming language that enable programmers to write program instruction using
simple English like statements. Programs developed in high level languages are portable i.e. can
be used on different computer system. These languages reflect the logic and procedures used in
human algorithm thus the high level language programming is task oriented rather than machine
oriented.
Advantages of high level languages

 They are machine independent


 They are highly portable
 They increase programmer productivity as they free the programmer to concentrate on
what the program instructions should do rather than how the computer will carry out the
instruction.
21 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

 They allow the use of program control structures which help programmers to develop
programs using modular programming.
 Programs written in high level language are shorter
 Programs written in high level language are easier and faster to develop and debug.

Disadvantages of high level languages


 Programs written in high level languages are slow to execute since they have to be
translated into machine readable form.
 Programs written in high level languages crash easily.
 Programs written in high level languages execute slowly.
 Programmers have no direct control over computer hardware.
Generations of computer programming languages

Just like computers, programming languages have evolved over the years. Programming
language generations include:

First generation programming languages


The first generation of programming language or 1GL, is machine language. The instructions in
1GL are made of binary numbers, represented by 1s and 0s. This makes the language suitable for
the understanding of the machine but very much more difficult to interpret and learn by the
human programmer. This language is very much adapted to a specific computer and CPU, and
code portability is therefore significantly reduced in comparison to higher level languages. This
language is said to be a low-level language.
Advantages

 Machine language programs have very fast execution speeds, precisely because the
instructions are executed directly by the CPU.
 Machine language is highly efficient and allows direct control of each operation
 They use the primary memory efficiently.

Disadvantages

 This language is very tedious, difficult and time consuming method of programming.
 It is easy to make an error and very difficult to debug the machine language program.

22 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Second generation programming languages


The second generation programming language, or 2GL is assembly language. Assembly
languages are also classified as low level languages because detailed knowledge of hardware
specifics is required. Assembly language programmers write instructions using meaningful
abbreviations known as mnemonics in place of 0s and 1s. English-like acronyms. Words like
add, sum etc. are used in programs in a way that a human can understand and are subsequently
converted into machine language by an assembler. Assembly languages are specific to computer
and CPU
Advantages

 Assemblers allow for easier debugging of the program, and also introduce more advanced
programming mechanisms such as macro programming and structured programming.
 Assembly language has a closer control over the computer hardware and executes very
efficiently. It is therefore useful for writing operating systems and games which require
fast and efficient use of the CPU.
 Assembly languages save time, reduce errors and find errors easily.

Disadvantages

 Assembly language programs are not portable i.e. they are designed for a specific
machine and a specific microprocessor, this implies that programs cannot be moved from
one computer architecture to another without re-writing the code.
 Coding in this language is time consuming
 Assembly language is machine oriented, i.e. they are designed for the specific make and
model of processor being used.

Third generation programming languages


The third generation of programming language or 3GL is procedural language. They are
languages that use a series of English like words, closer to human language, which are governed
by a strict set of grammatical rules known as syntax, e.g. Pascal, C, C++, Basic, Cobol, Fortran,

23 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Ada etc. This language is said to be a high-level language and widely used by modern
programmers. High level languages programs are translated into machine language by compliers
or interpreters.
Most high level languages are considered to be procedure-oriented, or procedural languages,
because the program instructions comprise lists of steps, procedures, that tell the computer not
only what to do but how to do it.
High-level language statements generate, when translated, a comparatively greater number of
assembly language instructions and even more machine language instructions. Programmers
spends less time developing software with a high level language than with assembly or machine
language because fewer instructions have to be created.

Advantages

 They are user-friendly and problem oriented rather than machine based, allowing the
programmer more time to focus on understanding the user’s needs and designing the
software required meeting those needs.
 They permit faster development of large programs because programs written in high
level languages are shorter than their low-level equivalents, since one statement
translates into many machine code instructions, thus relieving the programmer off the
detailed and tedious task of writing programs in machine language and assembly
languages.
 They are highly portable i.e. they can be used on various types of processors. High
level languages provide programs that can be used on more than one type of machine
with very few changes.

Disadvantages

 They are not as efficient as low level languages in terms of program execution.

Four generation programming languages


The four generation of programming language or 4GL is non- procedural language, so named
because it allows programmers and users to simply specify what the output should be without
describing all the details of how the data should be manipulated to produce that result.

24 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Consequently, a fourth generation language needs approximately one tenth the number of
statements that a high level language need to achieve the same results. Since, a fourth generation
programming language is so much easier to use than a third generation languages, it allows
users, or non-computer professionals to develop software.

A fourth generation language enable users to access data in a database and its data dictionary.
This language is usually used in conjunction with a database and its data dictionary and is often
found as part of a Management Information Systems (MIS) or Decision Support System (DSS).
Four generation languages include:

 Query languages: Query languages allow the user to ask questions about, or retrieve
information from database files by forming requests in normal human language
statements such as English. A database query language permits formulation of queries
that may relate to several records from one or more files. The appropriate records can
then be printed or displayed in suitable format. Examples include, MYSQL, Oracle or
MSQL and Visual Basic.

25 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

 Report generators: A report generator allows data from a database to be extracted and
formatted into reports. It also allows substantial arithmetic and logic operations to be
performed on the data before they are displayed or printed.
 Application generators: Application generators allow the user to reduce the time it takes
to design an entire software application that accepts input, ensures data has been input
accurately, performs complex calculations and processing logic, and outputs information
in the form of reports.
 Decision support systems and financial planning languages: Decision support systems
and financial planning languages combine special interactive computer programs and some
special hardware to allow high level managers to bring data and information together from
different sources and manipulate it in new ways.
 Some microcomputer application software: Some microcomputers application software
such as Lotus 1-2-3, database managers, such as dbase IV and integrated packages such as
symphony, can be used to create specialized applications.
Advantages
 Fourth generation languages increase the speed of developing programs.
 They Minimize users’ efforts to obtain information from computer.
 They decrease skill level required of users.
 They reduce errors or make programs that are easy to change.

Disadvantages

 Programs developed in fourth generation programming languages run slower than those
of earlier language generations since their machine code equivalent is considerably
longer and more complicated to execute.
 Fourth generations programming language are Less flexible that other languages

Five generation programming languages


The five generation of programming language or 4GL is non- procedural language
5th Generation Language (5 GLs)
The fifth generation of programming language or 5GL or visual programming is natural
language. It provides a visual or graphical interface, called a visual programming environment
26 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

for creating source codes. Fifth generation programming allows people to interact with
computers without needing any specialized knowledge.
People can talk to computers and the voice recognition systems can convert spoken sounds into
written words, examples include Prolog, Mercy and Lips, Clout, Q and A, and Savvy retriever
(for use with databases) and HAL (Human Access Language). The use of natural language
touches on expert systems, computerized collection of the knowledge of many human experts in
a given field, and artificial intelligence, independently smart computer systems.
Advantages

 Fourth generation languages have a friendly interface.


 They are easier to use than older high level languages.
 They closer to the English language hence easily understood.

Disadvantages

 Programs run slower than those of earlier language generations since their machine
language code is longer and complex.

Popular programming languages

 BASIC: The BASIC designates Beginners All-Purpose Symbolic Instruction Code. This
is a very systematic high level programming language and therefore easy to learn and
use, hence suitable for the learners. BASIC is a general purpose high level language,
implemented in most microcomputers.
 COBOL: COBOL designates, Common Business Oriented Language. It was developed
for business and commercial data processing, where voluminous data are to be handled
because it supports powerful data and control structures and is widely-used language
because it is easy to read.
 FORTRAN: This designates FORmula TRANslation. It was the first high level language
developed in 1956 by IBM development group for use on an IBM 704 computer. Its
prime purpose was to solve mathematical and scientific problems. It provided an easier
way of writing scientific and engineering applications.
27 Complied by Mr. P.K Munene
ICT Lesson 4 – Computer software

 PASCAL: This is a general purpose high level programming language which is named
after Blaise Pascal, a French mathematician. It was developed as a tool for teaching
programming. Today PASCAL is the most widely used language for teaching
programming.
 C: This is a powerful language that, like Assembly Language, permits direct control over
the hardware, but like high level languages it also has powerful commands that permit the
rapid development of programs.
 LISP: This designates LIStProcessing and is used in applications such as game playing,
theorem proving and similar non numeric applications requiring logical rather than
numerical operations. It is widely used by researchers working in the areas of patterns
recognition and artificial intelligence
 PROLOG: This designates PROgramming in LOGic and is a language developed from
LISP and is designed for use with Expert systems and Artificial Intelligence. It is used to
solve problems which involve objects and relationships between objects.
 LOGO: This language was designed for educational use in which children can explore
and developed concepts through programming the movement of a turtle or pen. It has no
commercial application

Uses of programming languages


Not any computer programming language can do anything. There are limitations and actually,
different languages are used in different tasks. Programming languages in relation to tasks
performed can be broadly categorized into two, web development languages and software
development languages.

Web development languages


These are programming languages used for creating and editing pages on the web. Can do
anything from putting plain text on a webpage, to accessing and retrieving data from a database.
They vary greatly in terms of power and complexity.
 HTML: Hyper Text Markup Language. The core language of the World Wide Web that
is used to define the structure and layout of web pages’ by using various tags and
attributes. Although a fundamental language of the web the web, HTML is static i.e.

28 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

content created with it does not change. HTML is used to specify the content a webpage
will contain, not how the page functions.
 XML: Extensible Markup Language. A language developed by the W3C which works
like HTML, but unlike HTML, allows for custom tags that are defined by programmers.
XML allows for the transmission of data between applications and organization through
the use of custom tags.
 JavaScript: This is a language developed to provide dynamic and interactive content on
web pages. With java script it is possible to communicate with HTML, create animations,
create calculators, and validate forms and more. JavaScript is often confused with Java,
but they are two different languages.
 VBscript: Visual Basic Scripting Edition. A language that works only in the Internet
Explorer web browser and web browsers based on the internet explorer engine. VBscript
is based on Visual Basic, but it is much simpler.
 PHP: Hypertext Pre-processor. A powerful language used for many tasks such as data
encryption, database access and form validation.

Software languages
These are programs used for creating executable programs. Can create anything from simple
console programs that print some text to the screen to entire operating systems. They also vary
greatly in terms of power and complexity.

 C: An advanced programming language used for software application development. It is


originally designed to be a systems programming language but it has proven applicable in
the development of various software applications such as business programs, engineering
programs and even games
 C++: It is a descendant of the C language. The difference between the two languages is
that C++ is object oriented. C++ is very popular for the development of graphical
applications.
 Visual Basic: A language based on the BASIC language. Visual Basic id used for
creating Windows applications. The VBScript language is based on Visual Basic.
 JAVA: A powerful and flexible language that can be used to create applets (a program
that is executed from within another program) that run inside web pages as well as

29 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

software applications. Things you can do with java include interacting with the user,
creating graphical programs, reading from files and more.
 C# (C sharp): A hybrid of C and C++, it is a Microsoft programming language
developed to compete with Sun's Java language. C# is an object-oriented programming
language based on C++ with elements from Visual Basic and Java and used with XML-
based Web services on the .NET platform and designed for improving productivity in the
development of Web applications.
 J2ME: Java 2 Platform Micro Edition is a technology that allows programmers to use the
Java programming language and related tools to develop programs for mobile wireless
information devices such as cellular phones and personal digital assistants (PDAs).

Choosing of a programming language


The following factors are taken into consideration when choosing a programming language:

 Execution time: Application that requires quick responses are best programmed in
machine code or assembly language. The High-level languages will not be suitable for
their translation and subsequent executions are usually slow.
 Development time: High level languages are easy to read, understand and develop hence
less development time. The machine code and assembly language programming on the
other hand are time consuming because they are relatively difficult to read, understand
and develop.
 Maintenance: Programs are developed to solve specific problems and the problems
environments keep on changing and hence the programs are also changed to meet the
enhanced functional environment. The activity of incorporating more routines onto a
program or removing the obsolete routines or just modifying the routines that are existing
to make a program adapt to a functionally enhanced environment is described as
program maintenance.
 Availability of programmers: The programming language selected should have a pool
of readily available programmers to ease maintenance and reduce development time.

30 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

Emerging trends in computer software


 Open source software: Using open source, making your projects open source, and being
an active part of the open source community is a necessary way to keep up with
technology and be a part of a larger community.

References
1. C.S French (2001) Data processing and information technology. Martins the printers Ltd.

2. N.A Saleemi (2000) Information technology simplified. N.A Saleemi publishers.

3. Dr John Onunga (2007) Introduction to microcomputers and programming. Mariwa


publishers Ltd.

4. S. Mburu and G. Chemwa (2009) Computer Studies Book 1. Longhorn publishers.

5. Dr John Onunga and Renu Shah (2008) Computer Studies Book 1. Mariwa publishers
Ltd.

6. D.P Nagpal (2015) Computer fundamental. Nirja Publishers.

31 Complied by Mr. P.K Munene


ICT Lesson 4 – Computer software

32 Complied by Mr. P.K Munene

You might also like