Install-Computer-Software-Cbet Notes

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

lOMoARcPSD|42620400

Install Computer Software CBET

diploma ict (Rift Valley Institute of Science and Technology)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)
lOMoARcPSD|42620400

By Sammy Koech

TVET CURRICULUM DEVELOPMENT, ASSESSMENT AND CERTIFICATION


COUNCIL (TVET CDACC)

NATIONAL COMPETENCY BASED CURRICULUM


FOR

ICT TECHNICIAN
LEVEL 5
INSTALL COMPUTER SOFTWARE

RIFT VALLEY NATIONAL POLYTECHNIC

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

UNIT: INSTALL COMPUTER SOFTWARE

UNIT CODE: IT/CU/ICT/CR/2/5

Relationship to Occupational Standards


This unit addresses the unit of competency: Installation of Computer Software

Duration of Unit: 260 hours

Unit Description:
This unit describes the competencies required in installing computer software. It involves
Identification of software to be installed, installation of the software, and configuration of the
software, software testing, user training and software maintenance.

Summary of Learning Outcomes:

1. Identification of software to be installed


2. Install the software
3. Configure the software
4. Test software functionality
5. Perform user training

Learning Outcomes, Content and Suggested Assessment Methods

Suggested Assessment
Learning Outcome Content
Methods
1. Identify software  Practical
 Definition of software
to be installed  Oral questioning
 Classification of software  Written test

 System

 Application

 Criteria for selection

 Software Acquisition Methods

ii

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

 Off the shelf

 Open source

 Operating systems

 Types of operating systems

 Single and multi-user

 Single and multitasking

 Real time

 Distributed

 Batch

 Functions of operating systems

 Device management

 Memory management

 Storage management

 Process control

 Security Management

 Types of operating system interfaces

 Command-line/character user

 Menu driven

 Graphical user Interface

2. Install the  Practical


 Define software installation
software  Observation
 Installation media  Written tests
 Writing reports
 Software installation legal requirements

iii

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

 Existing data protection


 Types of software installation
 Attended

 Unattended

 Headless

 Schedule/Automated

 Clean/Updating

 Network

 Software installation and registration


 Software configuration
 Importance of registration
3. Software  Practical
 Software configuration components
configuration  Observation
management  software configuration  Written tests
identification  Writing reports

 software configuration control
 software configuration status
accounting and auditing
 Reasons for software configuration
 Tracking
 Controlling

 Importance of software configuration


management
 Identification
 Management
 Auditing and accounting
4. Test software  Practical
 Define software installation testing
iv

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

functionality  Oral
 Techniques Of Software Testing
 Short tests
 Boundary value analysis  Learner portfolio of
evidence.
 Equivalence class partitioning
 Error Guessing
 Installation checklist
 Functional Testing
 Mainline functions

 Basic Usability

 Accessibility

 Error Conditions

 Generate test report

Perform user  Practical


 Keys to Developing an End User Training
training  Oral
Plan
 Short tests
 Determine user skill set  Learner portfolio of
evidence.
 Creating a training program

 Setting training goals

 Training delivery methods

 Assessing end-user needs

 Training feedback

Suggested Methods of Delivery


 Presentations and practical demonstrations by trainer;
 Guided learner activities and research to develop underpinning knowledge;
 Supervised activities and projects in a workshop;
The delivery may also be supplemented and enhanced by the following, if the opportunity
allows:
 Visiting lecturer/trainer from the ICT sector;
 Industrial visits.
v

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Recommended Resources
Tools
Diagnostic tools
Utility programs
Processor and memory optimizers
Wise Installer
CruiseControl.Net
Install Aware

Equipment
Computer
Software
External Hard disk
Flash disk
CD/DVD
Materials and supplies
 Digital instructional material including DVDs and CDs;
 Operating system
 Machines
 Power
 Application software

Reference materials
Manufacturers manuals

vi

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

CHAPTER ONE
1.1. Identify Software to Be Installed
It is precise that a computer can not work without the operating system, as it is the basic running
platform for every computing devices and nearly every computer program requires an operating
system to function. The two most common operating systems are Microsoft Windows, Apple's
mac OS and Android for small computing devices.
For this discipline, Microsoft Windows operating system will be our identical system software.
1.2. Definition of software

Software: It is defined as sets of programs or collection of instructions, data, or computer


programs that are used to run machines and carry out particular activities. Computer Software
is commonly known as programs or apps, consists of all the instructions that
tell the hardware how to perform a task.

These instructions come from a software developer in the form that will be
accepted by the platform (operating system + CPU) that they are based on,
for example, a program that is designed for the Windows operating system
will only work for that specific operating system. Compatibility of software
will vary as the design of the software and the operating system differ.
Software that is designed for Windows XP may experience a compatibility
issue when running under Windows 2000 or NT.

 Software compatibility is a characteristic of software components or


systems which can operate satisfactorily together on the same
computer, or on different computers linked by a computer network. It
is possible that some software components or systems may
Computer
be compatible in one environment and incompatible in another.
Software
1.3. Computer Software Classification
Software is capable of performing many tasks, as opposed to hardware which
can only perform mechanical tasks that they are designed for. Software
provides the means for accomplishing many different tasks with the same
Application
System
basic hardware. Practical computer systems divide software systems into two
Programs
Software
major classes:

Operati Utility/Device Generalised/ Proprietor/client


ng Language 7
Translator /Diagnostic Off-the-Shelf based/vendor/custo
System tools mised
e.g.
Assembler,
Interpreter, Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)
lOMoARcPSD|42620400

By Sammy Koech

System software: It’s also known as Primary Software which help in run the
computer hardware and computer system itself. System software includes
operating systems, device drivers, diagnostic tools and more. System
software is almost always pre-installed on your computer.

a. Primary/Machine Software-An operating system (OS) is a


collection of Programs that manages computer hardware resources and
provides common services for computer programs. The operating
system is a vital component of the system software in a computer
system

An Operating System (OS) is an interface between a computer user


and computer system. An operating system is a Primary Software/
machine software which must be User-friendly, performs all the
basic tasks like file management, memory management, process
management, handling input and output, and controlling peripheral
devices such as disk drives and printers. Some popular Operating
Systems include Linux, Windows, OS X, VMS, OS/400, AIX, z/OS, etc.

 User-friendly-is a terminology used to describes a hardware


device or software interface that is easy to use and understand
mostly by its GUI interfaces provided e.g. Windows and Mac
operating systems are more friendly than the previous DOS
systems; simple, clean, reliable and Intuitive)

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

b. Device Drivers- A device driver is a special kind of software program that controls
a specific hardware device attached to a computer. Device drivers are essential for a
computer to work properly. These programs may be compact, but they provide the all-
important means for a computer to interact with hardware, for everything from mouse,
keyboard and display -- user input/output -- to working with networks, storage and
graphics.
Drivers are hardware-dependent and operating-system-specific. They usually provide the
interrupt handling required for any necessary asynchronous time-dependent hardware
interface.

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

