Department : MCA
Semester : IV
Subject : Principles of Software Engineering
Paper : 21
Faculty : Avinash Kumar
Syllabus covered in this blog
Evolutionary Models (Prototype & Spiral model)
Evolutionary Model
Evolutionary model is additionally
spoken because of the successive versions model and sometimes because of the
incremental model. In Evolutionary model, the software requirement is first
counteracted into several modules (or functional units) which will be
incrementally constructed and delivered.
The developer initially develops
the core modules of the system. The core modules are people who don't need
services from the opposite modules. The initial product sketch is upgraded into
increasing levels of functional capability by adding new features in successive
versions. Every evolutionary model can be developed by using the iterative
model of development.
Each successive version of the product
is fully functional software more capable than the previous versions.
This model is normally useful for
huge products, where it is easier to find modules for incremental
implementation.
Advantages of Evolutionary Model
- Evolutionary model is normally useful for very large products.
- User gets a chance to experiment with partially developed software much before the complete version of the system is released.
- Evolutionary model helps to accurately elicit user requirements during the delivery of different versions of the software.
- The core modules get tested thoroughly, thereby reducing the chances of errors in the core modules of the final products.
- Evolutionary model avoids the need to commit large resources in one go for development of the system.
Disadvantages of Evolutionary Model
- The delivery of full software can be late due to different changes by customers during development.
- It is difficult to divide the problem into several parts, that would be acceptable to the customer which can be incrementally implemented and delivered.
Types of Evolutionary Model
- Prototype
Model
- Spiral Model
Prototype Model
A prototype is
a simulation of the actual product or system. A prototype model usually
exhibits limited functional capabilities, low reliability, and less efficient
performance as compared to the actual software.
A prototype
model is usually built using several shortcuts. The shortcuts might
involve using inaccurate, inefficient or dummy functions. A prototype usually
turns out to be a very crude version of the actual system.
In this model, prototyping starts with initial
requirements gathering phase. Quick design is carried out and a prototype
is built. The developed prototype is submitted to the customer for his
assessment.
Based on the customer feedback, the requirements are refined and
the prototype is suitably modified. This cycle of obtaining customer feedback
and modifying the prototype continues until the customer approves the prototype.
Once the customer approves the prototype, the actual
system is developed using the iterative waterfall approach.
Need for a Prototype
Model in Software Development
- To illustrate the input data formats, messages, reports, and interactive dialogues to the customer.
- To gain a better understanding of the customer’s needs
- To examine the technical issues associated with product development.
- It is not possible to get the perfect product in the first attempt.
- If we want to develop a good product we must plan to throw away the first version.
- The experience acquired in developing the prototype can be used to develop the final product.
Advantages of Prototype Model
- Demo working model: Customer get demo
working model of actual product which help them to give a better understanding
and attain a high level of satisfaction.
- New requirement: Based on the customer
feedback, the requirements are redefined and the prototype is suitably modified
till final approval.
- Missing functionality: can be easily
established.
- Easy error detection: It saves time and cost
in developing the prototype and enhances the quality of the final product.
- Flexibility: in the development
phase.
Disadvantages of Prototype Model
- Time-consuming: As the prototype
is being modified time to time according to customer requirement which usually
increases the time of completion of the product.
- Complexity: Change in the
requirement usually expands the scope of the product beyond its original plan
and thus increase the complexity.
- Poor Documentation: Continuous changing of
requirement can lead to poor documentation.
- Unpredictability of no of iteration: It is
difficult to determine the no of iteration required before the prototype is
finally accepted by the customer.
- Confusion: Customer can confuse between the actual product and prototype.
Spiral
Model
The spiral model is
a software process model that couples the iterative nature of prototyping with
the controlled and systematic aspects of the linear sequential model. The spiral
model is also known as meta-model since it encompasses all other
life cycle models.
It is one of the most important Software Development Life
Cycle models, which provides support for Risk Handling. In its diagrammatic
representation, it looks like a spiral with many loops. The exact number of
loops of the spiral is unknown and can vary from project to project. Each
loop of the spiral is called a Phase of the software development process.
The exact number of phases needed to develop the product can be
varied by the project manager depending upon the project risks. As the project
manager dynamically determines the number of phases, so the project manager has
an important role to develop a product using spiral model.
The Radius of the spiral at any point represents the expenses
(cost) of the project so far, and the angular dimension represents the progress
made so far in the current phase.
The diagram below shows different phases of the Spiral Model:
Each phase of Spiral Model
is divided into four quadrants as shown in the above figure. The functions of
these four quadrants are discussed below-
- Objectives determination and identify alternative solutions: Requirements are gathered from the customers and the objectives are identified, elaborated and analyzed at the start of every phase. Then alternative solutions possible for the phase are proposed in this quadrant.
- Identify and resolve Risks: During the second quadrant all the possible solutions are evaluated to select the best possible solution. Then the risks associated with that solution is identified and the risks are resolved using the best possible strategy. At the end of this quadrant, Prototype is built for the best possible solution.
- Develop next version of the Product: During the third quadrant, the identified features are developed and verified through testing. At the end of the third quadrant, the next version of the software is available.
- Review and plan for the next Phase: In the fourth quadrant, the Customers evaluate the so far developed version of the software. In the end, planning for the next phase is started.
Risk
Handling in Spiral Model
A risk
is any adverse situation that might affect the successful completion of a
software project. The most important feature of the spiral model is handling
these unknown risks after the project has started. Such risk resolutions are
easier done by developing a prototype. The spiral model supports coping up with
risks by providing the scope to build a prototype at every phase of the
software development.
Prototyping Model also
support risk handling, but the risks must be identified completely before the
start of the development work of the project. But in real life project risk may
occur after the development work starts, in that case, we cannot use
Prototyping Model. In each phase of the Spiral Model, the features of the
product dated and analyzed and the risks at that point of time are identified
and are resolved through prototyping. Thus, this model is much more flexible
compared to other SDLC models.
Why
Spiral Model is called Meta Model?
The Spiral model is called as a Meta Model because it
subsumes all the other SDLC models. For example, a single loop spiral actually
represents the Iterative Waterfall Model.
The spiral model incorporates the step-wise approach of the Classical Waterfall Model.It uses the approach of Prototyping
Model by building a
prototype at the start of each phase as a risk handling technique.
Also, the spiral model can be considered as supporting the
evolutionary model – the iterations along the spiral can be considered as
evolutionary levels through which the complete system is built.
Advantages
of Spiral Model
- Risk Handling: Spiral
Model is the best model to follow for development due to the risk analysis and
risk handling at every phase.
- Good for large projects: It
is recommended to use the Spiral Model in large and complex projects.
- Flexibility in Requirements: Change requests in the Requirements at later phase can
be incorporated accurately by using this model.
- Customer Satisfaction: Customer
can see the development of the product at the early phase of the software
development and thus, they habituated with the system by using it before
completion of the total product.
- Complex: The Spiral Model is
much more complex than other SDLC models.
- Expensive: Spiral
Model is not suitable for small projects as it is expensive.
- Too much dependable on Risk Analysis: The successful completion of the project is very much
dependent on Risk Analysis. Without highly experienced expertise, it is not
possible to develop a project using this model.
- Difficulty in time management: As the number of phases is unknown at the start of the
project, so time estimation is very difficult.