0% found this document useful (0 votes)
16 views

Software Models

The document provides information on the waterfall and iterative software development lifecycle (SDLC) models. The waterfall model involves sequential phases from requirements gathering to maintenance, while the iterative model takes an incremental approach, developing the system in portions through repeated cycles. The waterfall model is suited for well-defined requirements but not flexible. The iterative model allows for early feedback and adapting requirements but works best for large projects.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Software Models

The document provides information on the waterfall and iterative software development lifecycle (SDLC) models. The waterfall model involves sequential phases from requirements gathering to maintenance, while the iterative model takes an incremental approach, developing the system in portions through repeated cycles. The waterfall model is suited for well-defined requirements but not flexible. The iterative model allows for early feedback and adapting requirements but works best for large projects.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

SDLC - Waterfall Model

The Waterfall Model was the first Process Model to be introduced. It is also referred
to as a linear-sequential life cycle model. It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin
and there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software
development.
The waterfall Model illustrates the software development process in a linear
sequential flow. This means that any phase in the development process begins only
if the previous phase is complete. In this waterfall model, the phases do not overlap.

Waterfall Model - Design


Waterfall approach was first SDLC Model to be used widely in Software Engineering
to ensure success of the project. In "The Waterfall" approach, the whole process of
software development is divided into separate phases. In this Waterfall model,
typically, the outcome of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall
Model.

The sequential phases in Waterfall model are −


• Requirement Gathering and analysis − All possible requirements of the
system to be developed are captured in this phase and documented in a
requirement specification document.
• System Design − The requirement specifications from first phase are studied
in this phase and the system design is prepared. This system design helps in
specifying hardware and system requirements and helps in defining the overall
system architecture.
• Implementation − With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next
phase. Each unit is developed and tested for its functionality, which is referred
to as Unit Testing.
• Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
• Deployment of system − Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into
the market.
• Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance the
product some better versions are released. Maintenance is done to deliver
these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing
steadily downwards (like a waterfall) through the phases. The next phase is started
only after the defined set of goals are achieved for previous phase and it is signed
off, so the name "Waterfall Model". In this model, phases do not overlap.

Waterfall Model - Application


Every software developed is different and requires a suitable SDLC approach to be
followed based on the internal and external factors. Some situations where the use
of Waterfall model is most appropriate are −
• Requirements are very well documented, clear and fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• Ample resources with required expertise are available to support the product.
• The project is short.

Waterfall Model - Advantages


The advantages of waterfall development are that it allows for departmentalization
and control. A schedule can be set with deadlines for each stage of development and
a product can proceed through the development process model phases one by one.
Development moves from concept, through design, implementation, testing,
installation, troubleshooting, and ends up at operation and maintenance. Each phase
of development proceeds in strict order.
Some of the major advantages of the Waterfall Model are as follows −
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Clearly defined stages.
• Well understood milestones.
• Easy to arrange tasks.
• Process and results are well documented.

Waterfall Model - Disadvantages


The disadvantage of waterfall development is that it does not allow much reflection
or revision. Once an application is in the testing stage, it is very difficult to go back
and change something that was not well-documented or thought upon in the concept
stage.
The major disadvantages of the Waterfall Model are as follows −
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high risk
of changing. So, risk and uncertainty is high with this process model.
• It is difficult to measure progress within stages.
• Cannot accommodate changing requirements.
• Adjusting scope during the life cycle can end a project.
• Integration is done as a "big-bang. at the very end, which doesn't allow
identifying any technological or business bottleneck or challenges early.

SDLC - Iterative Model


In the Iterative model, iterative process starts with a simple implementation of a small
set of the software requirements and iteratively enhances the evolving versions until
the complete system is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing just part
of the software, which is then reviewed to identify further requirements. This process
is then repeated, producing a new version of the software at the end of each iteration
of the model.
Iterative Model - Design
Iterative process starts with a simple implementation of a subset of the software
requirements and iteratively enhances the evolving versions until the full system is
implemented. At each iteration, design modifications are made and new functional
capabilities are added. The basic idea behind this method is to develop a system
through repeated cycles (iterative) and in smaller portions at a time (incremental).
The following illustration is a representation of the Iterative and Incremental model −

Iterative and Incremental development is a combination of both iterative design or