A driver communicates with the device through the computer bus or communications
subsystem to which the hardware connects. Once the device sends data back to the driver,
the driver may invoke routines in the original calling program. When a calling program
invokes a driver's routine, the driver issues the commands to the device.

c. Utility Program- is a system application that executes a specific task, generally


pertaining to optimal maintenance or operation of the system resources. Operating
systems such as Windows, macOS and Linux come with their own set of utility programs
to maintain and execute different utility functions such as formatting, compressing,
scanning, exploring and much more. It also assists with the management of computer
functions, resources and files. You can ensure complete password protection and keep
your systems virus free using different utility programs e.g. Antivirus, Registry,
Command Prompt, Defragmenter etc.

d. Diagnostic Tools- are pieces of software that give you the knowledge you need to be able
to potentially repair your own computer. Some of these tools come built in to your
operating system while others come from 3rd party software developers. Either way,
these tools help save you time and money e.g. Task manager, Windows resource monitor
etc

10

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Computer diagnostic tools can be used to scan your computer’s hard drive, check your
ram for errors, check CPU temp and give you information about any other devices
connected to your computer. These tools are made to find problems that may be
disrupting your computer’s normal performance. Once a problem is found, you can then
plan your repair.

Application software: It’s also known as Secondary Software which Allows


users to accomplish one or more tasks. It includes word processing, web
browsing and almost any other task for which you might install. Some
application software is pre-installed on most computer systems.

1.4. Software Acquisition Methods


Software is generally created (written) in a high-level programming
language, one that is more or less readable by people. These high-level
instructions are converted into "machine language" instructions, represented
in binary code, before the hardware can "run the code". When you install
software, it is generally already in this machine language, binary, form. They
are categorised mainly as; Off-the-Shelf and Customised programs

a. Generalized Programs- also known as Off-the-shelf software is a


product that is entirely readymade and has expanded functionalities
that satisfy a large number of users. They aren’t one-of-a-kind, but
they are universal and designed for mass commercial use, so they can
usually be easily integrated with existing systems without requiring
complicated configurations.

A diverse set of software modules allows you to meet various


requirements, but more than standard features are required for
complex specific tasks. You can customize them, but most off-the-shelf
products can only partially meet particular needs. They include
Microsoft office, Antivirus and any app that you buy in the shop.

b. Custom Software- also known as Open-source, it demonstrates the most personalized


approach, as tailor-made software can specifically consider business demands. The
entrepreneur should assemble or hire a dedicated team to develop an application for
specific requirements to obtain it.

11

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Assignment 1. Advantages and disadvantages Generalised and


Customised programs

1.4. Software and Hardware Selection Criteria


The task of determining a suitable computer system for an individual or organisation is not easy.
A good computer system must meet all the requirements of the user. Therefore, before selecting
the computer system to implement, it is advisable to do an analysis of all the requirements
necessary in order to avoid acquiring a system that may disappoint the users.
Requirements analysis for selecting a computer system should cover the following:
1. Identifying all user requirements.
2. Evaluating hardware requirements that will meet the users needs.
3. Evaluating software requirements that will meet the users needs. The computer hardware and
software to be acquired should therefore be able to meet all needs of the data processing
environment that, they are intended for effectively.
 Hardware considerationsO
Some factors considered when selecting computer hardware are;
Processor speed
The processing power and speed of a computer mainly depends on the processor speed.A good
computer must have high processor speed.
Memory capacity
Although, a computer may have a very fast processor, it may not perform as expected if it has
low memory capacity as expected . Because of the current multimedia driven applications, a

12

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

good computer should have sufficient memory to handle


the heavy applications that require a lot of memory space in order to run. A computer with at
least 128 MB of RAM is recommended for most contemporary applications.
RAM is packaged as either dual in-line memory Module. (DIMM) or single in-line memory
module (SIMM).
Therefore, before one buys a memory module for the computer the following factors have to be
considered:
1. The type of module supported by the computers motherboard.
2. Does the motherboard have an empty memory slot?
3. Will the module work well (be compatible)with the other existing modules on the
motherboard?
4. What is the capacity of the module?
Warranty
A warranty is an agreement between the buyer and the seller that spells out terms and conditions
of, after selling a product incase of failure or malfunction. The most important consideration to
make is whether the seller is ready to actually provide after sales services. On top of the actual
cost of the item, most manufacturers and suppliers include a certain percentage charge to cover
the warranty.
A good warranty should cover the following points:
1. Scope of cover for example six months, one year etc.
2. Callout response and liability agreement. For example how long should the supplier take to
repair a fault or replace the product, and if he/she delays who bears the cost.
3. Preventive maintenance for example regularity of service, at intervals etc.
Cost
The cost of a computer system depends on:
1. Its processing capability.
2. Whether it is branded or a clone. Branded computers are more expensive than their equivalent
clones. This is because of their reliability and good after sale services.
3.Its size. Portable computers are more expensive than their desktop equivalents because of the
superior technology involved in manufacturing smaller components without losing performance
abilities. It is important to do a market survey from magazines, newspapers, and electronic media
or visit a number of vendors to compare prices before purchasing a computer. Computer
information and technology exhibitions also enlighten a buyer on current trends and costs.
Upgradeability and compatibility
When buying a computer, the best option would be to get one that can easily be upgraded to
accommodate emergent technologies. For examples older computers cannot support large hard
disks available in the market today hence, difficulty in upgrading them because smaller hard
disks are no longer in circulation

13

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Portability
The size of electronic devices including computers has become a major consideration because
smaller devices enhance mobility.
User needs
When selecting computer hardware, consider the unique needs of the user. For example if the
users have special disability like in ability to use their hands, consider buying input devices that
capture data through voice input. The user needs also determine the type of data that will be
processed hence, the choice of the type of hardware most appropriate to satisfy the needs. For
example in a supermarket a special computerized devise called a point of sale (POS) terminal is
most suitable to record transactions.
Other considerations
Other considerations for selecting computer hardware are;
Monitor
Depending on preference, your choice for a monitor may depend on size, resolution and the
technology used to make it. Currently flat panel displays have become a new market standard
quickly replacing the cathode ray tube (CRT).
Multimedia capability
This is the combination of video, audio, text and images to provide an interactive, creative and
effective way of producing and communicating information. A multimedia system should have
speakers, CD/DVD drive, sounds card and a SVGA monitor. It should also have software that
supports multimedia capability.
 Software considerations
Although one may have a good computer with the best hardware, the actual real determinant of a
computers value to the user is the software in it that can run to solve the day to day data and
information processing needs. The following factors should be considered when selecting
software:
Authenticity
The term authenticity refers to genuineness, validity and or legitimacy of an item. When you
acquire software from the vendor, make sure it is an original copy that is accompanied by the
developers 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 developer 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
The needs of the user determines 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.
14

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Peoplewithspecialdisabilitywillrequiresoftwarethatrecognizesotherforms of input like voice and


