about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L1 Requirements Engineering Subtitles/2 - Interview with Jane Cleland-Huang - lang_en_vs5.srt
blob: 2a1bc1c91d0750e141f127c9e16e75b9f7ec8a51 (plain) (blame)
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
1
00:00:00,270 --> 00:00:02,800
As we did for other lessons, before starting this

2
00:00:02,800 --> 00:00:06,150
lesson on requirements engineering, I want to ask a world

3
00:00:06,150 --> 00:00:10,210
expert on this topic a few questions. I'm here with

4
00:00:10,210 --> 00:00:14,150
Jane Cleland-Huang, a professor at the DePaul University. And Jane

5
00:00:14,150 --> 00:00:16,500
is a world expert in the area of requirements

6
00:00:16,500 --> 00:00:19,830
engineering, which is the theme of this lesson. So I'm

7
00:00:19,830 --> 00:00:22,220
talking to Jane who is currently in Chicago and I

8
00:00:22,220 --> 00:00:25,380
want to. Ask her a few questions about requirements engineering.

9
00:00:25,380 --> 00:00:26,530
So hi Jane how are you?

10
00:00:26,530 --> 00:00:27,990
>> Fine. Thank you Alex.

11
00:00:27,990 --> 00:00:29,480
>> And thank you so much for agreeing to

12
00:00:29,480 --> 00:00:31,960
be interviewed for our course, I'm sure the students

13
00:00:31,960 --> 00:00:34,080
will really benefit from this. And let me start

14
00:00:34,080 --> 00:00:37,240
with the first question which is what are software requirements?

15
00:00:37,240 --> 00:00:40,900
>> That's an interesting question. And software requirements

16
00:00:40,900 --> 00:00:44,220
basically provide us a description of what a

17
00:00:44,220 --> 00:00:47,520
system has to do. So, typically they describe

18
00:00:47,520 --> 00:00:50,550
the functionality of the features. That the system has

19
00:00:50,550 --> 00:00:54,420
to deliver in order to satisfy its stakeholders.

20
00:00:54,420 --> 00:00:59,010
And we usually talk about the requirement specification

21
00:00:59,010 --> 00:01:01,050
in terms of what the system's going to

22
00:01:01,050 --> 00:01:04,010
do. And we describe it sometimes formally in

23
00:01:04,010 --> 00:01:07,300
terms of set of shall statements, that the

24
00:01:07,300 --> 00:01:09,110
system shall do this or shall do that.

25
00:01:09,110 --> 00:01:12,330
Or we can use various templates to specify

26
00:01:12,330 --> 00:01:16,120
both textural requirements. But requirements can also be represented

27
00:01:16,120 --> 00:01:20,790
informally in, in the form of user stories, or use cases, or more

28
00:01:20,790 --> 00:01:26,180
formally in the form of state transition diagrams and even in kind of

29
00:01:26,180 --> 00:01:32,260
formal specifications. Especially for critical parts of safety critical systems.

30
00:01:32,260 --> 00:01:34,180
>> And another should discuss what the

31
00:01:34,180 --> 00:01:37,230
requirements are. What is the requirements engineering?

32
00:01:37,230 --> 00:01:41,180
>> So, that's also an interesting question because if you notice

33
00:01:41,180 --> 00:01:45,330
it's it's engineering and I'm sure in the

34
00:01:45,330 --> 00:01:47,750
other parts of the software engineering process that

35
00:01:47,750 --> 00:01:51,130
you're discussing in your course. Parts such as

36
00:01:51,130 --> 00:01:55,200
testing or coding. They don't have the word engineering

37
00:01:55,200 --> 00:01:56,930
there and I think one of the reasons

38
00:01:56,930 --> 00:02:00,310
requirements engineering has that term is because it covers

39
00:02:00,310 --> 00:02:03,570
a number of different activities. So it includes

40
00:02:03,570 --> 00:02:07,390
things such as working with stakeholders to elicit or

41
00:02:07,390 --> 00:02:10,620
to proactively discover what their requirements of the

42
00:02:10,620 --> 00:02:14,440
system are. Analyzing those requirements so that we

43
00:02:14,440 --> 00:02:17,380
understand the tradeoffs. So you might have different

44
00:02:17,380 --> 00:02:21,170
stakeholders that care about different things, and it

45
00:02:21,170 --> 00:02:26,086
might not be possible to deliver all of those things, so we have to analyze the

46
00:02:26,086 --> 00:02:29,140
feasibility of the requirements, explore the tradeoffs, emerge

47
00:02:29,140 --> 00:02:32,550
conflicts. And then of course the specification part,

48
00:02:32,550 --> 00:02:34,930
which we talked about a little bit already,

49
00:02:34,930 --> 00:02:37,340
and the validation, so did we in fact get

50
00:02:37,340 --> 00:02:40,480
the requirements right? Did we build a system

