Generation of Computers
1. First Generation Computers
• The 1st Generation Computers were introduced using the technology of vacuum tubes
which can control the flow of electronics in a vacuum.
• These tubes are usually used in switches, amplifiers, radios, televisions, etc.
• The First Generation of Computer was very heavy and large and were not ideal for
programming. They used basic programming and didn’t have an operating system,
which made it tough for users to do programming on them.
• The 1st Generation Computers required a big room dedicated to them and also
consumed a lot of electricity.
Some examples of main first-generation computers are-
• ENIAC: Electronic Numerical Integrator and Computer, built by J. Presper Eckert and
John V. Mauchly which contained 18,000 vacuum tubes.
• EDVAC: Electronic Discrete Variable Automatic Computer, designed by Von
Neumann.
• UNIVAC: Universal Automatic Computer, developed by Eckert and Mauchly in 1952
Characteristics of 1st Generation Computers
• These computers were designed using vacuum tubes.
• Programming in these computers was done using machine languages.
• The main memory of 1st Generation Computers consisted of magnetic tapes and
magnetic drums.
• Paper tapes and Punched cards were used as input/output devices in these computers.
• These computers were very huge but worked very slowly.
• Examples of 1st Generation Computers are IBM 650, IBM 701, ENIAC, UNIVAC1,
etc.
2. Second Generation Computers
• The Second Generation of Computers revolutionized as it started using the technology
of transistors instead of bulky vacuum tubes.
• Transistors are devices made of semiconductor materials that open or close a circuit.
• These transistors were invented in the Bell Labs which made the Second-Generation
Computer powerful and faster than the previous ones.
• Transistors made these computers smaller and generated less heat compared to the
vacuum tubes they replaced.
• The Second Generation of Computers also introduced the use of CPU, memory and
input/output units.
• The programming languages used for the second-generation computers were
FORTRAN (1956), ALGOL (1958), and COBOL (1959)
Characteristics of Second-Generation Computers
• The Second-Generation computers used the technology of Transistors.
• Machine language and Assembly Languages were used for these computers.
• Magnetic core and magnetic tape/disk were used for memory storage.
• The Second-Generation Computers were smaller in size, consumed less power and
generated less heat.
• Magnetic tape and punched cards were used as input/output devices.
• Some of the examples are PDP-8, IBM1400 series, IBM 7090 and 7094, UNIVAC
1107, CDC 3600, etc.
3. Third Generation Computers
• The evolution of Third Generation Computers took place with a shift from transistors
to integrated circuits also called IC.
• The Third Generation of Computers was known for being very fast and dependable.
• These computers used Integrated Circuits (ICs) made from silicon, known as silicon
chips. Each chip contains many tiny electronic parts, like transistors, registers, and
capacitors, all on a thin piece of silicon.
• This made computers in this generation more powerful and efficient with better
memory.
• During this time, programming languages like BASIC (Beginners All-purpose
Symbolic Instruction Code) were commonly used.
• Also, Minicomputers, which are smaller than mainframes but still powerful, were
introduced.
• Overall, this generation marked significant improvements in speed, reliability, and
capabilities of computers
Characteristics of Third-Generation Computers
• These computers were built using Integrated Circuits (ICs).
• High-level programming languages were used for programming on these computers.
• Large magnetic core and magnetic tape/disk were used for memory storage.
• Magnetic tape, monitor, keyboard, printer, etc were used as input/output devices.
• Some of the examples of Third Generation Computers are IBM 360, IBM 370, PDP-11,
NCR 395, B6500, UNIVAC 1108, etc.
4. Fourth Generation Computers
• The period from 1972 to 2010 is considered the period of the fourth generation of
computers.
• Microprocessor technology was used to develop the Fourth Generation of Computers.
• The foremost advantage of these computers is that the microprocessor can contain all the
circuits required to perform arithmetic, logic, and control functions on one chip.
• In the Fourth Generation, computers became very small in size and also became portable.
• Technologies like multiprocessing, multiprogramming, time-sharing, operating speed,
and virtual memory were also introduced by then.
• During the fourth generation, private computers and computer networks became a
reality.
Characteristics of Fourth-Generation Computers
• The Fourth Generation Computers have been developed using the technology of Very-
large-scale integration (VLSI) and the microprocessor (VLSI has thousands of
transistors on a single microchip).
• Semiconductor memory such as RAM, ROM, etcwas used for memory storage.
• Input/output devices such as pointing devices, optical scanning, keyboard, monitor,
printer, etcwere introduced.
• Some examples of Fourth Generation Computers are IBM PC, STAR 1000, APPLE II,
Apple Macintosh, Alter 8800, etc.
5. Fifth Generation Computers
• The Fifth Generation of Computers has been built using the technology called Artificial
Intelligence (AI).
• This technology encourages computers to behave like humans. Some of the applications
of AI have been seen in features like voice recognition, entertainment, etc.
• The speed of the Fifth Generation of Computers is the highest while the sizes are the
smallest.
• A big improvement has been noticed so far over the years in the various generations of
computers in the aspect of speed, accuracy dimensions, etc.
Characteristics of Fifth Generation of Computers
• The 5th Generation Computers have been built based on artificial intelligence, use the
Ultra Large-Scale Integration (ULSI) technology and parallel processing method
(ULSI has millions of transistors on a single microchip and the Parallel processing
method uses two or more microprocessors to run tasks simultaneously).
• These computers understand natural language (human language).
• The Fifth-generation computers are portable and smaller in size.
• Trackpad (or touchpad), touchscreen, pen, speech input (recognize voice/speech), light
scanner, printer, keyboard, monitor, mouse, etc are used as Input/Output devices.
• Examples of 5th Generation Computers are Desktops, laptops, tablets, smartphones,
etc.
Classification of computers
Based on Size
Based on Capacity
Based on Purpose
What is Memory Management?
Memory management refers to the process of controlling and coordinating computer memory,
allocating portions called blocks to various running programs to optimize overall system
performance. Memory management also involves deallocating memory when a program is no
longer in use, ensuring that memory resources are efficiently utilized.
Types of Memory:
• CPU Registers: High-speed, temporary storage used to instruct other parts of the OS.
• Cache Memory: Faster than primary memory, used to bridge the speed gap between
the CPU and main memory.
• Main (Primary) Memory: External memory processor working with active programs
and data.
• Secondary Memory: Largest storage capacity, usually external sources like hard drives
or USB flash drives
Primary memory
• RAM (Random Access Memory)/Volatile Memory: Data is lost when the power is
turned off.
• ROM (Read-Only Memory)/Non-Volatile Memory: Data is retained even when the
power is off.
Secondary Memory:
Secondary memory is used for long-term data storage and is not directly accessible by the
CPU.
• HDD (Hard Disk Drive): Uses magnetic storage to store and retrieve digital data.
Larger storage capacity but slower than SSDs.
• SSD (Solid State Drive): Uses flash memory to store data. Faster and more reliable
than HDDs but more expensive.
• Optical Discs: Includes CDs, DVDs, and Blu-ray discs. Used for storing media and
software.
• USB Flash Drives: Portable storage devices using flash memory. Convenient for
transferring data between computers.
• Cloud Storage: Internet-based storage solutions. Allows access to data from
anywhere with an internet connection
Cache Memory: Cache memory is a small, high-speed memory located close to the CPU to
speed up access to frequently used data.
• L1 Cache: Integrated into the CPU, very fast but small in size.
• L2 Cache: Slightly larger and slower than L1, often located on the CPU chip.
• L3 Cache: Larger and slower than L2, shared among multiple CPU cores
COMPUTER SOFTWARE
What is Computer Software?
• Computer software refers to instructions, programs, and data that enable a computer
system to perform specific tasks or functions.
• It encompasses various applications, operating systems, and utility programs, allowing
users to interact with and manipulate digital hardware.
• Software can range from simple applications like word processors and web browsers to
complex systems such as databases and video games.
• It is crucial in managing hardware resources, facilitating user experiences, and
executing diverse computing operations.
Significance of Software in Modern Computing
Computer software plays a pivotal role in modern computing for several significant reasons:
• Functionality: Software defines what a computer can do. It provides the tools,
applications, and operating systems that enable users to perform various tasks, from
word processing to complex data analysis.
• Flexibility: Software can be easily updated and adapted to changing needs. This
flexibility allows computers to evolve without requiring constant hardware upgrades.
• Efficiency: Optimized software can significantly enhance the performance of
hardware. Efficient algorithms and well-designed software can make computing
processes faster and more resource-efficient.
• Automation: Software automates repetitive tasks, boosts productivity, and minimizes
human error. This is crucial in manufacturing, finance, and healthcare.
• Connectivity: Software facilitates communication and connectivity. From internet
browsers to networking protocols, software enables the exchange of information
globally.
• Innovation: Software drives innovation by enabling the development of new
applications, services, and technologies. It’s the foundation for emerging fields like
artificial intelligence, virtual reality, and blockchain.
• Security: Software is essential for cybersecurity. Antivirus programs, firewalls, and
encryption software protect data and systems from threats and vulnerabilities.
• User Experience: Software defines the user interface and user experience, impacting
how individuals interact with computers and devices. Intuitive and user-friendly
software is crucial for adoption and satisfaction.
• Data Handling: Software manages data storage, retrieval, and processing. Databases,
file systems, and data analysis tools are essential for businesses and research.
• Global Impact: Software has a global reach, influencing economies, industries, and
societies. It powers critical infrastructure, healthcare systems, financial markets, etc.
1. System Software
Computer operation relies on system software that manages hardware resources and provides
essential services to other applications.
• Operating Systems (OS): The core software that manages hardware resources,
provides a user interface, and runs other software. Examples include Windows,
macOS, Linux, and Unix.
• Device Drivers: Software that communicates with hardware devices like printers,
graphics cards, and network adapters, allowing them to function correctly with the
operating system.
• Utilities: Tools that perform various system-related tasks, such as disk management,
system maintenance, and security. Examples include antivirus software, disk clean-up
utilities, and system optimization tools.
2. Application Software
Application software includes programs designed to perform specific user tasks or functions.
• Word Processing Software: Used for creating, editing, and formatting text
documents. Examples include Microsoft Word, Google Docs, and LibreOfficeWriter.
• Spreadsheet Software: Designed for creating, analysing, and managing numerical
data in tables. Examples include Microsoft Excel, Google Sheets, and
LibreOfficeCalc.
• Presentation Software: Used to create multimedia presentations with slides, images,
and animations. Examples include Microsoft PowerPoint, Google Slides, and Apple
Keynote.
• Database Software: Manages and organizes data, allowing users to store, retrieve,
and manipulate information. Examples include Microsoft Access, MySQL, and Oracle
Database.
• Graphics and Design Software: Used for creating visual content, including images,
illustrations, and animations. Examples include Adobe Photoshop, Adobe Illustrator,
and Blender.
• Web Browsers: Software for accessing and browsing websites on the internet.
Examples include Google Chrome, Mozilla Firefox, and Microsoft Edge.
• Email Clients: Applications for sending, receiving, and managing emails. Examples
include Microsoft Outlook, Mozilla Thunderbird, and Apple Mail.
• Media Players: There are various media players, including Windows Media Player,
VLC Media Player, and iTunes, that can play audio and video files.
3. Programming Software
Developers use programming software to create, debug, and test software applications.
• Compilers and Interpreters: Software that translates high-level programming
languages into machine code. Examples include GCC (GNU Compiler Collection),
Python interpreter, and Java Virtual Machine (JVM).
• Integrated Development Environments (IDEs): An integrated development
environment (IDE) is a software application that helps programmers develop software
code efficiently. It increases developer productivity by combining capabilities such as
software editing, building, testing, and packaging in an easy to-use application. Just as
writers use text editors and accountants use spreadsheets, software developers use IDEs
to make their job easier.
Why are IDEs important?
Most integrated development environments (IDEs) include functionality that goes
beyond text editing. They provide a central interface for common developer tools,
making the software development process much more efficient. Developers can start
programming new applications quickly instead of manually integrating and configuring
different software. They also don't have to learn about all the tools and can instead focus
on just one application. The following are some reasons why developers use IDEs:
Code editing automation Programming languages have rules for how statements must
be structured. Because an IDE knows these rules, it contains many intelligent features
for automatically writing or editing the source code.
Syntax highlighting An IDE can format the written text by automatically making some
words bold or italic, or by using different font colours. These visual cues make the
source code more readable and give instant feedback about accidental syntax errors.
Intelligent code completion Various search terms show up when you start typing words
in a search engine. Similarly, an IDE can make suggestions to complete a code statement
when the developer begins typing.
Refactoring support Code refactoring is the process of restructuring the source code
to make it more efficient and readable without changing its core functionality. IDEs can
auto-refactor to some extent, allowing developers to improve their code quickly and
easily. Other team members understand readable code faster, which supports
collaboration within the team.
Local build automation IDEs increase programmer productivity by performing
repeatable development tasks that are typically, part of every code change. The
following are some examples of regular coding tasks that an IDE carries out.
Compilation An IDE compiles or converts the code into a simplified language that the
operating system can understand. Some programming languages implement just-in-time
compiling, in which the IDE converts human readable code into machine code from
within the application.
Testing The IDE allows developers to automate unit tests locally before the software is
integrated with other developer’s code and more complex integration tests are run.
Debugging Debugging is the process of fixing any errors or bugs that testing reveals.
One of the biggest values of an IDE for debugging purpose is that you can step through
the code, line by line, as it runs and inspect code behaviour. IDEs also integrate several
debugging tools that highlight bugs caused by human error in real time, even as the
developer is typing.
• Text Editors: Editors or text editors are software programs that enable the user to create
and edit text files. In the field of programming, the term editor usually refers to source
code editors that include many special features for writing and editing code. Notepad,
WordPad are some of the common editors used on Windows OS and vi, emacs, Jed,
Pico are the editors on UNIX OS. Features normally associated with text editors are
moving the cursor, deleting, replacing, pasting, finding and replacing, saving etc.
4. Enterprise Software
• Enterprise software helps businesses manage their operations.
• Enterprise Resource Planning (ERP) Software: Integrates and manages various
business processes, including finance, HR, and inventory management. Examples
include SAP, Oracle ERP, and Microsoft Dynamics.
• Customer Relationship Management (CRM) Software: Software platforms can
assist businesses in managing customer interactions and relationships. Some examples
of these platforms are Salesforce, HubSpot, and ZohoCRM.
• Business Intelligence (BI) Software: Provides tools for analysing and visualizing
business data to make informed decisions. Examples include Tableau, Power BI, and
QlikView.
5. Utility Software
• Utility software includes programs that perform specific, often low level, tasks to
maintain or enhance system performance and functionality.
• File Compression Tools: Reduce the size of files and folders to save storage space.
Examples include WinZip, 7 Zip, and WinRAR.
• Backup and Recovery Software: Create data backups and restore them in case of loss.
Examples include Acronis True Image, EaseUS Todo Backup, and Windows Backup.
• Security Software: This package protects against malware, viruses, and other security
threats. It includes antivirus software, anti-malware tools, and firewalls. Some
software examples in this package are Norton Antivirus, McAfee, and Avast.
6. Educational Software
• Educational institutions commonly use software designed for teaching and learning,
known as educational software.
• Educational Games: Interactive games that teach various subjects or skills while
entertaining. Examples include “Math Blaster” and “Carmen Sandiego.”
• E-learning Platforms: Online platforms that offer courses, lectures, and tutorials.
Examples include Coursera, edX, and Moodle.
• These categories encompass various software types, each serving specific purposes
and catering to diverse user needs. The software industry is continually evolving, with
new applications and tools emerging to meet the demands of users in various
domains.
Operating System
What is an Operating System?
• Operating System lies in the category of system software. It basically manages all
the resources of the computer. An operating system acts as an interface between the
software and different parts of the computer or the computer hardware. The operating
system is designed in such a way that it can manage the overall resources and
operations of the computer.
• Operating System is a fully integrated set of specialized programs that handle all the
operations of the computer. It controls and monitors the execution of all other
programs that reside in the computer, which also includes application programs and
other system software of the computer. Examples of Operating Systems are Windows,
Linux, Mac OS, etc.
• An Operating System (OS) is a collection of software that manages computer
hardware resources and provides common services for computer programs. The
operating system is the most important type of system software in a computer system.
What is an Operating System Used for?
• The operating system helps in improving the computer software as well as hardware.
• Without OS, it became very difficult for any application to be user-friendly.
• The Operating System provides a user with an interface that makes any application
attractive and user-friendly.
• The operating System comes with a large number of device drivers that make OS
services reachable to the hardware environment.
• Each and every application present in the system requires the Operating System. The
operating system works as a communication channel between system hardware and
system software.
• The operating system helps an application with the hardware part without knowing
about the actual hardware configuration.
• It is one of the most important parts of the system and hence it is present in every
device, whether large or small device.
Objectives of Operating Systems
• Convenient to use: One of the objectives is to make the computer system more
convenient to use in an efficient manner.
• User Friendly: To make the computer system more interactive with a more
convenient interface for the users.
• Easy Access: To provide easy access to users for using resources by acting as an
intermediary between the hardware and its users.
• Management of Resources: For managing the resources of a computer in a better
and faster way.
• Controls and Monitoring: By keeping track of who is using which resource,
granting resource requests, and mediating conflicting requests from different
programs and users.
• Fair Sharing of Resources: Providing efficient and fair sharing of resources between
the users and programs.
Examples of Operating Systems
• Windows (GUI-based, PC)
• GNU/Linux (Personal, Workstations, ISP, File, and print server, three tier
client/Server)
• macOS (Macintosh), used for Apple’s personal computers and workstations
(MacBook, iMac)
• Android (Google’s Operating System for smartphones/tablets/smartwatches)
• iOS (Apple’s OS for iPhone, iPad, and iPod Touch)
What is a Computer Network?
• A computer network is a collection of interconnected devices that share resources and
information. These devices can include computers, servers, printers, and other
hardware. Networks allow for the efficient exchange of data, enabling various
applications such as email, file sharing, and internet browsing.
How Does a Computer Network Work?
• Basics building blocks of a computer network are Nodes and Links. A Network Node
can be illustrated as Equipment for Data Communication like a Modem, Router, etc.,
or Equipment of a Data Terminal like connecting two computers or more. Link in
Computer Networks can be defined as wires or cables or free space of wireless
networks.
Types of Enterprise Computer Networks
• LAN: A Local Area Network (LAN) is a network that covers a small area, such as an
office or a home. LANs are typically used to connect computers and other devices
within a building or a campus.
• WAN: A Wide Area Network (WAN) is a network that covers a large geographic
area, such as a city, country, or even the entire world. WANs are used to connect
LANs together and are typically used for long distance communication.
• Cloud Networks: Cloud Networks can be visualized with a Wide Area Network
(WAN) as they can be hosted on public or private cloud service providers and cloud
networks are available if there is a demand. Cloud Networks consist of Virtual
Routers, Firewalls, etc.
Difference between Program and Instruction
Program Instructions
Programs are simply set of instructions or Instruction is simply order given to
computer code. computer processor.
It instructs computer to carry out function It instructs computer to perform discreet
such as calculation, formatting, etc. action such as move, load decimal, etc.
Programs are collection of software These are set of machine language
applications especially designed to execute instructions that processor understand and
specific task. perform.
Types of programs include game programs, Types of instruction includes integer
word processors, web browsers, graphic instruction, floating-point instruction, flow
programs, etc. control instruction, etc.
Programs are given to computer-by- Instructions are given to computer using
computer programmer in specific keyword or input device by human beings.
programming language.
Programs are generally stored in secondary Instructions are generally stored on hard
storage devices such as hard disks and disk or any other storage device and are
when we execute program, it gets copied performed until they are executed by user.
on main memory.
These are hard to understand and create. These are easy to understand and create.
Compilers are used by computer to Operating system or software’s are used by
translate program written in high-level computer to translate user commands into
language to machine code and then it can human readable format.
be used directly by computer.
Difference between high level and low-level programming languages
High Level Low Level
It is programmer friendly language. It is a machine friendly language.
High-level languages are more human- Low-level languages use cryptic codes
readable with English-like keywords closer to machine instructions.
High-level languages provide a high level Low-level languages offer minimal
of abstraction, hiding many hardware abstraction, requiring direct hardware
details from the programmer manipulation.
High-level languages are generally Low-level languages are often specific to a
portable across different platforms with particular hardware architecture.
minimal changes
High-level languages may be easier to Low-level languages can potentially
optimize for performance with proper execute faster due to direct hardware
techniques. control
Debugging is easy. Debugging is complex comparatively.
It needs compiler or interpreter for It needs assembler for translation.
translation.
Example: Python, Java, C, C#, JavaScript Example: Assembly language, machine
code, Rust, FORTRAN
Types of errors in C
1. Syntax Error
Syntax Error is defined as a fundamental mistake created in programming when the code
doesn’t follow the syntax rules of the programming language.
Language syntax of programming languages can be defined as a set of rules and
structures that determine how the code should be written to be correctly translated and
executed by the compilers or interpreters.
#include <stdio.h>
int main()
{
printf("Hello, World!") // Missing semicolon
return 0;
}
2. Runtime Errors
This type of error occurs while the program is running. Because this is not a compilation
error, the compilation will be completed successfully. These errors occur due to
segmentation fault when a number is divided by division operator or modulo division
operator.
#include <stdio.h>
int main()
{
int x = 10;
int y = 0;
int result = x / y; // Division by zero
return 0;
}
3. Logical Errors
Even if the syntax and other factors are correct, we may not get the desired results due to
logical issues. These are referred to as logical errors. We sometimes put a semicolon after
a loop, which is syntactically correct but results in one blank loop. In that case, it will
display the desired output.
#include <stdio.h>
int main()
{
int x = 10;
int y = 5;
int sum = x - y; // Incorrect logic for addition
printf("Sum: %d\n", sum);
return 0;
}
4. Linker Errors
When the program is successfully compiled and attempting to link the different object
files with the main object file, errors will occur. When this error occurs, the executable is
not generated. This could be due to incorrect function prototyping, an incorrect header
file, or other factors.
#include <stdio.h>
int main()
{
sqrt(4); // Missing math.h library
return 0;
}
5. Semantic Errors
When a sentence is syntactically correct but has no meaning, semantic errors occur. This
is similar to grammatical errors. If an expression is entered on the left side of the
assignment operator, a semantic error may occur.
#include <stdio.h>
int main()
{
int x = "Hello"; // Assigning string to integer
return 0;
}
Algorithm
The word Algorithm means” A set of finite rules or instructions to be followed in
calculations or other problem-solving operations”
Or
” A procedure for solving a mathematical problem in a finite number of steps that
frequently involves recursive operations”.
Flowchart
A flowchart is a type of diagram that represents a workflow or process. A flowchart can
also be defined as a diagrammatic representation of an algorithm, a step-by-step approach
to solving a task.
Program Development Process
1. Defining the Problem
The first step is to define the problem. In major software projects, this is a job for system
analyst, who provides the results of their work to programmers in the form of a program
specification. The program specification defines the data used in program, the processing
that should take place while finding a solution, the format of the output and the user
interface.
2. Designing the Program
Program design starts by focusing on the main goal that the program is trying to achieve
and then breaking the program into manageable components, each of which contributes to
this goal. This approach of program design is called top-bottom program design or
modular programming. The first step involves identifying main routine, which is the one
of program’s major activity. From that point, programmers try to divide the various
components of the main routine into smaller parts called modules. For each module,
programmer draws a conceptual plan using an appropriate program design tool to
visualize how the module will do its assign job. Program Design Tools: The various
program design tools are described below:
• Structure Charts: A structure chart, also called Hierarchy chart, show top-down design
of program. Each box in the structure chart indicates a task that program must
accomplish. The Top module, called the Main module or Control module. For
example:
• Algorithms: An algorithm is a step-by-step description of how to arrive at a solution in
the easiest way. Algorithms are not restricted to computer world only. In fact, we use
them in everyday life.
• Flowcharts: A flowchart is a diagram that shows the logic of the program. For
example:
• Decision tables: A Decision table is a special kind of table, which is divided into four
parts by a pair of horizontal and vertical lines.
• Pseudocode: A pseudocode is another tool to describe the way to arrive at a solution.
They are different from algorithm by the fact that they are expressed in program
language like constructs.
3. Coding the Program
Coding the program means translating an algorithm into specific programming language.
The technique of programming using only well-defined control structures is known as
Structured programming. Programmer must follow the language rules, violation of any
rule causes error.
4. Testing and Debugging the Program
After removal of syntax errors, the program will execute. However, the output of the
program may not be correct. This is because of logical error in the program. A logical
error is a mistake that the programmer made while designing the solution to a problem.
So the programmer must find and correct logical errors by carefully examining the
program output using Test data. Syntax error and Logical error are collectively known as
Bugs. The process of identifying errors and eliminating them is known as Debugging.
5. Documenting the Program
After testing, the software project is almost complete. The structure charts, pseudocodes,
flowcharts and decision tables developed during the design phase become documentation
for others who are associated with the software project. This phase ends by writing a
manual that provides an overview of the program’s functionality, tutorials for the
beginner, in-depth explanations of major program features, reference documentation of
all program commands and a thorough description of the error messages generated by the
program.
6. Deploying and Maintaining the Program
In the final phase, the program is deployed (installed) at the user’s site. Here also, the
program is kept under watch till the user gives a green signal to it. Even after the software
is completed, it needs to be maintained and evaluated regularly. In software maintenance,
the programming team fixes program errors and updates the software.