1 00:00:00,120 --> 00:00:02,600 The next model that we will discuss is the spiral 2 00:00:02,600 --> 00:00:05,630 model, which was first described by Barry Boehm, which is 3 00:00:05,630 --> 00:00:08,010 the professor that we interviewed at the beginning of this 4 00:00:08,010 --> 00:00:12,240 lesson. In his paper from 1986 that was entitled A Spiral 5 00:00:12,240 --> 00:00:15,730 Model of Software Development and Enhancement. And one of the 6 00:00:15,730 --> 00:00:18,520 main characteristics of that paper is that it was describing the 7 00:00:18,520 --> 00:00:21,670 spiral model using a diagram, which is the one that 8 00:00:21,670 --> 00:00:25,130 I'm showing you here, and this diagram has become very very 9 00:00:25,130 --> 00:00:27,950 popular, and you probably saw it either in this 10 00:00:27,950 --> 00:00:30,400 form or one of the many variations of the 11 00:00:30,400 --> 00:00:32,680 diagram. So I'm not going to discuss all of 12 00:00:32,680 --> 00:00:34,770 the details of the spiral model, but I just want to 13 00:00:34,770 --> 00:00:37,510 give you an idea of its main characteristics. The 14 00:00:37,510 --> 00:00:41,580 spiral model is an incremental risk-oriented lifecycle model that has 15 00:00:41,580 --> 00:00:46,330 four main phases listed here: determine objectives, identify and 16 00:00:46,330 --> 00:00:51,180 resolve risks, development and tests, and plan the next iteration. 17 00:00:51,180 --> 00:00:53,690 A software project will go through these four phases in 18 00:00:53,690 --> 00:00:57,020 an iterative way. In the first phase, the requirements will 19 00:00:57,020 --> 00:00:59,470 be gathered. In the second phase, the risks and the 20 00:00:59,470 --> 00:01:04,010 alternate solutions will be identified, and a prototype will be produced. 21 00:01:04,010 --> 00:01:06,190 Software and tests for the software are produced in the 22 00:01:06,190 --> 00:01:09,210 development and test phase, which is the third step of the 23 00:01:09,210 --> 00:01:12,830 process. Finally, in the fourth phase, the output of the 24 00:01:12,830 --> 00:01:16,880 project, so far, is evaluated, and the next iteration is planned. 25 00:01:16,880 --> 00:01:19,960 So basically, what the spiral process prescribes is a 26 00:01:19,960 --> 00:01:23,262 way of developing software by going through these phases in 27 00:01:23,262 --> 00:01:26,020 an iterative way, in which we learn more and more 28 00:01:26,020 --> 00:01:29,420 of the software, we identify more and more, and account 29 00:01:29,420 --> 00:01:32,250 for, more and more risks and we go more 30 00:01:32,250 --> 00:01:36,000 and more towards our final solution, our final release. There 31 00:01:36,000 --> 00:01:38,930 are several advantages of using a spiral model. The first 32 00:01:38,930 --> 00:01:41,930 one is that the extensive risk analysis does reduce the 33 00:01:41,930 --> 00:01:44,140 chances of the project to fail. So there is a 34 00:01:44,140 --> 00:01:48,300 risk reduction advantage. The second advantage is that functionality can be 35 00:01:48,300 --> 00:01:51,190 added at a later phase because of the iterative nature of 36 00:01:51,190 --> 00:01:55,175 the process. And finally, software is produced early in the software 37 00:01:55,175 --> 00:01:58,260 lifecycle. So, at any iteration, we have something to show 38 00:01:58,260 --> 00:02:01,300 for our development. We don't wait until the end before producing 39 00:02:01,300 --> 00:02:03,790 something. And then of course there's also the advantage that we 40 00:02:03,790 --> 00:02:07,190 can get early feedback from the customer about what we produced. 41 00:02:07,190 --> 00:02:09,000 The main disadvantages on the other hand of 42 00:02:09,000 --> 00:02:11,870 the spiral model, are that the risk analysis requires 43 00:02:11,870 --> 00:02:16,560 a highly specific expertise. And unfortunately, the whole success 44 00:02:16,560 --> 00:02:19,260 of the process is highly dependent on risk analysis. 45 00:02:19,260 --> 00:02:21,580 So risk analysis has to be done right. 46 00:02:21,580 --> 00:02:24,510 And finally the spiral model is way more complex 47 00:02:24,510 --> 00:02:27,180 than other models, like for example, the water fall 48 00:02:27,180 --> 00:02:29,760 model. And therefore it can be costly to implement.