51
00:02:40,480 --> 00:02:43,490
that actually matches our, our requirements. And then on

52
00:02:43,490 --> 00:02:46,960
into the requirements management process. And the requirements

53
00:02:46,960 --> 00:02:50,860
management process. Kind of like goes through things like

54
00:02:50,860 --> 00:02:55,010
change management. So what if customer or stakeholders

55
00:02:55,010 --> 00:02:57,630
need the system to change? How do we manage

56
00:02:57,630 --> 00:03:00,180
changing requirements? And I think this is one of

57
00:03:00,180 --> 00:03:03,230
the reasons that we've coined the term engineering because

58
00:03:03,230 --> 00:03:06,490
that it's, has to be a systematic process which

59
00:03:06,490 --> 00:03:09,550
extends across. The whole of this is life cycle.

60
00:03:09,550 --> 00:03:12,890
>> And I guess my last question here is

61
00:03:12,890 --> 00:03:15,100
so now that we heard about software requirements and

62
00:03:15,100 --> 00:03:18,790
about software requirements engineering, why is requirements engineering so

63
00:03:18,790 --> 00:03:20,770
important? So what happens if we don't do it right?

64
00:03:20,770 --> 00:03:22,620
>> Well, I'm sure that, you know,

65
00:03:22,620 --> 00:03:24,880
many people have probably read the kind of

66
00:03:24,880 --> 00:03:28,560
report like Spanish report, and other reports of failed

67
00:03:28,560 --> 00:03:31,900
project, and things like that, and are aware that

68
00:03:31,900 --> 00:03:35,280
one of the major reasons for projects failing

69
00:03:35,280 --> 00:03:37,360
is because we didn't get the requirements right

70
00:03:37,360 --> 00:03:40,110
in the first place. So if we don't understand

71
00:03:40,110 --> 00:03:42,970
the requirements then we're simply going to build the

72
00:03:42,970 --> 00:03:47,960
wrong system. Getting requirements right includes all sorts of

73
00:03:47,960 --> 00:03:52,900
things such as finding the right group of stakeholders so we don't exclude major

74
00:03:52,900 --> 00:03:56,940
groups of stakeholders. Understanding the requirements correctly.

75
00:03:56,940 --> 00:03:59,910
There will be many, many different examples of

76
00:03:59,910 --> 00:04:02,310
projects that have failed. For example, in

77
00:04:02,310 --> 00:04:06,500
America the healthcare.gov failure, and while we cannot

78
00:04:06,500 --> 00:04:09,540
put the blame squarely in the area

79
00:04:09,540 --> 00:04:13,040
of requirements, because obviously the project was challenged

80
00:04:13,040 --> 00:04:15,650
for a number of different reasons. But

81
00:04:15,650 --> 00:04:21,070
clearly it underperformed in many respects related to

82
00:04:21,070 --> 00:04:25,740
security, performance, and reliability and these are all

83
00:04:25,740 --> 00:04:28,300
parts of the requirements process. Things that should

84
00:04:28,300 --> 00:04:30,000
have been discovered and the system should have

85
00:04:30,000 --> 00:04:32,914
been built in order to meet those requirements,

86
00:04:32,914 --> 00:04:36,240
getting the requirements right in the first place.

87
00:04:36,240 --> 00:04:38,110
Puts us, a project on the right foot.

88
00:04:38,110 --> 00:04:41,430
And so that gives us a much better chance

89
00:04:41,430 --> 00:04:44,940
of delivering to the customer what they need. And

90
00:04:44,940 --> 00:04:49,130
designing a solution that really meets those requirements. So,

91
00:04:49,130 --> 00:04:52,800
it's a critical part of the overall software engineering success.

92
00:04:52,800 --> 00:04:56,441
>> Okay. So that's critical. I mean, we better get our requirements right.

93
00:04:56,441 --> 00:04:56,987
>> Yeah.

94
00:04:56,987 --> 00:04:57,733
>> That's, that's the message.

95
00:04:57,733 --> 00:04:57,743
>> Yeah.

96
00:04:57,743 --> 00:05:00,822
>> Okay. Well, thank you so much Jane, for taking

97
00:05:00,822 --> 00:05:03,435
the time off your busy schedule to speak with us.

98
00:05:03,435 --> 00:05:07,150
I'm sure. The students really appreciate this, and we'll talk to you soon.

99
00:05:07,150 --> 00:05:08,480
>> Bye Alex, thank you.

100
00:05:08,480 --> 00:05:10,890
>> Bye, Jane, bye bye. Jane gave

101
00:05:10,890 --> 00:05:13,410
us an interesting perspective on requirements engineering

102
00:05:13,410 --> 00:05:15,410
and its importance. Let's now start our

103
00:05:15,410 --> 00:05:18,050
lesson with a general definition of requirements engineering.