natural sound. A good example is 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
People are more comfortable with software that offers good security to confidential and private
information.
User friendliness
One of the most important features normally considered when using a computer program is its
user-friendliness. This is a measure of how easily the users can be able to operate the computer.
Some programs are more user friendlier than others.
A lot of research and effort has been dedicated in trying to come up with more user-friendly
software. The ease of use of a program will most likely influence whether the user will prefer it
or not.
Cost
The cost of software is perhaps one of the most controversial issues that must be considered
carefully. One cannot just go for software because it is cheap. Many other factors may force a
person to buy far much more expensive software even with cheaper alternatives available.
However it is illogical to buy expensive software if there is a reliable cheaper alternative that will
meet ones needs.
Incase the off-the-shelf software does not fit the needs of the users it would be advisable to
develop in-house software solution seven though they may be a bit more expensive.
Compatibility and system configuration
Software compatibility refers to the ability of the computer to run the software depending on the
system setup (configuration). For example some software may only run on a computer that has
32 MB of RAM and above. Any computer with lower than this, will be said to be incompatible.
It is important that one reads the installation guide and system requirements that comes with the
software in order to avoid disappointment.
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 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.
1.5. Operating system
An operating system is a program that acts as an interface between the user and the computer
hardware and controls the execution of all kinds of programs and the following are some of
important functions of an operating System.
• Memory Management
• Processor Management
• Device Management
• File Management
15

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• Security
• Control over system performance
• Job accounting
• Error detecting aids
• Coordination between other software and users
Objectives of Operating System
The objectives of the operating system are –
• To make the computer system convenient to use in an efficient manner.
• To hide the details of the hardware resources from the users.
• To provide users a convenient interface to use the computer system.
• To act as an intermediary between the hardware and its users, making it
easier for the users to access and use other resources.
• To manage the resources of a computer system.
• To keep track of who is using which resource, granting resource requests,
and mediating conflicting requests from different programs and users.
• To provide efficient and fair sharing of resources among users and
programs.

1.6. Functions or Characteristics of Operating System


Here is a list of some of the most prominent characteristic features of Operating Systems –

• Memory Management – Keeps track of the primary memory, i.e. what part
of it is in use by whom, what part is not in use, etc. and allocates the
memory when a process or program requests it.
• Processor Management – Allocates the processor (CPU) to a process and
deallocates the processor when it is no longer required.
• Device Management – Keeps track of all the devices. This is also called
I/O controller that decides which process gets the device, when, and for
how much time.
• File Management – Allocates and de-allocates the resources and decides
who gets the resources.
• Security – Prevents unauthorized access to programs and data by means of
passwords and other similar techniques.
• Job Accounting – Keeps track of time and resources used by various jobs
and/or users.
• Control over System Performance – Records delays between the request
for a service and from the system.
• Interaction with the Operators – Interaction may take place via the console
of the computer in the form of instructions. The Operating System
acknowledges the same, does the corresponding action, and informs the
operation by a display screen.

16

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• Error-detecting Aids – Production of dumps, traces, error messages, and


other debugging and error-detecting methods.
• Coordination between Other Software and Users – Coordination and
assignment of compilers, interpreters, assemblers, and other software to
the various users of the computer systems.

1.7. Types of Operating Systems


Operating systems were there from the very first computer generation and they keep evolving
with time. In this chapter, we will discuss some of the important types of operating systems
which are most commonly used.
1. Batch Operating System –
This type of operating system do not interact with the computer directly. There is an operator
which takes similar jobs having same requirement and group them into batches. It is the
responsibility of operator to sort the jobs with similar needs.

Advantages of Batch Operating System:


• It is very difficult to guess or know the time required by any job to complete. Processors
of the batch systems knows how long the job would be when it is in queue
• Multiple users can share the batch systems
• The idle time batch system is very less
• It is easy to manage large work repeatedly in batch systems
Disadvantages of Batch Operating System:
• The computer operators should be well known with batch systems
• Batch systems are hard to debug
• It is sometime costly
• The other jobs will have to wait for an unknown time if any job fails
Examples of Batch based Operating System: Payroll System, Bank Statements etc.

2. Time-Sharing Operating Systems –

17

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Each task has given some time to execute, so that all the tasks work smoothly. Each user gets
time of CPU as they use single system. These systems are also known as Multitasking Systems.
The task can be from single user or from different users also. The time that each task gets to
execute is called quantum. After this time interval is over OS switches over to next task.

Advantages of Time-Sharing OS:


• Each task gets an equal opportunity
• Less chances of duplication of software
• CPU idle time can be reduced
Disadvantages of Time-Sharing OS:
• Reliability problem
• One must have to take care of security and integrity of user programs and data
• Data communication problem
Examples of Time-Sharing OSs are: Multics, Unix etc.
3. Distributed Operating System –
These types of operating system is a recent advancement in the world of computer technology
and are being widely accepted all-over the world and, that too, with a great pace. Various
autonomous interconnected computers communicate each other using a shared communication
network. Independent systems possess their own memory unit and CPU. These are referred as
loosely coupled systems or distributed systems. These systems processors differ in sizes and
functions. The major benefit of working with these types of operating system is that it is always
possible that one user can access the files or software which are not actually present on his
system but on some other system connected within this network i.e., remote access is enabled
within the devices connected in that network.

18

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Advantages of Distributed Operating System:


• Failure of one will not affect the other network communication, as all systems are
independent from each other
• Electronic mail increases the data exchange speed
• Since resources are being shared, computation is highly fast and durable
• Load on host computer reduces
• These systems are easily scalable as many systems can be easily added to the network
• Delay in data processing reduces

Disadvantages of Distributed Operating System:


• Failure of the main network will stop the entire communication
• To establish distributed systems the language which are used are not well defined yet
• These types of systems are not readily available as they are very expensive. Not only that
the underlying software is highly complex and not understood well yet
Examples of Distributed Operating System are- LOCUS etc.
4. Network Operating System –
These systems runs on a server and provides the capability to manage data, users, groups,
security, applications, and other networking functions. These type of operating systems allows
shared access of files, printers, security, applications, and other networking functions over a
small private network. One more important aspect of Network Operating Systems is that all the
users are well aware of the underlying configuration, of all other users within the network, their
individual connections etc. and that’s why these computers are popularly known as tightly
coupled systems.

19

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Advantages of Network Operating System:


