Knowledge

Spiral model

Source đź“ť

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:.

Index


references
primary sources
secondary or tertiary sources
"Spiral model"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

Software development
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