You are on page 1of 41

SOFTWARE

DEVELOPMENT
METHODOLOGY
BY-T U S H A R G U P TA
SUMIT ANAND
A M E E YA M I S H R A
P R I YA N K A M O H A PAT R A

Introduction
Asoftware developmentmethodology or system development methodology
in software engineering is a framework that is used to structure, plan, and
control the process of developing an information system.

There are the following methodologies:


Waterfall (a.k.a. Traditional)
V-Shape model
Spiral Model
Prototype model
Incremental Model

Waterfall Model
It is also called as linear sequential model.
In this model whole application is developed
in a sequential approach.
In this model each phase must be completed
fully before the next phase begin.
Provides structure to inexperienced staff.

Where to use the waterfall


model
Requirements are very well known.
Product definition is stable.
Technology is understood.
New version of an existing product.

Waterfall model Diagram

Requirement
Gathering

In this phase business analyst


analyst will
will collect the requirements
requirements with
with an interaction
interaction of
client and collected requirements will be documented.

Requirement
Analysis

In this phase system analyst will study the client requirements and prepare the
system requirement specification.

Design

In this phase design architecture is the responsible to decide architecture of an


application in order
order to
to full-fill the client requirements .

Coding

In this phase developers will write the program using programming languages or
scripting languages in order to develop the application.

Testing

Initially developers will perform unit


unit testing and integration testing
testing using of
of white
box testing, After that separate team will be perform system testing using black box
testing

Release & Maintenance

After the testing client satisfied on work product then we deliver application to the
customer to use at
at live
live environment. While using this application
application client
client identify can
can
some defects in existing s/m then he will send to the CR to CCB .

ADVANTAGES
A waterfall model is easy to implementation.
It helps to find errors earlier
Easy to understand, easy to use.
Works well when quality is more important than cost
or schedule
Documentation is produced at every stage of a
waterfall model allowing people to understand what
has been done.
Testing is done at every stage.

Disadvantages
It is only suitable for the small size projects.
Constant testing of the design is needed.
If requirements may change the Waterfall model may not
work.
Difficult to estimate time and cost for each stage of the
development process.
Adjust scope during the life cycle can kill a project.
High amount of risk and uncertainty.
This model is not suitable to handle dynamic changes in the
requirements

V MODEL (SOFTWARE DEVELOPMENT)

10

THE V SHAPED MODEL


Evolved from waterfall Model.
Completion of each phase before the next phase begins.
Instead of moving in a linear way, process steps are bent upwards.
Emphasizing on testing is more when compared with the waterfall model.
Structured approach to testing.
High quality development of products can be guaranteed.

11

STEPS IN V-SHAPED
MODEL

12

ENTRY AND EXIT CRITERIA


Entry Criteria
Set of generic and specific conditions for permitting a process to go forward with a
defined task.

Exit Criteria
Refers to the output conditions required by a specific process to determine its
thoroughness and correct completion. The Exit Criteria for one stage can constitute
part of the Entry Criteria for the following stage.

13

Unit testing
The most micro scale of Testing
The units are tested in isolation.
Ensures the component is
working according to the detailed
design/build specifications of the
module.
Not to be confused with
debugging.
Also known as component,
module, or program testing.

14

Integration Testing
Testing of more than one (tested)
unit together to determine if they
function correctly.
It is done using the integration test
design prepared during the architecture
design phase.
Helps assembling incrementally a
whole system, ensuring the correct
flow of data from the first through the
final component.
Done by developers/designers and
testers in collaboration
Also called Interface Testing or
Assembly Testing.

15

System testing
Testing the system as a whole - Black-box type
testing that is based on overall requirements
specifications; covers all combined parts of a
system.
Ensures that system meets all functional and
business requirements.
Focus
Verifying that specifications are met
Validating that the system can be used for the
intended purpose
The system test design is derived from the
system design documents and is used in this phase.
It can involve a number of specialized types of
tests to check performance, stress, documentation
etc. Sometimes testing is automated using testing
tools.
Done by Independent testing group

16

Acceptance testing
To determine whether a system satisfies its
acceptance criteria and business requirements or
not.
Similar to System testing in that the whole
system is checked, but the important difference is
the change in focus.
Done by real business users.
It enables the customer to determine whether to
accept the system or not.
Also called as Beta Testing, Application Testing
or End User Testing.
Approach
Should be performed in real operating
environment .
Customer should be able to perform any test
based on their business processes.
Final Customer sign-off.

17

ADVANTAGES
Fault multiplication can be reduced.
Improved quality and reliability.
Reduction in the amount of Re-work.
Improved Risk Management
Validation and Verification at each level of stage containment
Developing critical knowledge and confidence in the initial stages.

18

Disadvantages
Lot of money and resources are required.
Very rigid and less flexible.
Suitable for long term / large projects.
Ignorance of any of the test phases may lead
to poor quality.
No software prototype available.
Any modifications, then the test documents
along with requirement documents has to be
updated.

19

Spiral Development ( or
Lifecycle) Model
The Spiral Development ( or Lifecycle) Model is a systems
development method used in information technology.
It combines the features of the prototyping model and the
waterfall model.
It is favored for large, expensive, and complicated models.

Four Basic activities in every


