Documente Academic
Documente Profesional
Documente Cultură
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.
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.
Requirement
Gathering
Requirement
Analysis
In this phase system analyst will study the client requirements and prepare the
system requirement specification.
Design
Coding
In this phase developers will write the program using programming languages or
scripting languages in order to develop the application.
Testing
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
10
11
STEPS IN V-SHAPED
MODEL
12
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.
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.
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.
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.
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
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