iterative method and incremental build model for development. "During software
development, more than one iteration of the software development cycle may be in
progress at the same time." This process may be described as an "evolutionary
acquisition" or "incremental build" approach."
In this incremental model, the whole requirement is divided into various builds. During
each iteration, the development module goes through the requirements, design,
implementation and testing phases. Each subsequent release of the module adds
function to the previous release. The process continues till the complete system is
ready as per the requirement.
The key to a successful use of an iterative software development lifecycle is rigorous
validation of requirements, and verification & testing of each version of the software
against those requirements within each cycle of the model. As the software evolves
through successive cycles, tests must be repeated and extended to verify each
version of the software.

Iterative Model - Application


Like other SDLC models, Iterative and incremental development has some specific
applications in the software industry. This model is most often used in the following
scenarios −
• Requirements of the complete system are clearly defined and understood.
• Major requirements must be defined; however, some functionalities or
requested enhancements may evolve with time.
• There is a time to the market constraint.
• A new technology is being used and is being learnt by the development team
while working on the project.
• Resources with needed skill sets are not available and are planned to be used
on contract basis for specific iterations.
• There are some high-risk features and goals which may change in the future.

Iterative Model - Pros and Cons


The advantage of this model is that there is a working model of the system at a very
early stage of development, which makes it easier to find functional or design flaws.
Finding issues at an early stage of development enables to take corrective measures
in a limited budget.
The disadvantage with this SDLC model is that it is applicable only to large and bulky
software development projects. This is because it is hard to break a small software
system into further small serviceable increments/modules.
The advantages of the Iterative and Incremental SDLC Model are as follows −
• Some working functionality can be developed quickly and early in the life cycle.
• Results are obtained early and periodically.
• Parallel development can be planned.
• Progress can be measured.
• Less costly to change the scope/requirements.
• Testing and debugging during smaller iteration is easy.
• Risks are identified and resolved during iteration; and each iteration is an easily
managed milestone.
• Easier to manage risk - High risk part is done first.
• With every increment, operational product is delivered.
• Issues, challenges and risks identified from each increment can be
utilized/applied to the next increment.
• Risk analysis is better.
• It supports changing requirements.
• Initial Operating time is less.
• Better suited for large and mission-critical projects.
• During the life cycle, software is produced early which facilitates customer
evaluation and feedback.
The disadvantages of the Iterative and Incremental SDLC Model are as follows −
• More resources may be required.
• Although cost of change is lesser, but it is not very suitable for changing
requirements.
• More management attention is required.
• System architecture or design issues may arise because not all requirements
are gathered in the beginning of the entire life cycle.
• Defining increments may require definition of the complete system.
• Not suitable for smaller projects.
• Management complexity is more.
• End of project may not be known which is a risk.
• Highly skilled resources are required for risk analysis.
• Projects progress is highly dependent upon the risk analysis phase.

SDLC - Spiral Model


.

The spiral model combines the idea of iterative development with the systematic,
controlled aspects of the waterfall model. This Spiral model is a combination of
iterative development process model and sequential linear development model i.e.
the waterfall model with a very high emphasis on risk analysis. It allows incremental
releases of the product or incremental refinement through each iteration around the
spiral.

Spiral Model - Design


The spiral model has four phases. A software project repeatedly passes through
these phases in iterations called Spirals.
Identification
This phase starts with gathering the business requirements in the baseline spiral. In
the subsequent spirals as the product matures, identification of system requirements,
subsystem requirements and unit requirements are all done in this phase.
This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the
spiral, the product is deployed in the identified market.
Design
The Design phase starts with the conceptual design in the baseline spiral and
involves architectural design, logical design of modules, physical product design and
the final design in the subsequent spirals.
Construct or Build
The Construct phase refers to production of the actual software product at every
spiral. In the baseline spiral, when the product is just thought of and the design is
being developed a POC (Proof of Concept) is developed in this phase to get customer
feedback.
Then in the subsequent spirals with higher clarity on requirements and design details
a working model of the software called build is produced with a version number.
These builds are sent to the customer for feedback.
Evaluation and Risk Analysis
Risk Analysis includes identifying, estimating and monitoring the technical feasibility
and management risks, such as schedule slippage and cost overrun. After testing the
build, at the end of first iteration, the customer evaluates the software and provides
feedback.
The following illustration is a representation of the Spiral Model, listing the activities
in each phase.