• Highly stable centralized servers
• Security concerns are handled through servers
• New technologies and hardware up-gradation are easily integrated to the system
• Server access are possible remotely from different locations and types of systems
Disadvantages of Network Operating System:
• Servers are costly
• User has to depend on central location for most operations
• Maintenance and updates are required regularly
Examples of Network Operating System are: Microsoft Windows Server 2003, Microsoft
Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD etc.
5. Real-Time Operating System –
These types of OSs serves the real-time systems. The time interval required to process and
respond to inputs is very small. This time interval is called response time.
Real-time systems are used when there are time requirements are very strict like missile systems,
air traffic control systems, robots etc.Two types of Real-Time Operating System which are as
follows:
• Hard Real-Time Systems:
These OSs are meant for the applications where time constraints are very strict and even the
shortest possible delay is not acceptable. These systems are built for saving life like automatic
parachutes or air bags which are required to be readily available in case of any accident. Virtual
memory is almost never found in these systems.
• Soft Real-Time Systems:
These OSs are for applications where for time-constraint is less strict.

20

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Advantages of RTOS:
• Maximum Consumption: Maximum utilization of devices and system, thus more output
from all the resources
• Task Shifting: Time assigned for shifting tasks in these systems are very less. For
example in older systems it takes about 10 micro seconds in shifting one task to another and in
latest systems it takes 3 micro seconds.
• Focus on Application: Focus on running applications and less importance to applications
which are in queue.
• Real time operating system in embedded system: Since size of programs are small, RTOS
can also be used in embedded systems like in transport and others.
• Error Free: These types of systems are error free.
• Memory Allocation: Memory allocation is best managed in these type of systems.
Disadvantages of RTOS:
• Limited Tasks: Very few task run at the same time and their concentration is very less on
few applications to avoid errors.
• Use heavy system resources: Sometimes the system resources are not so good and they
are expensive as well.
• Complex Algorithms: The algorithms are very complex and difficult for the designer to
write on.
• Device driver and interrupt signals: It needs specific device drivers and interrupt signals
to response earliest to interrupts.
• Thread Priority: It is not good to set thread priority as these systems are very less prone to
switching tasks.
Examples of Real-Time Operating Systems are: Scientific experiments, medical imaging
systems, industrial control systems, weapon systems, robots, air traffic control systems, etc.
Program execution
Operating systems handle many kinds of activities from user programs to system programs like
printer spooler, name servers, file server, etc. Each of these activities is encapsulated as a
process.
A process includes the complete execution context (code to execute, data to manipulate,
registers, OS resources in use). Following are the major activities of an operating system with
respect to program management −
• Loads a program into memory.
• Executes the program.
• Handles program's execution.
• Provides a mechanism for process synchronization.
• Provides a mechanism for process communication.
• Provides a mechanism for deadlock handling.
I/O Operation

21

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

An I/O subsystem comprises of I/O devices and their corresponding driver software. Drivers hide
the peculiarities of specific hardware devices from the users.
An Operating System manages the communication between user and device drivers.
• I/O operation means read or write operation with any file or any specific I/O device.
• Operating system provides the access to the required I/O device when required.
File system manipulation
A file represents a collection of related information. Computers can store files on the disk
(secondary storage), for long-term storage purpose. Examples of storage media include magnetic
tape, magnetic disk and optical disk drives like CD, DVD. Each of these media has its own
properties like speed, capacity, and data transfer rate and data access methods.
A file system is normally organized into directories for easy navigation and usage. These
directories may contain files and other directions. Following are the major activities of an
operating system with respect to file management −
• Program needs to read a file or write a file.
• The operating system gives the permission to the program for operation on file.
• Permission varies from read-only, read-write, denied and so on.
• Operating System provides an interface to the user to create/delete files.
• Operating System provides an interface to the user to create/delete directories.
• Operating System provides an interface to create the backup of file system.

Communication
In case of distributed systems which are a collection of processors that do not share memory,
peripheral devices, or a clock, the operating system manages communications between all the
processes. Multiple processes communicate with one another through communication lines in the
network.
The OS handles routing and connection strategies, and the problems of contention and security.
Following are the major activities of an operating system with respect to communication −
• Two processes often require data to be transferred between them
• Both the processes can be on one computer or on different computers, but are connected
through a computer network.
• Communication may be implemented by two methods, either by Shared Memory or by
Message Passing.

Error handling
Errors can occur anytime and anywhere. An error may occur in CPU, in I/O devices or in the
memory hardware. Following are the major activities of an operating system with respect to error
handling −
• The OS constantly checks for possible errors.
• The OS takes an appropriate action to ensure correct and consistent computing.
22

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Resource Management
In case of multi-user or multi-tasking environment, resources such as main memory, CPU cycles
and files storage are to be allocated to each user or job. Following are the major activities of an
operating system with respect to resource management −
• The OS manages all kinds of resources using schedulers.
• CPU scheduling algorithms are used for better utilization of CPU.
Protection
Considering a computer system having multiple users and concurrent execution of multiple
processes, the various processes must be protected from each other's activities.
Protection refers to a mechanism or a way to control the access of programs, processes, or users
to the resources defined by a computer system. Following are the major activities of an operating
system with respect to protection −
• The OS ensures that all access to system resources is controlled.
• The OS ensures that external I/O devices are protected from invalid access attempts.
• The OS provides authentication features for each user by means of passwords.

Multitasking
Multitasking is when multiple jobs are executed by the CPU simultaneously by switching
between them. Switches occur so frequently that the users may interact with each program while
it is running. An OS does the following activities related to multitasking −
• The user gives instructions to the operating system or to a program directly, and receives
an immediate response.
• The OS handles multitasking in the way that it can handle multiple operations/executes
multiple programs at a time.
• Multitasking Operating Systems are also known as Time-sharing systems.
• These Operating Systems were developed to provide interactive use of a computer system
at a reasonable cost.
• A time-shared operating system uses the concept of CPU scheduling and
multiprogramming to provide each user with a small portion of a time-shared CPU.
• Each user has at least one separate program in memory.

• A program that is loaded into memory and is executing is commonly referred to as a


process.
• When a process executes, it typically executes for only a very short time before it either
finishes or needs to perform I/O.
• Since interactive I/O typically runs at slower speeds, it may take a long time to complete.
During this time, a CPU can be utilized by another process.

23

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• The operating system allows the users to share the computer simultaneously. Since each
action or command in a time-shared system tends to be short, only a little CPU time is needed for
each user.
• As the system switches CPU rapidly from one user/program to the next, each user is
given the impression that he/she has his/her own CPU, whereas actually one CPU is being shared
among many users.

Multi-tasking system’s working –


• In a time sharing system, each process is assigned some specific quantum of time for
which a process is meant to execute. Say there are 4 processes P1, P2, P3, P4 ready to execute.
So each of them are assigned some time quantum for which they will execute e.g. time quantum
of 5 nanoseconds (5 ns). As one process begins execution (say P2), it executes for that quantum
of time (5 ns). After 5 ns the CPU starts the execution of the other process (say P3) for the
specified quantum of time.
• Thus the CPU makes the processes to share time slices between them and execute
accordingly. As soon as time quantum of one process expires, another process begins its
execution.
• Here also basically a context switch is occurring but it is occurring so fast that the user is
able to interact with each program separately while it is running. This way, the user is given the
illusion that multiple processes/ tasks are executing simultaneously. But actually only one
process/ task is executing at a particular instant of time. In multitasking, time sharing is best
manifested because each running process takes only a fair quantum of the CPU time.
In a more general sense, multitasking refers to having multiple programs, processes, tasks,
threads running at the same time. This term is used in modern operating systems when multiple
tasks share a common processing resource (e.g., CPU and Memory).

