0% found this document useful (0 votes)
33 views16 pages

Babinbista OOSE

The document compares different software process models: Waterfall, V-Model, Incremental, RAD (Rapid Application Development), Iterative, and Spiral. It provides details on the key characteristics, advantages, disadvantages and uses of each model. The models range from linear (Waterfall) to incremental/iterative (Incremental, RAD, Iterative, Spiral), with V-Model being a variant of Waterfall that adds verification and validation phases.

Uploaded by

Babin Bista
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)
33 views16 pages

Babinbista OOSE

The document compares different software process models: Waterfall, V-Model, Incremental, RAD (Rapid Application Development), Iterative, and Spiral. It provides details on the key characteristics, advantages, disadvantages and uses of each model. The models range from linear (Waterfall) to incremental/iterative (Incremental, RAD, Iterative, Spiral), with V-Model being a variant of Waterfall that adds verification and validation phases.

Uploaded by

Babin Bista
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/ 16

Name: Babin Bista

Roll No. : 28 (Sec A)

Object Oriented Software Engineering

COMPARISION BETWEEN SOFTWARE PROCESS MODEL


1. Waterfall Model
Waterfall Model 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 fully before the next phase can begin. If any error is
occurred in current and previous phase then developer have to be correct it
immediately that leads to less chance of error with final product.But it is
highly impractical for frequently change requirements.

It has the following phases:

⦁ Requirements

⦁ Design

⦁ Implementation

⦁ Testing

⦁ Deployment

⦁ Maintenance

1
Fig: Waterfall Model

Advantages (Merits):

⦁ Easy to understand and implement.

⦁ Clearly defined stage.

⦁ Phases are processed and completed one at a time.

⦁ Reinforces good habits: define-before-design and design-before-


code.

⦁ Identifies deliverables and milestones

⦁ Easy to arrange tasks.

⦁ Works well on mature products and weak teams.

2
Properties:

⦁ 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.

Disadvantages :

⦁ 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

3
allow identifying any technological or business bottleneck or
challenges early.

2. V Model (Verification and Validation model)


The V model (Verification and Validation model) is an extension of the
waterfall model. All the requirements are gathered at the start and cannot
be changed. You have a corresponding testing activity for each stage. For
every phase in the development cycle, there is an associated testing phase.

Fig: V Model

Advantages (Merits):

⦁ Simple and easy to use.

4
⦁ Testing activities like planning, test designing happens well before
coding. This saves a lot of time. Hence higher chance of success over
the waterfall model.

⦁ Proactive defect tracking - that is defects are found at early stage.

⦁ Avoids the downward flow of the defects.

⦁ Works well for small projects where requirements are easily


understood.

Disdvantages :

⦁ High risk and uncertainty.

⦁ It is not a good for complex and object-oriented projects.

⦁ It is not suitable for projects where requirements are not clear and
contains high risk of changing.

⦁ This model does not support iteration of phases.

⦁ It does not easily handle concurrent events.

Properties :

⦁ It is also known as Verification and Validation model.

⦁ It is based on the association of a testing phase for each


corresponding development stage.

⦁ Development of each step directly associated with the testing phase.

⦁ The next phase starts only after completion of the previous phase i.e.
for each development activity, there is a testing activity
5
corresponding to it.

3. Incremental Model
It is the ethod of software development where the model is designed,
implemented and tested incrementally until the product is finished. The
product is defined as finished when it satisfies all of its requirements. This
model combines the elements of the waterfall model with the iterative
philosophy of prototyping. The product is decomposed into a number of
components, each of which are designed and built separately (termed
as builds). Each component is delivered to the client when it is complete.
This allows partial utilization of product and avoids a long development
time. It also creates a large initial capital outlay with the subsequent long
wait avoided.

6
Advantages (Merits):

⦁ Divides project into smaller parts .

⦁ Creates working model early and provides valuable feedback.

⦁ Feedback from one phase provides design information for the next
phase .

⦁ Very useful when more staffing is unavailable.

Disdvantages:

⦁ User community needs to be actively involved in the project. This


demands on time of the staff and add project delay .

⦁ Communication and coordination skills take a centre stage .

⦁ Informal requests for improvement for each phase may lead to


confusion .

Properties:

⦁ System is broken down into many mini development projects.

⦁ Partial systems are built to produce the final system.

⦁ First tackled highest priority requirements.

