Software Development Life-Cycle Model (ppt file)

lumpysteerΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 4 χρόνια και 7 μήνες)

108 εμφανίσεις

Software Development
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

The Waterfall Model

Requirements Analysis

Software Design




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

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

Similar to the Synchronize and Stabilize model
used by Microsoft

Multiple baselines are included as part of the

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


Risk Analysis



Advantages of the Spiral Model

Incorporates the iterative nature of software

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

Hybrid Models

Combined aspects of two or more models

Added flexibility

Not usually well understood

Have all advantages and disadvantages of
the models encompassed

Oriented Models

Requirements analysis and design tend to be

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


Adaptive Software Development



Driven Development


Dynamic Systems Development Method

Lean Software Development



eXtreme Programming

Agile Methods Emphasize

Individuals and interactions over processes
and tools

Working software over comprehensive

Customer collaboration over contract

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

Carry out the plan (coding)

Look back (testing the solution)


Choosing the right life
cycle model can be

But it is essential to have one

The life
cycle model covers more than just

it must be appropriate for
product support and maintenance