KEMBAR78
Software Engineering | PDF | Software Development Process | Software
0% found this document useful (0 votes)
25 views21 pages

Software Engineering

The document provides an overview of Software Engineering, detailing its processes, characteristics, advantages, and disadvantages. It discusses the Software Development Life Cycle (SDLC) models, software components, and the software crisis, highlighting the importance of systematic approaches in software development. Additionally, it compares Software Engineering processes with conventional engineering processes and outlines key software quality attributes and management systems.

Uploaded by

sonakshib30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views21 pages

Software Engineering

The document provides an overview of Software Engineering, detailing its processes, characteristics, advantages, and disadvantages. It discusses the Software Development Life Cycle (SDLC) models, software components, and the software crisis, highlighting the importance of systematic approaches in software development. Additionally, it compares Software Engineering processes with conventional engineering processes and outlines key software quality attributes and management systems.

Uploaded by

sonakshib30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering

ALIGARH

Unit: 1

Introduction: Introduction to Software Engineering, Software Components, Software


Characteristics, Software Crisis, Software Engineering Processes, Similarity and Differences
from Conventional Engineering Processes, Software Quality Attributes. Software
Development Life Cycle (SDLC) Models: Water Fall Model, Prototype Model, Spiral Model,
Evolutionary Development Models, Iterative Enhancement Models.

Introduction to Software Engineering:-


Software Engineering is the process of designing, developing, testing, and maintaining
software. It is a systematic and disciplined approach to software development that aims to
create high-quality, reliable, and maintainable software.

1. Software engineering includes a variety of techniques, tools, and methodologies,


including requirements analysis, design, testing, and maintenance.
2. It is a rapidly evolving field, and new tools and technologies are constantly being
developed to improve the software development process.
3. Software Engineering is mainly used for large projects based on software systems
rather than single programs or applications.
4. The main goal of Software Engineering is to develop software applications for
improving quality, budget, and time efficiency.

Advantages of Software Engineering:_-

There are several advantages to using a systematic and disciplined approach to software
development, such as:
1. Improved Quality: By following established software engineering principles and
techniques, the software can be developed with fewer bugs and higher reliability.

Page1 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
2. Increased Productivity: Using modern tools and methodologies can streamline the
development process, allowing developers to be more productive and complete
projects faster.
3. Better Maintainability: Software that is designed and developed using sound software
engineering practices is easier to maintain and update over time.
4. Reduced Costs: By identifying and addressing potential problems early in the
development process, software engineering can help to reduce the cost of fixing bugs
and adding new features later on.
5. Increased Customer Satisfaction: By involving customers in the development
process and developing software that meets their needs, software engineering can
help to increase customer satisfaction.
6. Better Team Collaboration: By using Agile methodologies and continuous integration,
software engineering allows for better collaboration among development teams.
7. Better Scalability: By designing software with scalability in mind, software engineering
can help to ensure that software can handle an increasing number of users and
transactions.
8. Better Security: By following the Software Development Life Cycle (SDLC) and
performing security testing, software engineering can help to prevent security breaches
and protect sensitive data.

Disadvantages of Software Engineering:-

While Software Engineering offers many advantages, there are also some potential
disadvantages to consider:
1. High upfront costs: Implementing a systematic and disciplined approach to software
development can be resource-intensive and require a significant investment in tools
and training.
2. Limited flexibility: Following established software engineering principles and
methodologies can be rigid and may limit the ability to quickly adapt to changing
requirements.
3. Bureaucratic: Software Engineering can create an environment that is bureaucratic,
with a lot of processes and paperwork, which may slow down the development
process.
4. Complexity: With the increase in the number of tools and methodologies, software
engineering can be complex and difficult to navigate.
5. Limited creativity: The focus on structure and process can stifle creativity and
innovation among developers.
6. High learning curve: The development process can be complex, and it requires a lot
of learning and training, which can be challenging for new developers.
7. High dependence on tools: Software engineering heavily depends on the tools, and if
the tools are not properly configured or are not compatible with the software, it can
cause issues.
8. High maintenance: The software engineering process requires regular maintenance to
ensure that the software is running efficiently, which can be costly and time-consuming.

Page2 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Software component :-

A software component refers to a modular, self-contained, and reusable piece of software that
provides specific functionality within a larger system. Components can range from small functions or
methods to entire subsystems that interact with other parts of a system.

Software Characteristics – Software Engineering:-


Software is defined as a collection of computer programs, procedures, rules, and data.
Software Characteristics are classified into six major components. Software engineering is
the process of designing, developing, testing, and maintaining software.