cycle
Consider the win conditions of all success-critical stakeholders.
Identify and evaluate alternative approaches for satisfying the
win conditions.
Identify and resolve risks that stem from the selected
approach(es).
Obtain approval from all success-critical stakeholders, plus
commitment to pursue the next cycle.

Spiral quadrant : 1
Objectives: functionality, performance, hardware/software
interface, critical success factors, etc.
Alternatives: build, reuse, buy, sub-contract, etc.
Constraints: cost, schedule, interface, etc.

Spiral quadrant : 2
Study alternatives relative to objectives and constraints
Identify risks (lack of experience, new technology, tight
schedules, poor process, etc.
Resolve risks (evaluate if money could be lost by continuing
system development

Spiral quadrant : 3
Typical activities:
Create a design
Review design
Develop code
Inspect code
Test product

Spiral quadrant : 4
Typical activities:
Develop
Develop
Develop
Develop

project plan
configuration management plan
a test plan
an installation plan

Advantages (strengths)
Estimates of the budget and schedule become more realistic as
work progresses because of the questions that have been raised
Easier to cope with the changes inherent to software development
Software engineers can start working on the project earlier rather
than wading through a lengthy early design process.

Disadvantages (weaknesses)
Time spent for evaluating risks too large for small or low-risk projects.
Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive.
The model is complex.
Risk assessment expertise is required.

When to use spiral model


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

Prototyping model

The prototyping model requires that before carrying out the development of
the 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
, possibly exhibiting limited functional capabilities , low reliability , and
inefficient performance as compared to the 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 requirements, the prototyping model may be employed.

Figure:Prototyping Model

Requirements
gathering
Quick design
Refine requirements
incorporating
Customer suggestion

Prototype
developm
ent

Build prototype

Customer evaluation
Of prototype
Acceptance
By customer
Iterative
developm
ent

Design
Implement
Test

Maintain

Steps of Prototyping
Model
1. Requirements Gathering and Analysis: A prototyping
model begins with requirements analysis , and the
requirements of the system are defined in detail. The user is
interviewed in order to know the requirements of the system.
2. Quick Design: When requirements are know , a preliminary
design or quick design for the system is created . It is not a
detailed design , however , and includes the important
aspects of the system, which gives an idea of the system to
the user.
3. Build Prototype : Information gathering from quick design
is modified to form a prototype . It represents a rough
design of the required system.

4. Assessment or user evaluation: Next , the proposed system is


presented to the user for consideration as part of the development
process.
5. Prototype Refinement: Once the user evaluates the prototype,
it is refined according to the requirements .When the user is
satisfied with the developed prototype , a final system is
developed based on the final prototype.
6. Engineer Product: The final system is thoroughly evaluated and
tested followed by routine maintenance on a continuing basis to
prevent large-scale failures and to minimize downtime .

Advantages of Prototyping
Model
Provides a working model to the user early in the process , enabling early
assessment and increasing user confidence.
The developer gains experience and insight by developing a prototype ,
thereby resulting in better implementation of requirements.
Helps in reducing risks associated with the project.
The prototyping model serves to clarify requirements , which are not clear ,
hence reducing ambiguity and improving communication between the
developer and the user.
There is a great involvement of users in software development . Hence , the
requirement of the users are met to the greatest extent.

Disadvantages of Prototyping
Model
If the user is not satisfied with the developed prototype, then a new
prototype is developed . This process goes on until a perfect prototype
evolves . Thus , this model is time consuming and expensive.
The developer loses focus of the real purpose of prototype and
compromises on the quality of the product . For example , he may apply
some of the inefficient algorithms or inappropriate programming
languages used in developing the prototype .
Prototyping can lead to false expectations. It often creates a situation
where the user believes that the development of the system is finished
when it is not.
The primary goal of prototyping is rapid development. Thus , the design
of the system may suffer as it is built in a series of layers without
considering integration of all the other components.

Incremental Model
Incremental model insoftware engineeringis a one which combines the
elements ofwaterfall modelwhich are then applied in an iterative manner. It
basically delivers a series of releases called increments which provide
progressively more functionality for the client as each increment is delivered.

DIAGRAM OF INCREMENTAL
MODEL

ADVANTAGES OF INCREMENTAL MODEL


Initial product delivery is faster.
Lower initial delivery cost.
Core product is developed first i.e main functionality is added in the first increment.
After each iteration, regression testing should be conducted. During this testing, faulty elements of
the software can be quickly identified because few changes are made within any single iteration
It is generally easier to test and debug than other methods of software development because
relatively smaller changes are made during each iteration. This allows for more targeted and rigorous
testing of each element within the overall product.
With each release a new feature is added to the product.
Customer can respond to feature and review the product.
Risk of changing requirement is reduced
Work load is less.

DISADVANTAGES OF INCREMENTAL MODEL

Requires good analysis.


Resulting cost may exceed the cost of the organization.
Each phase of an iteration is rigid and do not overlap each other.
As additional functionality is added to the product, problems may arise
related to system architecture which were not evident in earlier prototypes.

When to use
This model can be used when the requirements of the complete system are
clearly defined and understood.
Major requirements must be defined; however, some details can evolve with
time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
There are some high risk features and goals.

Thank you