A Spiral Model of Software
Development and
Enhancement
Barry W. Bohm, TRW Defense Systems Group
“Stop the life cycle—1 want fo get off!"
“Lifecycle Concept Considered
Harmful."
“The waterfall mode is dead.”
“No, eet, but it shoul be,”
hese statements exemplify the
I Vcore debate about soltware
Tie-ycle process models. The
topics cently received great deal of
The Defense Science Board Task Force
Report on Miltary Software’ issued in
1987 highlighted the concern that tradi-
tional software proces models were dis:
‘ouraging more effective approaches t0
Software development such s prototyping
and software eeuse. The Computer Sok
ey as sponsored morals and workshops
fon software process models that have
helped clarify many of the issues and
stimulated advances inthe field (see “Fur
ther reading”)
“The spiral model presented in this at
leis one candidate for improving thesott-
ware process mode! situation, The major
distinguishing Feature ofthe spiral modet
isthatit creates risk driven approach to
the software process rather than a primar-
ity document-driven or codedriven ro:
‘ee Iincorporates many of the strengths
‘of other madels and resoives many of thei
sificlis,
Thisarticle opens with a short descrip
tion of software process models andthe
issues they address, Subsequent sections
outline the proces steps involved in the
May 1988,
seaseee see eseeeeeeseeeseeeeeeay
This evolving risk-
driven approach
provides a new
framework for guiding
the software process.
spiral model illustrate the application of
the spiral model co a sofbwate project,
tsing the TRW Software Productivity
Project san example; summarize the pi
mary advantages and_ implications
inyolved in using the spiral model and the
primary dificulesin using tat iseurreat
incomplete level af elaboration: and pre
sent resulting conclusions.
Background on software
process models
The primary functions of a software
process model are to determine the order
ff the stagesinvolvedin soliware develop:
tment and evolution and to establish the
transition criteria or progressing fromone
stagetothe next. These include completion
criteria For the current stage plus choice
sriteria and entrance erteria fo the next
stage. Thus, process model addresssthe
Following software project questions
(0) What shal we do nest?
(2) How long shall wecontinueto doit?
‘Consequently, a process model differs
from a software method (often called a
methodology) in:hata method's primary
focus son how to navigate through &
phase (determining data, control, or
"uses" hirarchies: patton funtion
allocating requirements) and how to rep
resent phase products (structure chats
Stimulus-tesponse threads tate transition
diagrams).
Why ate software process. models
important? Primarily because they pro
‘ide guidance on the order (phases, ncre-
‘ments, prototypes, validation asks, et.)
in which a project should earry out its
major tasks, Many software projets as
tenet section shows, havecometo grief
because they pursued their various devel
‘opment and evolution phassin the wrong
order.
Evolution of process models. Before
concentrating in dep onthe spiral model,
wwe should take a look at a number of
bothers: the cade and-fix model, the stage:
‘wie model andthe waterfall model, the
evolutionary development model, and the
transform mode
The code-and:fix model. The basic
‘model wed inthe earles days of software
6requirement
=
[oc
[eh
ze
‘Operations and
maintenar
Figure 1. The waterfall model ofthe software life cycle.
development contained two steps:
() Write some code
(2) Fix the problems in the code.
‘Ths, the order ofthe steps was to-do
some cong first and to think about the
requirements, design, test, and main
tenance later. This model has three pi
e
sary difficulties:
(@) Alter a number of fixes, the code
‘became so poorly structured that subse
quent fixes were very expensive. This
Lunderscored the need for a design phase
prior to coding.
() Frequently, even well-designed soft
ware was sucha poor match touses' needs
that it was either rejected outright or
‘expensively redeveloped, This made the
need for a requirements phase prior (0
design evident.
(@) Code was expensiveto fix because of
oor preparation for esting and moditi-
‘COMPUTERtation. This made it clear that explicit
recognition of these phases, as wells test-
fnd-volution planning and preparation
tasks in the early phases, were needed.
The stageise and waterfall models. AS
carly a 196, experience onlargesofiware
Systems such as the Semi-Aucomated
Ground Eaviconment (SAGE) had led 0
the recognition of these problems and to
the development of a stagenise mode! 10
address them. This model stipulated that
Software be developedin successive stages
(operational plan, operational specifica
‘ions, coding. specications, coding,
parameter testing, assembly testing,
shakedown, system evaluation),
The waterfall mode, ustrated in Fie-
ture 1, was highly influential 1970 refine
tent of the stagenise model. It provided
to primary enhancements fo the stage
‘vise mode!
(a) Recognition ofthe feedback loops
between stags, anda guideline 0
‘ontine the feedback loops 10 suc
fessve stages 10 minimize the
expensive rework involved infeed
back across many stages
[An initial incorporation of pro
totyping in the software ie ele
sina ‘ep running
in parallel with requiements anal
ysis and design
°
‘The waterfall model's approach helped
eliminate many dificulties previously
encountered on software projees. The
‘waterfall mode has become the bass for
‘most softvare aquisition standards in
government and industry. Some ofits ini
Ual difficulties have been addressed by
adding extensions to cover incremental
‘evelopment, parallel developments, pr:
am families, accommodation of evolu
tionary changes, formal software
development and verification, and stage
‘vise validation and risk analysis
However, even with extensive revisions
and refinements, the waterfall mode's
basic scheme has encountered some more
fundamental ditficules, and these have
Jed tothe formulation of alternative pr
cess models,
‘A primary source of dificulty with the
‘waterfall mage has been its emphasis on
Tully elaborated documents as competion
criteria for early requirements and design
phases. For some clases of software, such
as compilers or secure operating systems,
"hiss the most effective way to proceed.
However, it doesnot work well for many
lasses of software, particularly interastive
May 1988
‘The waterfall model
has become the basi
for most software
acquisition standards.
end-user applications. Document-driven
standards have pushed many projets to
write elaborate specifications of poorly
‘understood use interfaces and decision-
Support functions, followed by the design
and development of large quantities oF
‘unusable code.
“These projects are examples of how
\waterfallmodel projects have come 10
avief by pursuing stages in the wrong
‘order, Furthermore, in teas supported by
‘ourth-generation languages spreadsheet
‘orsmall businessapplicatons), its clearly
tunnecesary to write elaborate specifica:
tions for one’s application before imple-
menting it
The evolutionary development model
“Theabove concern edo the formulation
‘of the evoluionary development model,
‘whose stages consist of expanding incre
‘ments ofan operational sofware produit,
with the directions of evolution being
determined by operational experience.
“Theevolutionary development models
ideally matched to & fourth-gencration
language aplication and well matched 19
siluations i which users say, “Lane tell
youwhat! want, but know i when Esce
it" lgives users rapid inital operational
capability and provides a realistic opera
tional bass-fr determining subsequent
product improvements
Nonetheless, evolutionary development
also has its difficulties. ts generally dif
ficult 10 distinguish it from the old code
and-fix model, whose spaghetti code and
lack of planning were te intil motiva:
tion for the waterfall model, Ie is also
‘based onthe often-untealistic assumption
‘that the user's operational sytem wll
Flexible enough to accommodate
‘unplanned evolution paths. This assump.
‘ions unjustified thre primary ieum:
(1) Circumstances in which several
independently evolved applications must
subsequently be closely integrated.
(2) “Information-sclerosis™ cases, in
hich temporary work-arounds fr soft-
ware deficiencies increasingly solidify into
‘unchangeable constraints on evolution
‘The following comments atypical exam
e:"W'snice that you could change those
‘equipment codes to make them more ite
ligible for us, but the Codes Committee
just met and established the current codes
as company standards.”
(@) Bridging situations, in which the
new software incrementally eeplacing &
large exiting system. Ifthe existing ster
{spoorly modularized, tis diticl 10 pro
vide a good sequence of “bridges”
‘beeen the old software and the expand:
ing increments of new software.
‘Under such conditions, evolutionary
development projects have come to grief
by pursuing stages im the wrong order:
‘evolving a lot of hard-to-change code
before addressing long-range architectural
and usage considerations.
The transform model. The “spaghetti
code” difficulties of the evolutionary
‘evelopment and codeand-fix models can
also becomea dificult in various lasses
of waterfall-mode aplication, in which
code is optimized for performance and
becomes increasingly hard to modify. The
transform model has been proposed as 8
solution to this dilemma
‘Thetransform model assumes the exis
tence ofacapabiity automatically eon
vert a formal specification ofa software
produetintoa program satisfying the spe
IMication. The steps then prescribed by the
transform model are
+ formal specification ofthe est in
tial understanding of the desired
product
fautomatic transformation of the
specification into code:
an iterative loop, if necessary, t0
Improve the performance of the
resulting code by giving optimization
guidance t0 the transformation
system:
exercise ofthe resulting product and
an outer iterative lop to adjust the
Specification based nthe resulting
‘operational experience and toreder-
Wwe, reoptimize, and exercise the
Adjusted software produit.
‘Thetransform model thus bypasses the
Aitticuly of having to modify code that
hhas become poorly sietured through
repeated reoptimizations, since the
‘modifications are made to the spcifica-
tion, I also avoids the extra time and
expense involved in the intermediate
design, code, and vst activities,
Sul, the transform model has various
64
Cumulative
cost
Progress
through
stops
Evaluate alternative,
isentily, resolve risks
Determine
objectives,
alternatives,
constraints
Risk
analysis
isk
analysis
isk
analysis
Commitment
Review
partition
Requirements plan
le-cycle pian
Sofware
product
design
Develop- | Requirements
mentpian} validation
Integration
‘and test
plan
Design validation
and vertication
Implementatio|
Plan next phases I
Develop, verity
noxt-avel product
Figure 2. Spieal model ofthe software process.
ditticues. Automatic transformation Additionally, it would face formidable
capabilites are only availabe for small Knowledge-ase maintenance probe in TH Spiral model
products ina few limited areas: spread- dealing with the rapidly increasing and
sheets, small fourth-generation language evolving supply of resablesoftware com Thespiral modelo the softwar proces
applications, and limited. computer- ponents and commercial software (se igure 2)has ben evolving fr several
science domains. The transform model products. (Simpy consider he problem of years based on experience with various
aso shares some ofthe difficulties of the tracking thecoss, performance, and fea- refinements of the waterfall model as
evolutionary development mode, suchas tures of allommercal database manage. applied to large government software
‘he assumption that users operationalsys- ment systems, and automaticaly choosing. projets. As will be discussed, the spiral
{ems illalwaysbe esibleenoughtosup- the best one to implement each new or model can accommodate most previous
Port unplanned evolution paths. changed specification.) ‘models as special cases and futher pro:
o COMPUTERdes guidanceasto which combination of
previous models best Fitsagivensoftvare
Situation, Development ofthe TRW Soft
ware Productivity Sytem (TRW-SPS),
described in the next section, i is most
complete application to date
"The radial dimension in Figure 2
represents the cumulative cos ineutred in
‘scuomplishing the steps to date; heangu:
Jar dimension represents the progress
‘madein completing each eyce ofthe spi
ral, (The model reflects the underiying
‘oncep that each cle involves
Sion that addresses the same seque!
steps foreach portion of he product and
foreach ofits levels of elaboration, from
sn overall concept of operation document
downto thecoding ofeach individual pr
fram.) Not that some artistic lizense has
‘been taken with heincreasing cumulative
cost dimension to enhance legibility ofthe
Steps in Figure 2
Apical eel of the spiral Each cycle
ofthe spiral bens withthe identification
of
+ the objectives of the potion of the
product being elaborated (perfor
‘mance, functionality, ability to
accommodate change, et):
‘= thealternative means oF implement
Jing this portion of the produc (design
A, design B, reuse, buy, et. and
+ the constraints imposed onthe appli
‘ation of the ateratives (os, sched
le, imerface, ee),
‘The nest step isto evaluate theater
tives relative 10 the objectives and eon:
strains, Frequently, this proces. will
deny areas of uncertainty that are sig:
nificant sources of project isk. If 0, the
‘nex ste should involve the Formulation
of a costetfectve stratepy for resolsing
‘the soutees of rsh. Thismay involve pro
toryping, simulation, benchmarking,
reference checking, administering user
‘Questionnaires, analstic- modeling, of
ombinations of these and other Fisk:
Fesoluton techniques
‘Once the risks are evaluated, the next
steps determined by the relative remain
ing sks If performance or user-interface
risks strongly dominate program develop:
tment of internal interface-control risks,
‘he new stepmay bean evolutionary devel
‘opment one: minimal effort to specify
the overall nature of the product, a plan
forthe nex level of prototyping, and the
development of amore detailed prototype
{ocontinueto resolve themajorrskises
i his prototype is operationally useful
and robust enough to serve asa low-risk
May 1988,
base for future product evolution, the sub-
sequent isk-drven steps would be the
‘evolving series of evolutionary prototypes
going toward the ht in Figure 2 n sis
‘ase, the option of writing specifications
would be addresed but not exercised.
Thus, risk considerations ean lead to @
project implementing onlya subset ofall
the potential steps in the model
‘Onithe other hand, if previous provotsp-
ingefforishavealready resolved all ofthe
performance or user-imerface risks, and
Program development orinterface-