Page3 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Functionality:-

Functionality refers to the set of features and capabilities that a software program or
system provides to its users. It is one of the most important characteristics of software, as
it determines the usefulness of the software for the intended purpose.

Reliability:-

Reliability is a characteristic of software that refers to its ability to perform its intended
functions correctly and consistently over time. Reliability is an important aspect of software
quality, as it helps ensure that the software will work correctly and not fail unexpectedly.

Efficiency:-
.
Efficiency is a characteristic of software that refers to its ability to use resources such as
memory, processing power, and network bandwidth in an optimal way. High efficiency
means that a software program can perform its intended functions quickly and with minimal
use of resources, while low efficiency means that a software program may be slow or
consume excessive resources.

Usability:
It refers to the extent to which the software can be used with ease. the amount of effort or
time required to learn how to use the software.

Maintainability:
It refers to the ease with which modifications can be made in a software system to extend
its functionality, improve its performance, or correct errors.

Portability:
Software portability is the ability to run a program on different platforms with minimal
modification. It's a design goal that helps reduce development costs and increase user
flexibility.

Page4 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Software Crisis:-
Software Crisis is a term used in computer science for the difficulty of writing useful and
efficient computer programs in the required time. The software crisis was due to using the
same workforce, same methods, and same tools even though rapidly increasing software
demand, the complexity of software, and software challenges. With the increase in
software complexity, many software problems arose because existing methods were
insufficient.

Suppose we use the same workforce, same methods, and same tools after the fast
increase in software demand, software complexity, and software challenges. In that case,
there arise some issues like software budget problems, software efficiency
problems, software quality problems, software management, and delivery problems, etc.
This condition is called a Software Crisis.

Software Crisis

Causes of Software Crisis:-


Following are the causes of Software Crisis:
• The cost of owning and maintaining software was as expensive as developing
the software.
• At that time Projects were running overtime.
• At that time Software was very inefficient.
• The quality of the software was low quality.
• Software often did not meet user requirements.
• The average software project overshoots its schedule by half.
• At that time Software was never delivered.
• Non-optimal resource utilization.

Page5 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
• Challenging to alter, debug, and enhance.
• The software complexity is harder to change.

Software Engineering Processes:-


Software is the set of instructions in the form of programs to govern the computer
system and to process the hardware components. To produce a software product
the set of activities is used. This set is called a software process.

Software Processes:-
Software processes in software engineering refer to the methods and techniques used to
develop and maintain software. Some examples of software processes include:

• Waterfall: a linear, sequential approach to software development, with distinct phases


such as requirements gathering, design, implementation, testing, and maintenance.
• Agile: a flexible, iterative approach to software development, with an emphasis on
rapid prototyping and continuous delivery.
• Scrum: a popular agile methodology that emphasizes teamwork, iterative
development, and a flexible, adaptive approach to planning and management.
• DevOps: a set of practices that aims to improve collaboration and communication
between development and operations teams, with an emphasis on automating the
software delivery process.
Each process has its own set of advantages and disadvantages, and the choice of which
one to use depends on the specific project and organization.

Components of Software:-

There are three main components of the software:


1. Program: A computer program is a list of instructions that tell a computer what to do.
2. Documentation: Source information about the product contained in design
documents, detailed code comments, etc.
3. Operating Procedures: Set of step-by-step instructions compiled by an organization
to help workers carry out complex routine operations.
Other Software Components
Other Software Components are:
1. Code: the instructions that a computer executes in order to perform a specific task or
set of tasks.
2. Data: the information that the software uses or manipulates.
3. User interface: the means by which the user interacts with the software, such as
buttons, menus, and text fields.
4. Libraries: pre-written code that can be reused by the software to perform common
tasks.
5. Documentation: information that explains how to use and maintain the software, such
as user manuals and technical guides.
6. Test cases: a set of inputs, execution conditions, and expected outputs that are used
to test the software for correctness and reliability.
7. Configuration files: files that contain settings and parameters that are used to
configure the software to run in a specific environment.

Page6 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
8. Build and deployment scripts: scripts or tools that are used to build, package, and
deploy the software to different environments.
9. Metadata: information about the software, such as version numbers, authors, and
copyright information.

Key Process Activities:-

There four basic key process activities are:


1. Software Specifications: In this process, detailed description of a software system to
be developed with its functional and non-functional requirements.
2. Software Development: In this process, designing, programming, documenting,
testing, and bug fixing is done.
3. Software Validation: In this process, evaluation software product is done to ensure
that the software meets the business requirements as well as the end users needs.
4. Software Evolution: It is a process of developing software initially, then timely
updating it for various reasons.