Based on the customer evaluation, the software development process enters the next
iteration and subsequently follows the linear approach to implement the feedback
suggested by the customer. The process of iterations along the spiral continues
throughout the life of the software.

Spiral Model Application


The Spiral Model is widely used in the software industry as it is in sync with the natural
development process of any product, i.e. learning with maturity which involves
minimum risk for the customer as well as the development firms.
The following pointers explain the typical uses of a Spiral Model −
• When there is a budget constraint and risk evaluation is important.
• For medium to high-risk projects.
• Long-term project commitment because of potential changes to economic
priorities as the requirements change with time.
• Customer is not sure of their requirements which is usually the case.
• Requirements are complex and need evaluation to get clarity.
• New product line which should be released in phases to get enough customer
feedback.
• Significant changes are expected in the product during the development cycle.

Spiral Model - Pros and Cons


The advantage of spiral lifecycle model is that it allows elements of the product to be
added in, when they become available or known. This assures that there is no conflict
with previous requirements and design.
This method is consistent with approaches that have multiple software builds and
releases which allows making an orderly transition to a maintenance activity. Another
positive aspect of this method is that the spiral model forces an early user involvement
in the system development effort.
On the other side, it takes a very strict management to complete such products and
there is a risk of running the spiral in an indefinite loop. So, the discipline of change
and the extent of taking change requests is very important to develop and deploy the
product successfully.
The advantages of the Spiral SDLC Model are as follows −
• Changing requirements can be accommodated.
• Allows extensive use of prototypes.
• Requirements can be captured more accurately.
• Users see the system early.
• Development can be divided into smaller parts and the risky parts can be
developed earlier which helps in better risk management.
The disadvantages of the Spiral SDLC Model are as follows −
• Management is more complex.
• End of the project may not be known early.
• Not suitable for small or low risk projects and could be expensive for small
projects.
• Process is complex
• Spiral may go on indefinitely.
• Large number of intermediate stages requires excessive documentation.

SDLC - Software Prototype Model

The Software Prototyping refers to building software application prototypes which


displays the functionality of the product under development, but may not actually hold
the exact logic of the original software.
Software prototyping is becoming very popular as a software development model, as
it enables to understand customer requirements at an early stage of development. It
helps get valuable feedback from the customer and helps software designers and
developers understand about what exactly is expected from the product under
development.

What is Software Prototyping?


Prototype is a working model of software with some limited functionality. The
prototype does not always hold the exact logic used in the actual software application
and is an extra effort to be considered under effort estimation.
Prototyping is used to allow the users evaluate developer proposals and try them out
before implementation. It also helps understand the requirements which are user
specific and may not have been considered by the developer during product design.
Following is a stepwise approach explained to design a software prototype.
Basic Requirement Identification
This step involves understanding the very basics product requirements especially in
terms of user interface. The more intricate details of the internal design and external
aspects like performance and security can be ignored at this stage.
Developing the initial Prototype
The initial Prototype is developed in this stage, where the very basic requirements
are showcased and user interfaces are provided. These features may not exactly
work in the same manner internally in the actual software developed. While, the
workarounds are used to give the same look and feel to the customer in the prototype
developed.
Review of the Prototype
The prototype developed is then presented to the customer and the other important
stakeholders in the project. The feedback is collected in an organized manner and
used for further enhancements in the product under development.
Revise and Enhance the Prototype
The feedback and the review comments are discussed during this stage and some
negotiations happen with the customer based on factors like – time and budget
constraints and technical feasibility of the actual implementation. The changes
accepted are again incorporated in the new Prototype developed and the cycle
repeats until the customer expectations are met.
Prototypes can have horizontal or vertical dimensions. A Horizontal prototype
displays the user interface for the product and gives a broader view of the entire
system, without concentrating on internal functions. A Vertical prototype on the other
side is a detailed elaboration of a specific function or a sub system in the product.
The purpose of both horizontal and vertical prototype is different. Horizontal
prototypes are used to get more information on the user interface level and the
business requirements. It can even be presented in the sales demos to get business
in the market. Vertical prototypes are technical in nature and are used to get details
of the exact functioning of the sub systems. For example, database requirements,
interaction and data processing loads in a given sub system.