• As depicted in the above image, at any time the CPU is executing only one task while
other tasks are waiting for their turn. The illusion of parallelism is achieved when the CPU is
reassigned to another task. i.e all the three tasks A, B and C are appearing to occur
simultaneously because of time sharing.
• So for multitasking to take place, firstly there should be multiprogramming i.e. presence
of multiple programs ready for execution. And secondly the concept of time sharing.
24

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Multithreading
Multi-threading – is an extension of multitasking. A thread is a basic unit of CPU utilization.
Multi-threading is an execution model that allows a single process to have multiple code
segments (i.e., threads) running concurrently within the “context” of that process.e.g. VLC media
player, where one thread is used for opening the VLC media player, one thread for playing a
particular song and another thread for adding new songs to the playlist.
Multi-threading is the ability of a process to manage its use by more than one user at a time and
to manage multiple requests by the same user without having to have multiple copies of the
program.
Multi-threading system’s working –
Example 1 –
• Say there is a web server which processes client requests. Now if it executes as a single
threaded process, then it will not be able to process multiple requests at a time. Firstly one client
will make its request and finish its execution and only then, the server will be able to process
another client request. This is really costly, time consuming and tiring task. To avoid this, multi-
threading can be made use of.
• Now, whenever a new client request comes in, the web server simply creates a new
thread for processing this request and resumes its execution to hear more client requests. So the
web server has the task of listening to new client requests and creating threads for each
individual request. Each newly created thread processes one client request, thus reducing the
burden on web server.
Example 2 –
• We can think of threads as child processes that share the parent process resources but
execute independently. Now take the case of a GUI. Say we are performing a calculation on the
GUI (which is taking very long time to finish). Now we cannot interact with the rest of the GUI
until this command finishes its execution. To be able to interact with the rest of the GUI, this
command of calculation should be assigned to a separate thread. So at this point of time, 2
threads will be executing i.e. one for calculation, and one for the rest of the GUI. Hence here in a
single process, we used multiple threads for multiple functionality.
The image below completely describes the VLC player example:

25

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Advantages of Multi-threading –
• Benefits of Multi-threading include increased responsiveness. Since there are multiple
threads in a program, so if one thread is taking too long to execute or if it gets blocked, the rest
of the threads keep executing without any problem. Thus the whole program remains responsive
to the user by means of remaining threads.
Another advantage of multi-threading is that it is less costly. Creating brand new processes and
allocating resources is a time consuming task, but since threads share resources of the parent
process, creating threads and switching between them is comparatively easy. Hence multi-
threading is the need of modern Operating Systems.
Multiprogramming
Sharing the processor, when two or more programs reside in memory at the same time, is
referred as multiprogramming. Multiprogramming assumes a single shared processor.
Multiprogramming increases CPU utilization by organizing jobs so that the CPU always has one
to execute. The following figure shows the memory layout for a multiprogramming systems.

26

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

An OS does the following activities related to multiprogramming.


• The operating system keeps several jobs in memory at a time.
• This set of jobs is a subset of the jobs kept in the job pool.
• The operating system picks and begins to execute one of the jobs in the memory.
• Multiprogramming operating systems monitor the state of all active programs and system
resources using memory management programs to ensure that the CPU is never idle, unless there
are no jobs to process.

Advantages
• High and efficient CPU utilization.
• User feels that many programs are allotted CPU almost simultaneously.

Disadvantages
• CPU scheduling is required.
• To accommodate many jobs in memory, memory management is required.

Multi-processing
Multiprocessing – A computer using more than one CPU at a time.In a uni-processor system,
only one process executes at a time.

Multiprocessing is the use of two or more CPUs (processors) within a single Computer system.
The term also refers to the ability of a system to support more than one processor within a single
computer system. Now since there are multiple processors available, multiple processes can be
executed at a time. These multi processors share the computer bus, sometimes the clock, memory
and peripheral devices also.

Multi-processing system’s working –


• With the help of multiprocessing, many processes can be executed simultaneously. Say
processes P1, P2, P3 and P4 are waiting for execution. Now in a single processor system, firstly
one process will execute, then the other, then the other and so on.
• But with multiprocessing, each process can be assigned to a different processor for its
execution. If it’s a dual-core processor (2 processors), two processes can be executed
simultaneously and thus will be two times faster, similarly a quad core processor will be four
times as fast as a single processor.

Why use multi-processing –


• The main advantage of multiprocessor system is to get more work done in a shorter
period of time. These types of systems are used when very high speed is required to process a
large volume of data. Multi-processing systems can save money in comparison to single
processor systems because the processors can share peripherals and power supplies.

27

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• It also provides increased reliability in the sense that if one processor fails, the work does
not halt, it only slows down. e.g. if we have 10 processors and 1 fails, then the work does not
halt, rather the remaining 9 processors can share the work of the 10th processor. Thus the whole
system runs only 10 percent slower, rather than failing altogether.

Multiprocessing refers to the hardware (i.e., the CPU units) rather than the software (i.e., running
processes). If the underlying hardware provides more than one processor then that is
multiprocessing. It is the ability of the system to leverage multiple processors’ computing power.
Difference between Multi programming and Multi processing –
• A System can be both multi programmed by having multiple programs running at the
same time and multiprocessing by having more than one physical processor. The difference
between multiprocessing and multi programming is that Multiprocessing is basically executing
multiple processes at the same time on multiple processors, whereas multi programming is
keeping several programs in main memory and executing them concurrently using a single CPU
only.
• Multiprocessing occurs by means of parallel processing whereas Multi programming
occurs by switching from one process to other (phenomenon called as context switching).
Multiuser
When referring to a network, a multi-user system is a term commonly used to define a computer
capable of allowing multiple users to connect to a network. A multi-user operating system allows
many different users to take advantage of the computer's resources simultaneously. The operating
system must make sure that the requirements of the various users are balanced, and that each of
the programs they are using has sufficient and separate resources so that a problem with one user
doesn't affect the entire community of users. Unix, VMS and mainframe operating systems, such
as MVS, are examples of multi-user operating systems.
It's important to differentiate between multi-user operating systems and single-user operating
systems that support networking. Windows 2000 and Novell Netware can each support hundreds
or thousands of networked users, but the operating systems themselves aren't true multi-user
operating systems. The system administrator is the only "user" for Windows 2000 or Netware.
The network support and all of the remote user logins the network enables are, in the overall plan
of the operating system, a program being run by the administrative user.
Interactivity
Interactivity refers to the ability of users to interact with a computer system. An Operating
system does the following activities related to interactivity −

