Install-Computer-Software-Cbet Notes
Install-Computer-Software-Cbet Notes
Install-Computer-Software-Cbet Notes
By Sammy Koech
ICT TECHNICIAN
LEVEL 5
INSTALL COMPUTER SOFTWARE
By Sammy Koech
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.
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
ii
By Sammy Koech
Open source
Operating systems
Real time
Distributed
Batch
Device management
Memory management
Storage management
Process control
Security Management
Command-line/character user
Menu driven
iii
By Sammy Koech
Unattended
Headless
Schedule/Automated
Clean/Updating
Network
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
Training feedback
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
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
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.
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.
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.
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.
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
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.
11
By Sammy Koech
12
By Sammy Koech
13
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
By Sammy Koech
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.
• 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
By Sammy Koech
17
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.
18
By Sammy Koech
19
By Sammy Koech
20
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
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
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.
23
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.
• 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
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
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
By Sammy Koech
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.
27
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
By Sammy Koech
Advantages
• The spooling operation uses a disk as a very large buffer.
29
By Sammy Koech
• Spooling is capable of overlapping I/O operation for one job with processor operations
for another job
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.
Advantages
Intuitive Navigation: Menus logically categorize and group similar functions
together, making it easier for users to find what they need.
30
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.
Advantages
Graphical user interfaces operating system has the following most common advantages:
Chapter Two
2.1. Install the software
31
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
By Sammy Koech
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.
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.
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.
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
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:
37
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
By Sammy Koech
By Sammy Koech
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
40
By Sammy Koech
41