Software Prototyping - Types


There are different types of software prototypes used in the industry. Following are
the major software prototyping types used widely −
Throwaway/Rapid Prototyping
Throwaway prototyping is also called as rapid or close ended prototyping. This type
of prototyping uses very little efforts with minimum requirement analysis to build a
prototype. Once the actual requirements are understood, the prototype is discarded
and the actual system is developed with a much clear understanding of user
requirements.
Evolutionary Prototyping
Evolutionary prototyping also called as breadboard prototyping is based on building
actual functional prototypes with minimal functionality in the beginning. The prototype
developed forms the heart of the future prototypes on top of which the entire system
is built. By using evolutionary prototyping, the well-understood requirements are
included in the prototype and the requirements are added as and when they are
understood.
Incremental Prototyping
Incremental prototyping refers to building multiple functional prototypes of the various
sub-systems and then integrating all the available prototypes to form a complete
system.
Extreme Prototyping
Extreme prototyping is used in the web development domain. It consists of three
sequential phases. First, a basic prototype with all the existing pages is presented in
the HTML format. Then the data processing is simulated using a prototype services
layer. Finally, the services are implemented and integrated to the final prototype. This
process is called Extreme Prototyping used to draw attention to the second phase of
the process, where a fully functional UI is developed with very little regard to the
actual services.

Software Prototyping - Application


Software Prototyping is most useful in development of systems having high level of
user interactions such as online systems. Systems which need users to fill out forms
or go through various screens before data is processed can use prototyping very
effectively to give the exact look and feel even before the actual software is
developed.
Software that involves too much of data processing and most of the functionality is
internal with very little user interface does not usually benefit from prototyping.
Prototype development could be an extra overhead in such projects and may need
lot of extra efforts.

Software Prototyping - Pros and Cons


Software prototyping is used in typical cases and the decision should be taken very
carefully so that the efforts spent in building the prototype add considerable value to
the final software developed. The model has its own pros and cons discussed as
follows.
The advantages of the Prototyping Model are as follows −
• Increased user involvement in the product even before its implementation.
• Since a working model of the system is displayed, the users get a better
understanding of the system being developed.
• Reduces time and cost as the defects can be detected much earlier.
• Quicker user feedback is available leading to better solutions.
• Missing functionality can be identified easily.
• Confusing or difficult functions can be identified.
The Disadvantages of the Prototyping Model are as follows −
• Risk of insufficient requirement analysis owing to too much dependency on the
prototype.
• Users may get confused in the prototypes and actual systems.
• Practically, this methodology may increase the complexity of the system as
scope of the system may expand beyond original plans.
• Developers may try to reuse the existing prototypes to build the actual system,
even when it is not technically feasible.
• The effort invested in building prototypes may be too much if it is not monitored
properly.
Software Engineering | Prototyping Model
Prototyping is defined as the process of developing a working replication of a
product or system that has to be engineered. It offers a small scale facsimile
of the end product and is used for obtaining customer feedback as described
below:

Attention reader! Don’t stop learning now. Get hold of all the important CS
Theory concepts for SDE interviews with the CS Theory Course at a
student-friendly price and become industry ready.

The Prototyping Model is one of the most popularly used Software


Development Life Cycle Models (SDLC models). This model is used when the
customers do not know the exact project requirements beforehand. In this
model, a prototype of the end product is first developed, tested and refined as
per customer feedback repeatedly till a final acceptable prototype is achieved
which forms the basis for developing the final product.
In this process model, the system is partially implemented before or during
the analysis phase thereby giving the customers an opportunity to see the
product early in the life cycle. The process starts by interviewing the
customers and developing the incomplete high-level paper model. This
document is used to build the initial prototype supporting only the basic
functionality as desired by the customer. Once the customer figures out the
problems, the prototype is further refined to eliminate them. The process
continues until the user approves the prototype and finds the working model
to be satisfactory.
There are four types of model available:

A) Rapid Throwaway Prototyping –


This technique offers a useful method of exploring ideas and getting
customer feedback for each of them. In this method, a developed prototype
need not necessarily be a part of the ultimately accepted prototype.
Customer feedback helps in preventing unnecessary design faults and
hence, the final prototype developed is of better quality.

B) Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on
the basis of customer feedback till it finally gets accepted. In comparison to
Rapid Throwaway Prototyping, it offers a better approach which saves time
as well as effort. This is because developing a prototype from scratch for
every iteration of the process can sometimes be very frustrating for the
developers.

C) Incremental Prototyping – In this type of incremental Prototyping, the


final expected product is broken into different small pieces of prototypes and
being developed individually. In the end, when all individual pieces are
properly developed, then the different prototypes are collectively merged into
a single final product in their predefined order. It’s a very efficient approach
which reduces the complexity of the development process, where the goal is
divided into sub-parts and each sub-part is developed individually. The time
interval between the project begin and final delivery is substantially reduced
because all parts of the system are prototyped and tested simultaneously. Of
course, there might be the possibility that the pieces just not fit together due
to some lack ness in the development phase – this can only be fixed by
careful and complete plotting of the entire system before prototyping starts.
D) Extreme Prototyping – This method is mainly used for web
development. It is consists of three sequential independent phases:
D.1) In this phase a basic prototype with all the existing static pages are
presented in the HTML format.
D.2) In the 2nd phase, Functional screens are made with a simulate data
process using a prototype services layer.
D.3) This is the final step where all the services are implemented and
associated with the final prototype.
This Extreme Prototyping method makes the project cycling and delivery
robust and fast, and keeps the entire developer team focus centralized on
products deliveries rather than discovering all possible needs and
specifications and adding unnecessitated features.
Advantages and Disadvantages of
Prototype model
Prototyping Model is used when the customers do not know the exact project
requirements beforehand. In this model, a prototype of the end product is first
developed, tested and refined as per customer feedback repeatedly till a final
acceptable prototype is achieved which forms the basis for developing the final
product.

System is partially implemented before or during the analysis phase thereby


giving the customers an opportunity to see the product early in the life cycle.
Advantages of using Prototype Model :
1. This model is flexible in design.
2. It is easy to detect errors.
3. We can find missing functionality easily.
4. There is scope of refinement, it means new requirements can be easily
accommodated.
5. It can be reused by the developer for more complicated projects in the
future.
6. It ensures a greater level of customer satisfaction and comfort.
7. It is ideal for online system.
8. It helps developers and users both understand the system better.
9. Integration requirements are very well understood and deployment
channels are decided at a very early stage.
10. It can actively involve users in the development phase.
Disadvantages of using Prototype Model :
1. This model is costly.
2. It has poor documentation because of continuously changing customer
requirements.
3. There may be too much variation in requirements.
4. Customers sometimes demand the actual product to be delivered soon
after seeing an early prototype.
5. There may be sub-optimal solutions because of developers in a hurry to
build prototypes.
6. Customers may not be satisfied or interested in the product after seeing
the initial prototype.
7. There is certainty in determining the number of iterations.
8. There may be incomplete or inadequate problem analysis.
9. There may increase the complexity of the system.

SDLC - Big Bang Model

The Big Bang model is an SDLC model where we do not follow any specific process.
The development just starts with the required money and efforts as the input, and the
output is the software developed which may or may not be as per customer
requirement. This Big Bang Model does not follow a process/procedure and there is
a very little planning required. Even the customer is not sure about what exactly he
wants and the requirements are implemented on the fly without much analysis.
Usually this model is followed for small projects where the development teams are
very small.

Big Bang Model ─ Design and Application


The Big Bang Model comprises of focusing all the possible resources in the software
development and coding, with very little or no planning. The requirements are
understood and implemented as they come. Any changes required may or may not
need to revamp the complete software.
This model is ideal for small projects with one or two developers working together
and is also useful for academic or practice projects. It is an ideal model for the product
where requirements are not well understood and the final release date is not given.

Big Bang Model - Pros and Cons


The advantage of this Big Bang Model is that it is very simple and requires very little
or no planning. Easy to manage and no formal procedure are required.
However, the Big Bang Model is a very high risk model and changes in the
requirements or misunderstood requirements may even lead to complete reversal or
scraping of the project. It is ideal for repetitive or small projects with minimum risks.
The advantages of the Big Bang Model are as follows −
• This is a very simple model
• Little or no planning required
• Easy to manage
• Very few resources required
• Gives flexibility to developers
• It is a good learning aid for new comers or students.
The disadvantages of the Big Bang Model are as follows −
• Very High risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Can turn out to be very expensive if requirements are misunderstood.