28

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• Provides the user an interface to interact with the system.


• Manages input devices to take inputs from the user. For example, keyboard.
• Manages output devices to show outputs to the user. For example, Monitor.
The response time of the OS needs to be short, since the user submits and waits for the result.

Real Time System


Real-time systems are usually dedicated, embedded systems. An operating system does the
following activities related to real-time system activity.
• In such systems, Operating Systems typically read from and react to sensor data.
• The Operating system must guarantee response to events within fixed periods of time to
ensure correct performance.
Distributed Environment
A distributed environment refers to multiple independent CPUs or processors in a computer
system. An operating system does the following activities related to distributed environment −
• The OS distributes computation logics among several physical processors.
• The processors do not share memory or a clock. Instead, each processor has its own local
memory.
• The OS manages the communications between the processors. They communicate with
each other through various communication lines.
Spooling
Spooling is an acronym for simultaneous peripheral operations on line. Spooling refers to putting
data of various I/O jobs in a buffer. This buffer is a special area in memory or hard disk which is
accessible to I/O devices.
An operating system does the following activities related to distributed environment −
• Handles I/O device data spooling as devices have different data access rates.
• Maintains the spooling buffer which provides a waiting station where data can rest while
the slower device catches up.
• Maintains parallel computation because of spooling process as a computer can perform
I/O in parallel fashion. It becomes possible to have the computer read data from a tape, write
data to disk and to write out to a tape printer while it is doing its computing task.

Advantages
• The spooling operation uses a disk as a very large buffer.
29

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

• Spooling is capable of overlapping I/O operation for one job with processor operations
for another job

1.8. Types of operating system interfaces


An interface is a shared boundary across which two or more separate components of a computer
system exchange information. The exchange can be between software, computer hardware,
peripheral devices, humans, and combinations of these.
A user interface (UI) refers to the part of an operating system, program, or device that allows a
user to enter and receive information. There are three types User Interface:
a. Command-line/character user Interface
CUI also known as a character user interface or command-line user interface is a way in
which the user can interact with the computer program. It allows users to issue a
command of more than a line of text, also known as command lines, to the program
which can be anything like opening a file or directory, etc. It provides an easy way to
implement scripts in any programming language by writing a specific command for it.
E.g. diskpart, label, Scandisk, Move, Print, Tree, Deltree etc

Advantages:
Here are a few key points that make CUI more feasible:
 For performing any task, commands are used instead of manually doing it.
 Operating CUI is easy because of one linear command.
 Only one task is performed at a time and is efficient.
 Uses less memory when compared to GUI since there are commands that are to be
written on the command line.
 Less expensive to use since the commands are not updated frequently.

Disadvantages:
Here are a few reasons all users do not widely use its users:
 A user must memorize all the necessary commands to operate the CUI.
 One task is done at a time which means to do multiple tasks, we have to wait for
the command to be executed.
 The interface of CUI is less appealing and supports only the usage of a keyboard.

b. Menu driven Interface


A menu-driven interface is a type of user interface where users interact with a program or
system through a series of menus. These menus present options or commands that the
user can select, typically through the use of a pointer, keyboard, or touchscreen,
simplifying the interaction with the system.

Advantages
 Intuitive Navigation: Menus logically categorize and group similar functions
together, making it easier for users to find what they need.
30

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

 Reduced Errors: By limiting user choices to valid options, the chances of errors
are reduced.
 Efficiency: Menus often provide shortcuts to frequently used functions, enhancing
user efficiency.
 Accessibility: They can be more accessible for users with certain disabilities
because they don’t rely on memorizing specific commands or sequences.
 Consistency: They provide a consistent structure and operation across different
parts of an application or system, improving the user experience.
 Flexibility: They are adaptable to different input methods (mouse, touch,
keyboard), making them suitable for a variety of devices and contexts.
 User-friendly: They are typically easy to understand and use, even for less tech-
savvy users, as they offer a visual representation of options and commands.

c. Graphical user Interface


GUI is a visual representation of communication presented to the user for easy interaction
with the machine. The actions in a GUI are usually performed through direct
manipulation of graphical elements like buttons and icons. Communication can be
performed by interacting with these icons rather than the usual text-based or command-
based communication.

Advantages
Graphical user interfaces operating system has the following most common advantages:

 The advantage of a graphical user interface is a stark improvement in usability for


the average user.
 The features of a graphical user interface familiar leverage metaphors, such as
drag-and-drop for transferring files, and use familiar icons, such as a trash bin for
deleted files, creating an environment in which computer operations are intuitive
and easy to use without any prior practise or knowledge of computing machinery
or languages.
 Graphical user interface applications are self-descriptive, feedback is typically
immediate, and visual cues encourage and steer discoverability.

Assignment 2: find the comparison between the User Interface

Chapter Two
2.1. Install the software
31

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Installation or “setup” of a computer program is the act of making the program ready for
execution. Installation refers to the particular configuration of software or hardware with a view
to making it usable by the computer. A soft or digital copy of the piece of software (program) is
needed to install it as there are different processes of installing a piece of software (program).
Because the process varies for each program and each computer, programs (including operating
systems) often comes with an installer or setup file, a specialised program responsible for doing
whatever is needed for the installation. Installation may be of three types.
2.2. Types of software installation
 Attended Software Installation:
Attended software installation refers to the process where a user is actively present and
involved in the installation procedure. In this method, the user interacts with the
installation wizard or setup program and provides input or makes choices as required
throughout the installation process. The user may be required to select installation
options, customize settings, and confirm certain actions during the installation. Attended
installations are typically more interactive and provide greater flexibility for the user to
tailor the installation to their preferences.
 Unattended Software Installation:
Unattended software installation, on the other hand, is a method of installing software
without the need for continuous user interaction. It is an automated installation process
that follows a predetermined script or configuration file, often referred to as an answer
file or response file. The script contains predefined instructions and settings that guide the
installation process without requiring any input from the user. Unattended installations
are generally used for large-scale or enterprise deployments where repetitive installations
need to be performed on multiple machines with consistent settings
 Clean software installation
In a clean install of an OS, the hard disk is formatted and completely erased. In a clean
install of an application, the older version is uninstalled first. Installing an OS on a new
computer or installing an application for the first time is automatically a clean install.
 Scheduled/Automatic installation
An installation process that runs on a preset time or when a predefined condition
transpires, as opposed to an installation process that starts explicitly on a user’s
command. For instance, a system administrator willing to install 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 for
a device that the user connects. Malware may also be installed automatically. For
example, the infamous Conficker was installed when the user plugged an infected device
to their computer.
 Upgrade software installation
An upgrade installation is a process of installing a newer version of the Windows
operating system to replace the existing version. This process involves uninstalling the
existing version and then installing the new version in its place, while preserving some of
the user’s existing files and settings.
 Network installation
