122:
1595:
25:
1585:
866:
Life Cycle
Objectives. Is there a sufficient definition of a technical and management approach to satisfying everyone's win conditions? If the stakeholders agree that the answer is "Yes", then the project has cleared this LCO milestone. Otherwise, the project can be abandoned, or the stakeholders can
823:
Some "hazardous spiral look-alike" processes violate this invariant by excluding key stakeholders from certain sequential phases or cycles. For example, system maintainers and administrators might not be invited to participate in definition and development of the system. As a result, the system is at
836:
For example, investing additional time testing a software product often reduces the risk due to the marketplace rejecting a shoddy product. However, additional testing time might increase the risk due to a competitor's early market entry. From a spiral model perspective, testing should be performed
874:
Initial
Operational Capability. Is there sufficient preparation of the software, site, users, operators, and maintainers to satisfy everyone's win conditions by launching the system? If the stakeholders agree that the answer is "Yes", then the project has cleared the IOC milestone and is launched.
852:
Considering requirements specification as an example, the project should precisely specify those features where risk is reduced through precise specification (e.g., interfaces between hardware and software, interfaces between prime and sub-contractors). Conversely, the project should not precisely
722:
In later publications, Boehm describes the spiral model as a "process model generator," where choices based on a project's risks generate an appropriate process model for the project. Thus, the incremental, waterfall, prototyping, and other process models are special cases of the spiral model that
894:
This invariant highlights the importance of the overall system and the long-term concerns spanning its entire life cycle. It excludes "hazardous spiral look-alikes" that focus too much on the initial development of software code. These processes can result from following published approaches to
870:
Life Cycle
Architecture. Is there a sufficient definition of the preferred approach to satisfying everyone's win conditions, and are all significant risks eliminated or mitigated? If the stakeholders agree that the answer is "Yes", then the project has cleared this LCA milestone. Otherwise, the
840:"Hazardous spiral look-alikes" that violate this invariant include evolutionary processes that ignore risk due to scalability issues, and incremental processes that invest heavily in a technical architecture that must be redesigned or replaced to accommodate future increments of the product.
861:
Boehm's original description of the spiral model did not include any process milestones. In later refinements, he introduces three anchor point milestones that serve as progress indicators and points of commitment. These anchor point milestones can be characterized by key questions.
712:
These early papers use the term "process model" to refer to the spiral model as well as to incremental, waterfall, prototyping, and other approaches. However, the spiral model's characteristic risk-driven blending of other process models' features is already present:
708:
in his 1986 paper, "A Spiral Model of
Software Development and Enhancement." In 1988 Boehm published a similar paper to a wider audience. These papers introduce a diagram that has been reproduced in many subsequent publications discussing the spiral model.
766:
This invariant excludes “hazardous spiral look-alike” processes that use a sequence of incremental waterfall passes in settings where the underlying assumptions of the waterfall model do not apply. Boehm lists these assumptions as follows:
717:
isk-driven subsetting of the spiral model steps allows the model to accommodate any appropriate mixture of a specification-oriented, prototype-oriented, simulation-oriented, automatic transformation-oriented, or other approach to software
848:
For any project artifact (e.g., requirements specification, design document, test plan), the project team must decide how much detail is enough. In authentic spiral process cycles, these decisions are made by minimizing overall risk.
832:
For any project activity (e.g., requirements analysis, design, prototyping, testing), the project team must decide how much effort is enough. In authentic spiral process cycles, these decisions are made by minimizing overall risk.
886:(RUP), with LCO marking the boundary between RUP's Inception and Elaboration phases, LCA marking the boundary between Elaboration and Construction phases, and IOC marking the boundary between Construction and Transition phases.
790:
In situations where these assumptions do apply, it is a project risk not to specify the requirements and proceed sequentially. The waterfall model thus becomes a risk-driven special case of the spiral model.
754:
Authentic applications of the spiral model are driven by cycles that always display six characteristics. Boehm illustrates each with an example of a "dangerous spiral look-alike" that violates the invariant.
879:"Hazardous spiral look-alikes" that violate this invariant include evolutionary and incremental processes that commit significant resources to implementing a solution with a poorly defined architecture.
763:
Sequentially defining the key artifacts for a project often increases the possibility of developing a system that meets stakeholder "win conditions" (objectives and constraints).
726:
Boehm also identifies a number of misconceptions arising from oversimplifications in the original spiral model diagram. He says the most dangerous of these misconceptions are:
820:
Project cycles that omit or shortchange any of these activities risk wasting effort by pursuing options that are unacceptable to key stakeholders, or are too risky.
774:
The requirements have no unresolved, high-risk implications, such as risks due to cost, schedule, performance, safety, user interfaces, organizational impacts, etc.
663:
125:
Spiral model (Boehm, 1988). A number of misconceptions stem from oversimplifications in this widely circulated diagram (there are some errors in this diagram).
746:
To better distinguish them from "hazardous spiral look-alikes," Boehm lists six characteristics common to all authentic applications of the spiral model.
617:
46:
39:
780:
The requirements are compatible with all the key system stakeholders’ expectations, including users, customer, developers, maintainers, and investors.
684:
model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as
853:
specify those features where precise specification increases the risk (e.g., graphical screen layouts, the behavior of off-the-shelf components).
1071:
1010:
584:
656:
436:
574:
426:
1619:
1588:
1454:
1383:
1037:
685:
649:
549:
305:
290:
1277:
1180:
569:
89:
895:
object-oriented or structured software analysis and design while neglecting other aspects of the project's process needs.
607:
61:
1064:
516:
280:
1257:
1124:
1109:
383:
108:
693:
68:
506:
501:
257:
918:
635:
875:
Otherwise, the project can be abandoned, or the stakeholders can commit to another cycle to try to get to "Yes."
1413:
1340:
1330:
1175:
1104:
526:
239:
219:
388:
75:
1598:
1464:
1393:
1335:
1057:
740:
While these misconceptions may fit the risk patterns of a few projects, they are not true for most projects.
325:
315:
265:
1403:
1262:
1129:
681:
612:
340:
156:
1325:
1320:
1134:
431:
403:
57:
1520:
1368:
1363:
1315:
1292:
1272:
743:
In a
National Research Council report this model was extended to include risks related to human users.
554:
398:
285:
275:
214:
1525:
1515:
320:
300:
1428:
1227:
1210:
1119:
978:
883:
461:
330:
310:
1378:
1222:
871:
project can be abandoned, or the stakeholders can commit to another cycle to try to get to "Yes."
816:
Obtain approval from all success-critical stakeholders, plus commitment to pursue the next cycle.
803:
This invariant identifies the four activities that must occur in each cycle of the spiral model:
589:
471:
350:
224:
35:
1433:
1190:
1185:
531:
441:
393:
335:
1252:
1205:
355:
171:
161:
1550:
1388:
1247:
1237:
1149:
1094:
1080:
451:
295:
229:
196:
176:
137:
82:
8:
1570:
1555:
1423:
1287:
1195:
1139:
777:
The nature of the requirements will not change very much during development or evolution.
446:
365:
191:
1560:
1200:
1001:
956:
564:
1474:
1232:
1033:
960:
1545:
1489:
1267:
1159:
1154:
1027:
1005:
993:
948:
521:
484:
466:
456:
181:
939:
Boehm, B (August 1986). "A Spiral Model of
Software Development and Enhancement".
1565:
1418:
1398:
1282:
1144:
1014:
689:
408:
360:
244:
166:
1469:
1373:
1114:
810:
Identify and evaluate alternative approaches for satisfying the win conditions.
1613:
1449:
1217:
736:
that every activity in the diagram must be performed, and in the order shown.
151:
121:
783:
The right architecture for implementing the requirements is well understood.
1484:
1479:
705:
952:
1494:
1459:
1049:
1029:
Human-system integration in the system development process: A new look
186:
813:
Identify and resolve risks that stem from the selected approach(es).
24:
1242:
559:
511:
496:
491:
997:
807:
Consider the win conditions of all success-critical stakeholders.
1099:
798:
270:
1299:
919:"Spiral Development: Experience, Principles, and Refinements"
730:
that the spiral is simply a sequence of waterfall increments;
345:
733:
that all project activities follow a single spiral sequence;
1510:
579:
889:
979:"A Spiral Model of Software Development and Enhancement"
771:
The requirements are known in advance of implementation.
928:. Software Engineering Institute. CMU/SEI-2000-SR-008.
882:
The three anchor point milestones fit easily into the
786:
There is enough calendar time to proceed sequentially.
749:
843:
837:until the total risk is minimized, and no further.
827:
824:risk of failing to satisfy their win conditions.
1611:
758:
867:commit to another cycle to try to get to "Yes."
856:
1065:
657:
1032:. Washington, D.C.: National Academy Press.
799:Perform four basic activities in every cycle
723:fit the risk patterns of certain projects.
1072:
1058:
664:
650:
109:Learn how and when to remove this message
1263:Software development process/methodology
1079:
1025:
120:
1612:
941:ACM SIGSOFT Software Engineering Notes
890:Focus on the system and its life cycle
618:Electrical and electronics engineering
45:Please improve this article by adding
1053:
1026:Pew, R.W.; Mavor, A.S., eds. (2007).
976:
938:
916:
1584:
1278:Software verification and validation
1181:Component-based software engineering
972:
970:
912:
910:
908:
18:
13:
750:The six invariants of spiral model
704:This model was first described by
16:Software development process model
14:
1631:
1258:Software configuration management
1125:Search-based software engineering
1110:Experimental software engineering
967:
905:
844:Risk determines degree of details
544:Standards and bodies of knowledge
1594:
1593:
1583:
23:
828:Risk determines level of effort
636:Outline of software development
1105:Empirical software engineering
1019:
932:
1:
898:
759:Define artifacts concurrently
47:secondary or tertiary sources
1620:Software development process
1130:Site reliability engineering
682:software development process
7:
1135:Social software engineering
857:Use anchor point milestones
10:
1636:
1273:Software quality assurance
699:
399:Software quality assurance
1579:
1538:
1503:
1442:
1356:
1349:
1308:
1168:
1087:
1429:Model-driven engineering
1228:Functional specification
1211:Software incompatibility
1120:Requirements engineering
884:Rational Unified Process
694:evolutionary prototyping
384:Configuration management
1223:Enterprise architecture
608:Artificial intelligence
1434:Round-trip engineering
1191:Backward compatibility
1186:Software compatibility
1013:March 6, 2023, at the
917:Boehm, B (July 2000).
720:
532:Infrastructure as code
378:Supporting disciplines
126:
34:relies excessively on
1253:Software architecture
1206:Forward compatibility
977:Boehm, B (May 1988).
715:
389:Deployment management
124:
1551:Computer engineering
1248:Software archaeology
1238:Programming paradigm
1150:Software maintenance
1095:Computer programming
1081:Software engineering
209:Paradigms and models
138:Software development
1571:Systems engineering
1556:Information science
1336:Service orientation
1288:Structured analysis
1196:Compatibility layer
1140:Software deployment
953:10.1145/12944.12948
132:Part of a series on
1561:Project management
1326:Object orientation
1293:Essential analysis
1201:Compatibility mode
527:Release automation
404:Project management
127:
1607:
1606:
1534:
1533:
1475:Information model
1379:Incremental model
1233:Modeling language
1039:978-0-309-10720-4
680:is a risk-driven
674:
673:
565:ISO/IEC standards
119:
118:
111:
93:
1627:
1597:
1596:
1587:
1586:
1546:Computer science
1354:
1353:
1268:Software quality
1160:Systems analysis
1155:Software testing
1074:
1067:
1060:
1051:
1050:
1044:
1043:
1023:
1017:
1009:
983:
974:
965:
964:
936:
930:
929:
923:
914:
666:
659:
652:
613:Computer science
522:Build automation
129:
128:
114:
107:
103:
100:
94:
92:
51:
27:
19:
1635:
1634:
1630:
1629:
1628:
1626:
1625:
1624:
1610:
1609:
1608:
1603:
1575:
1566:Risk management
1530:
1499:
1438:
1419:Waterfall model
1389:Prototype model
1384:Iterative model
1345:
1321:Aspect-oriented
1304:
1283:Software system
1164:
1145:Software design
1083:
1078:
1048:
1047:
1040:
1024:
1020:
1015:Wayback Machine
981:
975:
968:
937:
933:
921:
915:
906:
901:
892:
859:
846:
830:
801:
761:
752:
702:
670:
641:
640:
631:
623:
622:
603:
595:
594:
545:
537:
536:
487:
477:
476:
422:
414:
413:
409:User experience
379:
371:
370:
261:
250:
249:
210:
202:
201:
147:
146:Core activities
115:
104:
98:
95:
52:
50:
44:
40:primary sources
28:
17:
12:
11:
5:
1633:
1623:
1622:
1605:
1604:
1602:
1601:
1591:
1580:
1577:
1576:
1574:
1573:
1568:
1563:
1558:
1553:
1548:
1542:
1540:
1539:Related fields
1536:
1535:
1532:
1531:
1529:
1528:
1523:
1518:
1513:
1507:
1505:
1501:
1500:
1498:
1497:
1492:
1487:
1482:
1477:
1472:
1470:Function model
1467:
1462:
1457:
1452:
1446:
1444:
1440:
1439:
1437:
1436:
1431:
1426:
1421:
1416:
1411:
1406:
1401:
1396:
1391:
1386:
1381:
1376:
1374:Executable UML
1371:
1366:
1360:
1358:
1351:
1347:
1346:
1344:
1343:
1338:
1333:
1328:
1323:
1318:
1312:
1310:
1306:
1305:
1303:
1302:
1297:
1296:
1295:
1285:
1280:
1275:
1270:
1265:
1260:
1255:
1250:
1245:
1240:
1235:
1230:
1225:
1220:
1215:
1214:
1213:
1208:
1203:
1198:
1193:
1183:
1178:
1172:
1170:
1166:
1165:
1163:
1162:
1157:
1152:
1147:
1142:
1137:
1132:
1127:
1122:
1117:
1115:Formal methods
1112:
1107:
1102:
1097:
1091:
1089:
1085:
1084:
1077:
1076:
1069:
1062:
1054:
1046:
1045:
1038:
1018:
966:
931:
926:Special Report
903:
902:
900:
897:
891:
888:
877:
876:
872:
868:
858:
855:
845:
842:
829:
826:
818:
817:
814:
811:
808:
800:
797:
796:
795:
788:
787:
784:
781:
778:
775:
772:
760:
757:
751:
748:
738:
737:
734:
731:
701:
698:
672:
671:
669:
668:
661:
654:
646:
643:
642:
639:
638:
632:
629:
628:
625:
624:
621:
620:
615:
610:
604:
601:
600:
597:
596:
593:
592:
587:
582:
577:
572:
567:
562:
557:
555:IEEE standards
552:
546:
543:
542:
539:
538:
535:
534:
529:
524:
519:
514:
509:
504:
499:
494:
488:
483:
482:
479:
478:
475:
474:
469:
464:
459:
454:
449:
444:
439:
434:
429:
423:
420:
419:
416:
415:
412:
411:
406:
401:
396:
391:
386:
380:
377:
376:
373:
372:
369:
368:
363:
358:
353:
348:
343:
338:
333:
328:
323:
318:
313:
308:
303:
298:
293:
288:
283:
278:
273:
268:
262:
260:and frameworks
256:
255:
252:
251:
248:
247:
242:
237:
232:
227:
222:
217:
211:
208:
207:
204:
203:
200:
199:
194:
189:
184:
179:
174:
169:
164:
159:
154:
148:
145:
144:
141:
140:
134:
133:
117:
116:
58:"Spiral model"
31:
29:
22:
15:
9:
6:
4:
3:
2:
1632:
1621:
1618:
1617:
1615:
1600:
1592:
1590:
1582:
1581:
1578:
1572:
1569:
1567:
1564:
1562:
1559:
1557:
1554:
1552:
1549:
1547:
1544:
1543:
1541:
1537:
1527:
1524:
1522:
1519:
1517:
1514:
1512:
1509:
1508:
1506:
1502:
1496:
1493:
1491:
1490:Systems model
1488:
1486:
1483:
1481:
1478:
1476:
1473:
1471:
1468:
1466:
1463:
1461:
1458:
1456:
1453:
1451:
1448:
1447:
1445:
1441:
1435:
1432:
1430:
1427:
1425:
1422:
1420:
1417:
1415:
1412:
1410:
1407:
1405:
1402:
1400:
1397:
1395:
1392:
1390:
1387:
1385:
1382:
1380:
1377:
1375:
1372:
1370:
1367:
1365:
1362:
1361:
1359:
1357:Developmental
1355:
1352:
1348:
1342:
1339:
1337:
1334:
1332:
1329:
1327:
1324:
1322:
1319:
1317:
1314:
1313:
1311:
1307:
1301:
1298:
1294:
1291:
1290:
1289:
1286:
1284:
1281:
1279:
1276:
1274:
1271:
1269:
1266:
1264:
1261:
1259:
1256:
1254:
1251:
1249:
1246:
1244:
1241:
1239:
1236:
1234:
1231:
1229:
1226:
1224:
1221:
1219:
1218:Data modeling
1216:
1212:
1209:
1207:
1204:
1202:
1199:
1197:
1194:
1192:
1189:
1188:
1187:
1184:
1182:
1179:
1177:
1174:
1173:
1171:
1167:
1161:
1158:
1156:
1153:
1151:
1148:
1146:
1143:
1141:
1138:
1136:
1133:
1131:
1128:
1126:
1123:
1121:
1118:
1116:
1113:
1111:
1108:
1106:
1103:
1101:
1098:
1096:
1093:
1092:
1090:
1086:
1082:
1075:
1070:
1068:
1063:
1061:
1056:
1055:
1052:
1041:
1035:
1031:
1030:
1022:
1016:
1012:
1007:
1003:
999:
995:
991:
987:
986:IEEE Computer
980:
973:
971:
962:
958:
954:
950:
946:
942:
935:
927:
920:
913:
911:
909:
904:
896:
887:
885:
880:
873:
869:
865:
864:
863:
854:
850:
841:
838:
834:
825:
821:
815:
812:
809:
806:
805:
804:
794:
793:
792:
785:
782:
779:
776:
773:
770:
769:
768:
764:
756:
747:
744:
741:
735:
732:
729:
728:
727:
724:
719:
714:
710:
707:
697:
695:
691:
687:
683:
679:
667:
662:
660:
655:
653:
648:
647:
645:
644:
637:
634:
633:
627:
626:
619:
616:
614:
611:
609:
606:
605:
599:
598:
591:
588:
586:
583:
581:
578:
576:
573:
571:
568:
566:
563:
561:
558:
556:
553:
551:
548:
547:
541:
540:
533:
530:
528:
525:
523:
520:
518:
515:
513:
510:
508:
505:
503:
500:
498:
495:
493:
490:
489:
486:
481:
480:
473:
470:
468:
465:
463:
460:
458:
455:
453:
450:
448:
445:
443:
440:
438:
435:
433:
430:
428:
425:
424:
418:
417:
410:
407:
405:
402:
400:
397:
395:
394:Documentation
392:
390:
387:
385:
382:
381:
375:
374:
367:
364:
362:
359:
357:
354:
352:
349:
347:
344:
342:
339:
337:
334:
332:
329:
327:
324:
322:
319:
317:
314:
312:
309:
307:
304:
302:
299:
297:
294:
292:
289:
287:
284:
282:
279:
277:
274:
272:
269:
267:
264:
263:
259:
258:Methodologies
254:
253:
246:
243:
241:
238:
236:
233:
231:
228:
226:
223:
221:
218:
216:
213:
212:
206:
205:
198:
195:
193:
190:
188:
185:
183:
180:
178:
175:
173:
170:
168:
165:
163:
160:
158:
155:
153:
152:Data modeling
150:
149:
143:
142:
139:
136:
135:
131:
130:
123:
113:
110:
102:
99:February 2017
91:
88:
84:
81:
77:
74:
70:
67:
63:
60: –
59:
55:
54:Find sources:
48:
42:
41:
37:
32:This article
30:
26:
21:
20:
1485:Object model
1480:Metamodeling
1409:Spiral model
1408:
1309:Orientations
1028:
1021:
998:10.1109/2.59
992:(5): 61–72.
989:
985:
947:(4): 14–24.
944:
940:
934:
925:
893:
881:
878:
860:
851:
847:
839:
835:
831:
822:
819:
802:
789:
765:
762:
753:
745:
742:
739:
725:
721:
718:development.
716:
711:
703:
678:spiral model
677:
675:
512:UML Modeling
507:GUI designer
234:
172:Construction
162:Requirements
105:
96:
86:
79:
72:
65:
53:
33:
1176:Abstraction
706:Barry Boehm
686:incremental
230:Prototyping
225:Incremental
197:Maintenance
177:Engineering
1495:View model
1460:Data model
899:References
602:Glossaries
192:Deployment
69:newspapers
36:references
1504:Languages
961:207165409
690:waterfall
421:Practices
245:Waterfall
220:Cleanroom
187:Debugging
157:Processes
1614:Category
1599:Category
1465:ER model
1331:Ontology
1243:Software
1169:Concepts
1011:Archived
630:Outlines
560:ISO 9001
502:Profiler
497:Debugger
492:Compiler
467:Stand-up
1589:Commons
1414:V-model
1006:1781829
700:History
301:Lean SD
240:V model
182:Testing
83:scholar
1350:Models
1100:DevOps
1088:Fields
1036:
1004:
959:
575:SWEBOK
296:Kanban
271:DevOps
235:Spiral
167:Design
85:
78:
71:
64:
56:
1526:SysML
1450:SPICE
1443:Other
1404:Scrum
1364:Agile
1316:Agile
1300:CI/CD
1002:S2CID
982:(PDF)
957:S2CID
922:(PDF)
692:, or
570:PMBOK
485:Tools
346:SEMAT
341:Scrum
215:Agile
90:JSTOR
76:books
1511:IDEF
1455:CMMI
1341:SDLC
1034:ISBN
676:The
585:IREB
580:ITIL
550:CMMI
427:ATDD
336:SAFe
306:LeSS
281:DSDM
62:news
1521:USL
1516:UML
1394:RAD
1369:EUP
994:doi
949:doi
590:OMG
517:IDE
472:TDD
462:SBE
452:DDD
437:CCO
432:BDD
356:TSP
351:TDD
331:RUP
326:RAD
321:PSP
316:MSF
311:MDD
291:IID
286:FDD
276:DAD
266:ASD
38:to
1616::
1424:XP
1399:UP
1000:.
990:21
988:.
984:.
969:^
955:.
945:11
943:.
924:.
907:^
696:.
688:,
457:PP
447:CD
442:CI
366:XP
361:UP
49:.
1073:e
1066:t
1059:v
1042:.
1008:.
996::
963:.
951::
665:e
658:t
651:v
112:)
106:(
101:)
97:(
87:·
80:·
73:·
66:·
43:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.