Evolutionary Model in Software


Engineering
What is Evolutionary Model ?
Evolutionary model in software engineering is also referred as the incremental model of software
development. This model is mainly used in Agile approach of software development. The whole
product is developed in iterative and incremental manner.
In evolutionary model approach software requirements are broken in several sub modules like M1,
M2, M3……Mn. These sub modules are designed and developed in form of release. In first iteration
module M1 is developed and delivered. In second iteration module M2 is developed and integrated
with module M1.

Now this increment M1+M2 is delivered to customer after second iteration. In the same way whole
software is developed and in the end final software product is delivered to customer.

Basic Evolutionary model is as shown in following Figure.


First the core modules that don’t need the service from others modules are developed.

Each successive version or model of the software product is a fully functioning software capable of
performing more work than the previous versions or model.

Every deliverable should be meaningful for the customer. It should perform a functionality of the
software.

This model is normally used to develop the large software consist of large number of functionality.

Various phases involved in each iteration are as shown in the above figure. Tasks are categorized into
phases and are ”time-boxed”, that is, time frames are allotted to each task. Each time-boxed phrase is
called a sprint. Each Sprint has a defined duration of time, say, a week, few days or month.

Advantages of Evolutionary Model


• Evolutionary model is very helpful in building the large software product.
• This model also provides a chance to user to experiment with a partially developed
software much before the complete version of the system is delivered. It becomes easy for
the developer to remove the bugs and defects in early stages of software development.
• This model helps to accurately elicit user requirements during the delivery of different
versions of the software.
• In evolutionary model, this is easy to modify and add new functionality during the
development of the software.
• Evolutionary Model approach is Agile Approach for Software Development.

Disadvantages of Evolutionary Model


This is Difficult sometime to divide the problem into several modules in such a way that these would
be acceptable by the customer and which can be implemented in incremental and iterative manner.

Evolutionary model in Software Engineering


The evolutionary model is the model of software engineering. In the evolutionary
model, all the work is done during the development phase. In this model, all work
divided into small chunks or modules. For example, the Waterfall model in which all
the users are able to get access to the product at the end of each cycle. This model
is a combination of incremental and iterative models.

It is a very suitable model because of user feedback and other factors that make the
model very suitable for the development of complete Software. The user feedback is
very helpful for the development of the next stage because after the completion of
one stage we get the feedback to the user, the user feedback is very essential for
the development of the next phase.
If you want any changes in the software requirements, all changes will be applied
within a time.
In the evolutionary model, all work divided into smaller chunks. These chunks
present to the customer one by one. The confidence of the customer increased. This
model also allows for changing requirements as well as all development done into
different pieces and maintains all the work as a chunk.

Where the evolutionary model is useful

Evolutionary model is useful in many cases. Two most important cases are
mentioned below;
1. It is very useful in a large project where you can easily find a module for
step by step implementation. The evolutionary model is used when the
users need to start using the many features instead of waiting for the
complete software.
2. The evolutionary model is also very useful in object-oriented software
development because all the development is divided into different units.
The following are the evolutionary models.
1. The prototyping model
2. the spiral model
3. the concurrent development model

Advantages of Evolutionary Model


There are many advantages of evolutionary model, Some main advantages are
mentioned below;
1. The big advantage of the evolutionary model is that the user has checked
every stage during the development and it is helpful in achieving customer
confidence.
2. There are fewer chances of errors because all the modules are well seen.
3. It helps to reduce the risk of software projects.
4. It also reduces the cost of development.
5. Minimize serious problems during testing.

Disadvantages of Evolutionary Model


There are many dis-advantages of evolutionary model, Some main advantages are
mentioned below;
1. The delivery of full software can be late due to different changes by
customers during development.
2. It is difficult to divide the problem into several parts, that would be acceptable
to the customer which can be incrementally implemented and delivered.

Comparison of Iterative and Incremental Model


Let’s see the Comparison of Iterative and Incremental Model with a little diagram that
can save your time to read the text in detail.
In this example, we can see that in iterative model, picture is finalized after third
iteration. and in incremental model, the picture is finalized after fourth increment.

You might also like