Similarity and Differences from Conventional Engineering


Processes:-

Conventional Engineering
Aspect Software Engineering Process Process

Software Engineering Process is a


The conventional Engineering
process that majorly involves
Process is a process that majorly
computer science, information
involves science, mathematics,
technology, and discrete
and empirical knowledge.
Process mathematics.

It is mainly related to computers, It is about building cars,


programming, and writing codes machines, hardware, buildings,
Focus Area for building applications. etc.

In Software Engineering Process In Conventional Engineering


construction and development Process construction and
Cost costs are low. development cost is high.

It can involve the application of It usually applies only known and


new and untested elements in tested principles to meet product
Application software projects. requirements.

Development In the Software Engineering In Conventional Engineering


Effort Process, most development effort Process, most development

Page7 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Conventional Engineering
Aspect Software Engineering Process Process

goes into building new designs and efforts are required to change old
features. designs.

It majorly emphasizes mass


It majorly emphasizes quality.
Emphasis production.

Product development develops


Product development develops
tangible products (e.g. bridges,
intangible products (software).
Product Nature buildings).

Design requirements may change


Design Requirements are
Design throughout the development
typically well-defined upfront.
Requirement process.

Testing is an integral part of the Testing occurs mainly after


Testing development process. product completion.

Prototyping is common and helps Prototyping is less common due


Prototyping to refine requirements. to cost and time.

Maintenance and updates are


Maintenance is typically
necessary to keep software
scheduled or reactive.
Maintenance relevant.

Software development often Conventional engineering may


involves complex logic and have more complex physical
Complexity algorithms. properties to deal with.

Software development often Conventional engineering may


follows established standards and have well-established regulations
Framework frameworks. and standards.

Conventional engineering may be


Software development is typically
more expensive to start due to
less expensive to start, but costs
materials and construction but
may increase with maintenance
may have lower maintenance
and updates.
Cost Dynamics costs.

Conventional engineering may


Agile methodologies are commonly
use more traditional project
used in software development.
Methodologies management approaches.

Page8 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Software Quality Attributes:-


Software Quality shows how good and reliable a product is. To convey an associate
degree example, think about functionally correct software. It performs all functions as laid
out in the SRS document (software requirements specification).

Factors of Software Quality:-


The modern read of high-quality associates with software many quality factors like the
following:
1. Portability: Software is claimed to be transportable, if it may be simply created to
figure in several package environments, in several machines, with alternative code
merchandise, etc.
2. Usability: A software has smart usability if completely different classes of users (i.e.
knowledgeable and novice users) will simply invoke the functions of the merchandise.
3. Reusability: Software has smart reusability if completely different modules of the
merchandise will simply be reused to develop new merchandise.
4. Correctness: Software is correct if completely different needs as laid out in the SRS
document are properly enforced.
5. Maintainability: A software is reparable, if errors may be simply corrected as and once
they show up, new functions may be simply added to the merchandise, and therefore
the functionalities of the merchandise may be simply changed, etc
6. Reliability: Software is more reliable if it has fewer failures. Since software engineers
do not deliberately plan for their software to fail, reliability depends on the number and
type of mistakes they make. Designers can improve reliability by ensuring the software
is easy to implement and change, by testing it thoroughly, and also by ensuring that if
failures occur, the system can handle them or can recover easily.
7. Efficiency. The more efficient software is, the less it uses of CPU-time, memory, disk
space, network bandwidth, and other resources. This is important to customers in order
to reduce their costs of running the software, although with today’s powerful
computers, CPU time, memory and disk usage are less of a concern than in years
gone by.

Software Quality Management System:-

Software Quality Management System contains the methods that are used by the
authorities to develop products having the desired quality.
Some of the methods are:
• Managerial Structure: Quality System is responsible for managing the structure as a
whole. Every Organization has a managerial structure.
• Individual Responsibilities: Each individual present in the organization must have
some responsibilities that should be reviewed by the top management and each
individual present in the system must take this seriously.
• Quality System Activities: The activities which each quality system must have been
o Project Auditing.
o Review of the quality system.
o It helps in the development of methods and guidelines.

Page9 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Software Development Life Cycle (SDLC):-

SDLC is a process followed for software building within a software


organization. SDLC consists of a precise plan that describes how to develop, maintain,
replace, and enhance specific software. The life cycle defines a method for improving the
quality of software and the all-around development process.

