Software Development Methodologies
Software Development Methodologies
DEVELOPMENT
METHODOLOGIES
2013.04.30
Methodologies
Waterfall
DSDM
Prototype model
RUP
Incremental
XP
Iterative
Agile
V-Model
Lean
Spiral
Scrum
TDD
Cleanroom
FDD
RAD
Waterfall
Sequential design
process
Progress is seen as
flowing steadily
downwards (like a
waterfall) through
SDLC
Prototyping
Creating prototypes of
software applications
i.e. incomplete
versions of the
software program
being developed
A prototype typically
simulates only a few
aspects of, and may
be completely different
from, the final product.
incremental
development is any
combination of both
iterative design or
iterative method and
incremental build
model for
development.
Spiral Model
Combining elements of
Background
Top-down
Bottom-up
deductive reasoning
inductive reasoning
analysis or
synthesis
decomposition
Descartes
G => 1
Bacon
1 => G
RAD
Minimal planning and
fast prototyping.
Developing instead of
planning
The lack of preplanning generally
allows software to be
written much faster,
and makes it easier to
change requirements.
Cleanroom
The Cleanroom process
embeds software
development and testing
within a statistical quality
control framework.
Mathematically-based
software development
processes are employed
to create software that is
correct by design, and
statistical usage testing
processes are employed
to provide inferences
about software reliability.
of assessing and
controlling software
quality during
development permits
certification of software
fitness for use at
delivery.
Agile
Group of software
development methods
Based on iterative and
incremental development
Most important phrases
self-organizing, cross-functional
teams
adaptive planning,
evolutionary development and
delivery,
a time-boxed iterative
approach,
rapid and flexible response to
change.
A conceptual framework
The Agile Manifesto in 2001.
Scrum
Scrum is an iterative and
incremental agile
software development
framework
A flexible, holistic
product development
strategy
Development team
works as an atomic unit
Opposing to sequential
approach
Lean (Kanban)
A translation of lean
manufacturing
principles and
practices
Toyota Production
System,
Today part of Agile
community.
Lean Principles
1. Eliminate waste
2. Amplify learning
3. Decide as late as
4.
5.
6.
7.
possible
Deliver as fast as
possible
Empower the team
Build integrity in
See the whole
and responsiveness to
changing customer
requirements
A type of agile software
development
Frequent "releases" in
short development
cycles
Introduce checkpoints
where new customer
requirements can be
adopted.
development
Continuous integration
DSDM
An agile project delivery framework,
primarily
DSDM fixes cost, quality and time at
the outset and uses the MoSCoW
prioritization of scope
Pareto principle
of a very short
development cycle: first
the developer writes an
(initially failing)
automated test case that
defines a desired
improvement or new
function, then produces
the minimum amount of
code to pass that test,
and finally refactors the
new code to acceptable
standards.
Test-first programming
concept of extreme
programming in the
beginning
Today standalone
methodology
incremental
development process.
An Agile method
Driven from a clientvalued functionality
(feature) perspective
Mostly part of other
methodologies
development process
framework created by the
Rational Software
Corporation (IBM)
Not a concrete
prescriptive process, but
an adaptable framework,
intended to be tailored by
the development
organizations
Expected to select
elements of the process
that are appropriate
V-model
The V-model is an
extension of the
waterfall model.
Show the relationships
between development
phases and test
phases
Time and project
completeness vs. level
of abstraction
complex development
For example:
Hardware
Platform
Application software
Development of a system's
sequences of developing a
complex system and a
system of systems.
Shouldnt forget
WATERFALL
Details
Waterfall #1
Jump to next phase only if the prior one is completed
PROs
Detailed early analysis cause huge advantages at later phases
If a bug found earlier, it is much cheaper (and more effective) to fix
than bugs found in a later phase
Requirement should be set before design starts
Points to importance of documentation (minimized broken leg
issue)
Disciplined and well-structured approach
Effective for stable software projects
Easy to plan from project management point of view
Waterfall #2
CONs
Changes are expensive
Client does not explicitly know what he or she wants
Client does not explicitly know what is possible to have
Need to finish every phase fully
Long projects, difficult to keep the plan
Designers may not know in advance how complex a features
implementation
Measure twice, cut once