1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
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.
|