Stages of the Software Development Life Cycle:-

SDLC specifies the task(s) to be performed at various stages by a software


engineer or developer.

Stage-1: Planning and Requirement Analysis:-

Page10 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Planning is a crucial step in everything, just as in software development. In this same
stage, requirement analysis is also performed by the developers of the organization. This
is attained from customer inputs, and sales department/market surveys.

Stage-2: Defining Requirements


In this stage, all the requirements for the target software are specified. These requirements
get approval from customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort of
document that specifies all those things that need to be defined and created during the
entire project cycle.

Page11 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Design Document Specification (DDS):-

is assessed by market analysts and stakeholders. After evaluating all the possible
factors, the most practical and logical design is chosen for development.

Stage-4: Developing Product


At this stage, the fundamental development of the product starts. For this, developers use
a specific programming code as per the design in the DDS. Hence, it is important for the
coders to follow the protocols set by the association. Conventional programming tools like
compilers, interpreters, debuggers, etc. are also put into use at this stage. Some popular
languages like C/C++, Python, Java, etc. are put into use as per the software regulations.

Page12 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Stage-5: Product Testing and Integration

After the development of the product, testing of the software is necessary to ensure its
smooth execution. Although, minimal testing is conducted at every stage of
SDLC. Therefore, at this stage, all the probable flaws are tracked, fixed, and retested. This
ensures that the product confronts the quality requirements of SRS.

Stage-6: Deployment and Maintenance of Products:-

After detailed testing, the conclusive product is released in phases as per the
organization’s strategy. Then it is tested in a real industrial environment. It is important to
ensure its smooth performance. If it performs well, the organization sends out the product
as a whole. After retrieving beneficial feedback, the company releases it as it is or with
auxiliary improvements to make it further helpful for the customers.

Page13 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Water fall Model :-

The waterfall model is a software development model used in the context of large, complex
projects, typically in the field of information technology. It is characterized by a structured,
sequential approach to project management and software development.
The waterfall model is useful in situations where the project requirements are well-defined
and the project goals are clear. It is often used for large-scale projects with long timelines,
where there is little room for error and the project stakeholders need to have a high level of
confidence in the outcome.

Features of Waterfall Model


Following are the features of the waterfall model:
1. Sequential Approach: The waterfall model involves a sequential approach to software
development, where each phase of the project is completed before moving on to the
next one.
2. Document-Driven: The waterfall model depended on documentation to ensure that
the project is well-defined and the project team is working towards a clear set of goals.
3. Quality Control: The waterfall model places a high emphasis on quality control and
testing at each phase of the project, to ensure that the final product meets the
requirements and expectations of the stakeholders.
4. Rigorous Planning: The waterfall model involves a careful planning process, where
the project scope, timelines, and deliverables are carefully defined and monitored
throughout the project lifecycle.

Importance of Waterfall Model:-


Following are the importance of waterfall model:
1. Clarity and Simplicity: The linear form of the Waterfall Model offers a simple and
unambiguous foundation for project development.

Page14 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
2. Clearly Defined Phases: The Waterfall Model phases each have unique inputs and
outputs, guaranteeing a planned development with obvious checkpoints.
3. Documentation: A focus on thorough documentation helps with software
comprehension, maintenance, and future growth.
4. Stability in Requirements: Suitable for projects when the requirements are clear and
stable, reducing modifications as the project progresses.
5. Resource Optimization: It encourages effective task-focused work without
continuously changing contexts by allocating resources according to project phases.
6. Relevance for Small Projects: Economical for modest projects with simple
specifications and minimal complexity.

Phases of Waterfall Model:-


The Waterfall Model has six phases which are:
1. Requirements: The first phase involves gathering requirements from stakeholders and
analyzing them to understand the scope and objectives of the project.
2. Design: Once the requirements are understood, the design phase begins. This
involves creating a detailed design document that outlines the software architecture,
user interface, and system components.
3. Development: The Development phase includes implementation involves coding the
software based on the design specifications. This phase also includes unit testing to
ensure that each component of the software is working as expected.
4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets
the requirements and is free from defects.
5. Deployment: Once the software has been tested and approved, it is deployed to the
production environment.
6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves
fixing any issues that arise after the software has been deployed and ensuring that it
continues to meet the requirements over time.

Page15 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Waterfall Model-Software Engineering