32

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

This installation also shortened as netinstall, is an installation of a program from a shared


network resource that may be done by installing a minimal system before proceeding to
download further packages over the network. This may simply be a copy of the original
media but software publishers which offer site licenses for institutional customers may
provide a version intended for installation over a network.
 Basic/Default or General software installation
The default standalone installation has predefined options which are not selected during
installation. If you need to change the default options, install multiple products at one
time, or install on multiple devices, then you need to use the Custom Install option
 Headless installation
Installation performed without using a computer monitor connected. In attended forms of
headless installation, another machine connects to the target machine (for instance, 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.
 Custom software installation
A custom installation is a process of installing a version of the Windows operating system
using the user’s specifications. This process involves selecting the desired components to
be installed, as well as setting up the directory structure and other preferences. The user
can select which components to install and which to leave out, as well as make other
customizations such as setting up user accounts and configuring network settings.
2.3. Installation typically involves code or program being copied/generated or extracted from
the installation files to new files on the local computer for easier access by the operating system,
creating necessary directories, registering environment variables, providing a separate program
for un-installation etc. Because code is generally copied/generated or extracted in multiple
locations, uninstallation usually involves more than just erasing the program folder. For example,
registry files and other system code may need to be modified or deleted for a complete
uninstallation.
2.4. Installation media
This are devices, mainly storage media which are essential during software or program
installation. Typically this devices are also know as Boot devices during Operating system
installation.
a) Boot device is the device from which the operating system is loaded. A modern
PC BIOS (Basic Input/output System) supports booting from various devices.
These include the local hard disk drive, optical drive, floppy drive, a network
interface card, and a USB device. Typically, the BIOS will allow the user to
configure a boot order. If the boot order is set to:

1. Bootable Flash Disk


2. Bootable CD Drive
3. Bootable Hard Disk Drive
4. On a Network from a bootable device
33

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

Then the BIOS will try to boot from the CD drive first, and if that fails then it will
try to boot from the hard disk drive, and if that fails then it will try to boot from
the network, and if that fails then it won’t boot at all.

2.5. Software installation legal requirements

What is a software license?


A software license is a document that provides legally binding guidelines for the use and
distribution of software.

Software licenses typically provide end users with the right to one or more copies of the
software without violating copyrights. The license also defines the responsibilities of the
parties entering into the license agreement and may impose restrictions on how the software
can be used.

Software licensing terms and conditions usually include fair use of the software, the
limitations of liability, warranties and disclaimers. They also specify protections if the
software or its use infringes on the intellectual property rights of others.

Software licenses typically are proprietary, free or open source. The distinguishing feature is
the terms under which users may redistribute or copy the software for future development or
use.

2.6. Why software licenses are important


A software license establishes the rights of all parties involved with the software: the author,
the provider and the end users. It defines the relationship between the software company and
users and explains how they are protected.

How license agreements protect developers


They protect developers’ intellectual property and trade secrets based on copyright laws.
They limit what other parties can do with the covered software code.
They limit the liability of the vendor.

How license agreements protect users


They define what users can do with software code they did not write.
They establish how users stay in compliance with software licenses, protect themselves from
infringement claims and limit their legal liability.
They help users maintain a positive relationship with software developers and vendors.
They prevent overspending on licenses by establishing clear parameters of how many
licenses an organization needs.

What are the different types of software licenses?


34

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

There are two general types of software licenses that differ based on how they are viewed
under copyright law.

Free and open source software (FOSS) licenses are often referred to as open source. FOSS
source code is available to the customer along with the software product. The customer is
usually allowed to use the source code to change the software.
Proprietary licenses are often referred to as closed source. They provide customers with
operational code. Users cannot freely alter this software. These licenses also usually restrict
reverse engineering the software’s code to obtain the source code.
Public domain. This software is freely available. Anyone can use and change it or
incorporate code from this software into an application. However, businesses should use
caution as altered code may not meet enterprise quality and security standards. Companies
should be wary of ambiguous licenses that appear to be public domain but do not explicitly
say so.
Lesser general public license. Developers can link to open source libraries within their
software and use any licensing type for the code.
Permissive. This type of license will establish some requirements for distribution or
modification of the software. It also has requirements for preserving license notices,
copyrights or trademarks. There are several variations of permissive licenses, including
Apache, BSD (Berkeley Source Distribution) and MIT licenses.
Copyleft. Licensed code may be distributed or modified as part of a software application or
project if all code involved is distributed under the same license. New products containing
old code with a copyleft license must comply with the restrictions laid out in the old code’s
license.
Proprietary. This is the most restrictive license type. Proprietary software licenses make it
illegal to copy, modify or distribute the software. These licenses provide the software owners
with the most protection from unauthorized use of the software.

2.7. Software configuration


Means selecting programmable options that make the program function to the user’s liking.
To “configure hardware” means assembling desired components for a custom system as well
as selecting options in the user-programmable parts of the system. “Configurability” refers to
the hardware or software’s ability to be changed and customized

Advantages of software configuration


 Software configuration gives the power to the business user and frees them from
IT: As the system provides a seamless and friendly user-experience, the business
user will be happy to use it, as it also makes them less reliant on IT.
 Software configuration provides the ability to make quick and easy changes as
needed: Platforms that require no hard coding and which work on a modular basis
can, in principle, be easily adapted and updated to fit your organization’s needs as
they change.
 Software configuration doesn’t require expensive changes: If you’re tied into
using a system that requires constant customization, either from IT or, even
35

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

worse, the vendor itself, then the costs of such changes are going to stack up
quickly. With configurable software however, the costs of minor changes or
tweaks will be much lower.
 Software configuration allows for updates to be made more quickly: This is due to
little to no hard coding.
Chapter Three
3.1. Software configuration management
Software configuration management (SCM) refers to a series of measures to control and
standardize software products and their development process and life cycle through technical or
administrative means at each stage of the development process. The goal of configuration
management is to record the evolution process of software products and ensure that software
developers can obtain accurate product configurations at all stages of the software life cycle.
The key objectives of SCM are to:
 To control the evolution of software systems: SCM helps to ensure that changes to a
software system are properly planned, tested, and integrated into the final product.
 To enable collaboration and coordination: SCM helps teams to collaborate and coordinate
their work, ensuring that changes are properly integrated and that everyone is working
from the same version of the software system.
 To provide version control: SCM provides version control for software systems, enabling
teams to manage and track different versions of the system and to revert to earlier
versions if necessary.
 To facilitate replication and distribution: SCM helps to ensure that software systems can
be easily replicated and distributed to other environments, such as test, production, and
customer sites.
 SCM is a critical component of software development, and effective SCM practices can
help to improve the quality and reliability of software systems, as well as increase
efficiency and reduce the risk of errors.
The main advantages of SCM are:
 Improved productivity and efficiency by reducing the time and effort required to manage