⦁ The requirement of a portion is frozen once the incremented portion


is developed.

4. RAD Model

7
RAD model is Rapid Application Development model. It is a type of
incremental model. In RAD model the components or functions are
developed in parallel as if they were mini projects. The developments
are time boxed, delivered and then assembled into a working prototype.
This can quickly give the customer something to see and use and to
provide feedback regarding the delivery and their requirements.

Fig: RAD Model

We have to use RAD model in the following cases, such as:


⦁ RAD should be used when there is a need to create a system that can
be modularized in 2-3 months of time.

⦁ It should be used if there's high availability of designers and the


budget is high enough to afford their cost along with the cost of
automated code generating tools.

⦁ RAD SDLC model should be chosen only if resources with high

8
business knowledge are available and there is a need to produce the
system in a short span of time (2-3 months).

Advantages (Merits):

⦁ Reduced development time.

⦁ Increases reusability of components

⦁ Quick initial reviews occur

⦁ Encourages customer feedback.

⦁ Integration from very beginning solves a lot of integration issues.

Disdvantages:

⦁ Depends on strong team and individual performances for identifying


business requirements.

⦁ Only system that can be modularized can be built using RAD

⦁ Requires highly skilled developers/designers.

⦁ High dependency on modeling skills

⦁ Inapplicable to cheaper projects as cost of modeling and automated


code generation is very high.

5. Iterative Model
An iterative life cycle model does not attempt to start with a full
specification of requirements. Instead, process begins by specifying and
implementing just part of the software, which can then be reviewed in
9
order to identify further requirements. This process is then repeated,
producing a new version of the software for each cycle of the model.

Fig: Iterative Model

We use Iterative model in these situations.


⦁ Requirements of the complete system are clearly defined and
understood.

⦁ When the project is big.

⦁ Major requirements must be defined; however, some details can


evolve with time.

Advantages (Merits):

⦁ Generates working software quickly and early during the software


life cycle.

⦁ More flexible – less costly to change scope and requirements.

10
⦁ Easier to test and debug during a smaller iteration.

⦁ Easier to manage risk because risky pieces are identified and handled
during its iteration.

⦁ Each iteration is an easily managed milestone.

Disdvantages:

⦁ 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.

⦁ It is not suitable for smaller projects.

⦁ Highly skilled resources are required for skill analysis.

⦁ Project progress is highly dependent upon the risk analysis phase.

⦁ Defining increments may require definition of the complete system.

A number of standard behaviors are exhibited by the majority of


successful iterative and incremental software development projects
that act as leading indicators of this success:
• Demonstrable, objectively measured progress
• Incrementally increasing functionality
• Continuously improving quality
• Continuous risk reduction
• Decreasing levels of change

11
• Increasingly accurate estimates
• Increasing enthusiasm, morale, collaboration, and effective teamwork
• Convergence on an accurate business solution

6. Spiral Model
The Spiral life cycle model is similar to the Incremental model. This
spiral model is developed by Boehm in 1988. It is divided into four
phases: planning, risk analysis, engineering, and evaluation. A project
passes through each of these phases in sequence, repeatedly, in a series
of iterations called spirals. At the beginning requirements are identified for
the first spiral. Spirals add functionality to this baseline spiral. Software is
coded and tested during the engineering phase. During the evaluation
phase, the customer has an opportunity to evaluate the output before
the project proceeds to the next spiral.

12
Fig: Spiral Model

Advantages (Merits):

⦁ High amount of risk analysis hence, avoidance of Risk is enhanced.

⦁ Good for large and mission-critical projects.

⦁ Strong approval and documentation control.

⦁ Additional Functionality can be added at a later date.

⦁ Software is produced early in the software life cycle.

13
Disadvantages:

⦁ Can be a costly model to use.

⦁ Risk analysis requires highly specific expertise.

⦁ Project’s success is highly dependent on the risk analysis phase.

⦁ Doesn’t work well for smaller projects.

When to use Spiral model:


⦁ When costs and risk evaluation is important

⦁ For medium to high-risk projects

⦁ Long-term project commitment unwise because of potential changes


to economic priorities

⦁ Users are unsure of their needs

⦁ Requirements are complex

⦁ New product line

⦁ Significant changes are expected (research and exploration)

COMPARISION BETWEEN SOFTWARE PROCESS MODEL

14
THANK YOU

15
16

You might also like