Software Development Life-Cycle Model (ppt file)

lumpysteerSoftware and s/w Development

Dec 2, 2013 (3 years and 11 months ago)

76 views

Software Development
Life
-
Cycle Models

An Effective Software
Development Process


Is written down


Is followed


Is actively managed


The process is dynamic


Its effectiveness is measured regularly


Measurement results are used to improve the
process


The Waterfall Model

Requirements Analysis


Software Design


Coding


Testing


Maintenance


Advantages of the
Waterfall Model


Easy to understand


Widely used


Reinforces notions of “define before
design” and “design before code”


Establishes milestones (when deliverables
are produced and when reviews take place)

Disadvantages of the
Waterfall Model


Not realistic (doesn’t match real projects)


Does not reflect the iterative nature of
software


Complete set requirements seldom known at
the beginning of a project


Working software not available until near
end of project


Does not incorporate risk assessment

The Concurrent Development Model


Development and QA/Testing are performed
concurrently


Similar to the Synchronize and Stabilize model
used by Microsoft


Multiple baselines are included as part of the
process


SRS evolves over the course of the project


Ends with a formal validation phase with defined
criteria for starting and stopping


Advantages of the
Concurrent Development Model


It’s flexible


the number incremental releases
can be determined by the project team


Immediate feedback from testing


New features can be added late in the project


No surprises during formal validation because
testing has been continuous

Disadvantages of the
Concurrent Development Model


The SRS must be continually updated to
reflect changes


It requires discipline to avoid adding too
many new features too late in the project

The Rapid Prototyping Model


Requirements gathering


Quick design


Prototype building


Prototype evaluation by customers


Prototype may be refined


Prototype thrown away and software
developed using formal process

Advantages of the Rapid
Prototyping Model


Users/customers own requirements


Instills customer confidence that the “right”
product is being built


Provides a good way to determine
requirements when there is uncertainty
about what is needed

Disadvantages of the Rapid
Prototyping Model


Prototypes are not always thrown away


they often become the products or
fundamental parts of the products


Requires lots of customer involvement
which isn’t always possible


Validation may be difficult because the
requirements may not be well documented

The Spiral Model


Planning


Risk Analysis


Development


Evaluation

Advantages of the Spiral Model


Incorporates the iterative nature of software
development


Incorporates all the advantages of both the
waterfall model and prototyping model


Disadvantages of the Spiral Model


Requires expertise in risk analysis


It is somewhat complicated and not well
understood



Hybrid Models


Combined aspects of two or more models


Added flexibility


Not usually well understood


Have all advantages and disadvantages of
the models encompassed

Object
-
Oriented Models


Requirements analysis and design tend to be
blurred


Tend to be iterative in nature


Usually incorporate risk management


Incorporate requirements management and
change control


Emphasize the use of visual models (e.g.
UML diagrams)

Models Based on Agile Methods


ASD


Adaptive Software Development


Crystal


TDD

Test
-
Driven Development


DSDM


Dynamic Systems Development Method


Lean Software Development


Scrum


XP


eXtreme Programming


Agile Methods Emphasize


Individuals and interactions over processes
and tools


Working software over comprehensive
documentation


Customer collaboration over contract
negotiation


Responding to change over following a plan

“How to Solve It”


In 1945 George Polya wrote a book outlining
4 basic steps in problem solving:


Understand the problem (requirements analysis)


Devise a plan (software design and project
planning)


Carry out the plan (coding)


Look back (testing the solution)

Summary


Choosing the right life
-
cycle model can be
difficult


But it is essential to have one


The life
-
cycle model covers more than just
development


it must be appropriate for
product support and maintenance