software changes.
 Reduced risk of errors and defects by ensuring that all changes are properly tested and
validated.
 Increased collaboration and communication among team members by providing a central
repository for software artifacts.
 Improved quality and stability of software systems by ensuring that all changes are
properly controlled and managed.
The main disadvantages of SCM are:
 Increased complexity and overhead, particularly in large software systems.

36

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

 Difficulty in managing dependencies and ensuring that all changes are properly
integrated.
 Potential for conflicts and delays, particularly in large development teams with multiple
contributors.
3.2. Software configuration components
A configuration management plan is a comprehensive document that details the configurations of
a project and how project managers plan to handle them. In project management, a configuration
is a defining feature of a successful project. Configurations are the specific features of a project’s
deliverables, which project managers aim to achieve upon the completion of a project.
Configuration management, which closely relates to project change management, is a process of
identifying, recording and managing a project’s configurations. Often, project managers also
include configuration management plans with project quality management plans.
Configuration management process
The configuration management process includes five basic steps:

a. Creating the configuration management plan


The first step of the configuration management process is creating the plan. This type of plan
explains your process for managing, recording and testing project configurations. It defines the
project’s deliverables and how you plan to achieve them, and it helps inform the project
stakeholders about your configuration management strategies.

These plans typically include:


Introduction: The introduction of the plan includes the purpose of the project, the project scope
and any other relevant contextual information.
Project overview: The project overview section gives a brief description of the entire project.
Configuration management strategies: The largest section of the plan lists specific
configuration management strategies, including how to identify, track and test configurations.
b. Identifying configuration requirements
It’s also important to identify your project’s configuration requirements. You can do
this by meeting with stakeholders and reviewing your deliverables. Once you’ve
identified your configurations, be sure to document them so you can measure changes
and progress later.
c. Documenting changes
Another important step in the process is documenting changes in project scope and
configurations. You can then compare these changes to your baseline configurations

37

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

that you initially recorded. Be sure to update your configuration management plan
when necessary.
d. Tracking configurations
You can also track your project’s configurations through status accounting. The goal
of this stage of the process is to create a list of all of the previous and current
configuration versions. This can help you keep records of changes.
e. Testing adherence to configuration requirements
Another crucial step is testing how your project adheres to configuration
requirements. This is known as auditing. The purpose of this step is to ensure that the
result of your project meets these requirements. When testing, you can spot any areas
of improvement. Many project managers also complete testing at the end of each
individual project cycle so they can find and correct issues before project completion.
 software configuration identification- This is the process of identifying all of the
components of a project and ensuring that these components can be found quickly
throughout the project life cycle. As previously mentioned, a typical intranet project is
like a software development project and is comprised of much more than source code or
HTML. Configuration identification breaks a project into smaller, more manageable
subprojects, such as design documents, special graphic files, and so forth. A good
automated SCM package supports mapping of a project tree, indicating the logical
configuration hierarchy, as well as the directory structure, or physical configuration
hierarchy. The version control and SCM product must be able to cross all departmental
boundaries to include a wide variety of project participants.
 Configuration Change Control—This important activity coordinates access to project
components among team members so that data do not “fall through the cracks,” become
lost, or that unauthorized changes are made. To provide protection from lost changes,
most SCM systems offer a check-in/check-out process that allows write-access to a single
user for a project file. Current and previous versions of a file are identified and tracked,
with the ability for a user to request a copy of a previous version of a file at any time.
 Configuration Auditing—Configuration auditing is a process that confirms that a
software or intranet project is on track and that the developers are building what is
actually required. By developing a series of checklists that specify what components are
in a given baseline, a company can audit the degree to which a project or intranet is
complete.
 Configuration Status Accounting—The goal of configuration status accounting is to
record why, when, and by whom a particular change is made to the source code of a
project. In the past, developers would manually keep notebooks and insert comments into
the code, but good SCM systems keep automated histories of all changes and generate
reports that describe the changes over a period of time.

Chapter Four
38

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

4.1. Test software functionality


Functional Testing is a type of Software Testing in which the system is tested against the
functional requirements and specifications. Functional testing ensures that the requirements or
specifications are properly satisfied by the application. This type of testing is particularly
concerned with the result of processing. It focuses on the simulation of actual system usage but
does not develop any system structure assumptions. The article focuses on discussing function
testing.
4.2.Define software installation testing
Functional testing is basically defined as a type of testing that verifies that each function of
the software application works in conformance with the requirement and specification. This
testing is not concerned with the source code of the application. Each functionality of the
software application is tested by providing appropriate test input, expecting the output, and
comparing the actual output with the expected output. This testing focuses on checking the
user interface, APIs, database, security, client or server application, and functionality of the
Application Under Test. Functional testing can be manual or automated.

4.3. Techniques Of Software Testing


This includes both functional and non-functional techniques (i.e. quality characteristics). It
means creating and executing tests based on functional or non-functional specifications from
the business. Its focus is on identifying defects corresponding to given specifications. Here
are the types of specification-based techniques:
 Boundary value analysis
This analysis tests the boundaries of the range- both valid and invalid. In the example
above, 0,1,999, and 1000 are boundaries that can be tested. The reasoning behind this
kind of testing is that more often than not, boundaries are not handled gracefully in the
code.
 Equivalence class partitioning
It is generally used together and can be applied to any level of testing. The idea is to
partition the input range of data into valid and non-valid sections such that one partition
is considered “equivalent”. Once we have the partitions identified, it only requires us to
test with any value in a given partition assuming that all values in the partition will
behave the same. For example, if the input field takes the value between 1-999, then
values between 1-999 will yield similar results, and we need NOT test with each value to
call the testing complete.
 Error Guessing
It is used by a tester who has either very good experience in testing or with the
application under test and hence they may know where a system might have a weakness.
It cannot be an effective technique when used stand-alone but is helpful when used along
with structured techniques.
39

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

4.4. Installation checklist


4.5. Functional Testing
The goal of functional testing is to check the functionalities of the application under test. It
concentrates on:
Basic Usability: Functional testing involves basic usability testing to check whether the user
can freely navigate through the screens without any difficulty.
Mainline functions: This involves testing the main feature and functions of the application.
Accessibility: This involves testing the accessibility of the system for the user.
Error Conditions: Functional testing involves checking whether the appropriate error
messages are being displayed or not in case of error conditions.

4.6. Generate test report

https://www.google.com/amp/s/www.geeksforgeeks.org/software-testing-techniques/amp/
Chapter Five
5.1. Perform user training
5.2. Keys to Developing an End User Training Plan

 Determine user skill set

 Creating a training program

 Setting training goals

 Training delivery methods

 Assessing end-user needs

5.3. Training feedback

40

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)


lOMoARcPSD|42620400

By Sammy Koech

41

Downloaded by Edwin Nyakundi (edu45nyaks@gmail.com)

You might also like