Prototype Model
The prototype model requires that before carrying out the development of actual
software, a working prototype of the system should be built. A prototype is a toy
implementation of the system. A prototype usually turns out to be a very crude version of
the actual system, possible exhibiting limited functional capabilities, low reliability, and
inefficient performance as compared to actual software. In many instances, the client
only has a general view of what is expected from the software product. In such a
scenario where there is an absence of detailed information regarding the input to the
system, the processing needs, and the output requirement, the prototyping model may
be employed.

Page16 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Steps of Prototype Model


1. Requirement Gathering and Analyst
2. Quick Decision
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement
6. Engineer Product

Advantage of Prototype Model


1. Reduce the risk of incorrect user requirement
2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.

Page17 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
Disadvantage of Prototype Model
1. An unstable/badly implemented prototype often becomes the final product.
2. Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if customer withdraw
o May be too customer specific, no broad market

Spiral model, evolutionary development models:-

Spiral Model
The spiral model, initially proposed by Boehm, is an evolutionary software process
model that couples the iterative feature of prototyping with the controlled and systematic
aspects of the linear sequential model. It implements the potential for rapid development
of new versions of the software. Using the spiral model, the software is developed in a
series of incremental releases. During the early iterations, the additional release may be
a paper model or prototype. During later iterations, more and more complete versions of
the engineered system are produced.

The Spiral Model is shown in fig:

Page18 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1

Each cycle in the spiral is divided into four parts:

Objective setting: Each cycle in the spiral starts with the identification of purpose for
that cycle, the various alternatives that are possible for achieving the targets, and the
constraints that exists.

Risk Assessment and reduction: The next phase in the cycle is to calculate these
various alternatives based on the goals and constraints. The focus of evaluation in this
stage is located on the risk perception for the project.

Development and validation: The next phase is to develop strategies that resolve
uncertainties and risks. This process may include activities such as benchmarking,
simulation, and prototyping.

Planning: Finally, the next step is planned. The project is reviewed, and a choice made
whether to continue with a further period of the spiral. If it is determined to keep, plans
are drawn up for the next step of the project.

The development phase depends on the remaining risks. For example, if performance or
user-interface risks are treated more essential than the program development risks, the
next phase may be an evolutionary development that includes developing a more
detailed prototype for solving the risks.

Page19 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
The risk-driven feature of the spiral model allows it to accommodate any mixture of a
specification-oriented, prototype-oriented, simulation-oriented, or another type of
approach. An essential element of the model is that each period of the spiral is
completed by a review that includes all the products developed during that cycle,
including plans for the next cycle. The spiral model works for development as well as
enhancement projects.

Advantages
o High amount of risk analysis
o Useful for large and mission-critical projects.

Disadvantages
o Can be a costly model to use.
o Risk analysis needed highly particular expertise
o Doesn't work well for smaller projects.

Iterative Model:-
The Iterative Model allows the accessing earlier phases, in which the variations made
respectively. The final output of the project renewed at the end of the Software
Development Life Cycle (SDLC) process.

Page20 Faculty: Kajal saxena


VISION INSTITUTE OF TECHNOLOGY, Subject: Software Engineering
ALIGARH

Unit: 1
The various phases of Iterative model are as follows:

1. Requirement gathering & analysis: In this phase, requirements are gathered from
customers and check by an analyst whether requirements will fulfil or not. Analyst
checks that need will achieve within budget or not. After all of this, the software team
skips to the next phase.

2. Design: In the design phase, team design the software by the different diagrams like
Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.

3. Implementation: In the implementation, requirements are written in the coding


language and transformed into computer programmes which are called Software.

4. Testing: After completing the coding phase, software testing starts using different test
methods. There are many test methods, but the most common are white box, black box,
and grey box test methods.

5. Deployment: After completing all the phases, software is deployed to its work
environment.

6. Review: In this phase, after the product deployment, review phase is performed to
check the behavior and validity of the developed product. And if there are any error
found then the process starts again from the requirement gathering.

7. Maintenance: In the maintenance phase, after deployment of the software in the


working environment there may be some bugs, some errors or new updates are
required. Maintenance involves debugging and new addition options.

Advantage of Iterative Model:


1. Testing and debugging during smaller iteration is easy.
2. A Parallel development can plan.
3. It is easily acceptable to ever-changing needs of the project.
4. Risks are identified and resolved during iteration.
5. Limited time spent on documentation and extra time on designing.

Disadvantage of Iterative Model:


1. It is not suitable for smaller projects.
2. More Resources may be required.
3. Design can be changed again and again because of imperfect requirements.
4. Requirement changes can cause over budget.
5. Project completion date not confirmed because of changing requirements.

Page21 Faculty: Kajal saxena

You might also like