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
|
1
00:00:00,180 --> 00:00:03,170
Another important distinction, when talking about requirements, is that
2
00:00:03,170 --> 00:00:07,220
between user and system requirements. So, let's start with defining
3
00:00:07,220 --> 00:00:10,540
user requirements. Those are requirements that are written for the
4
00:00:10,540 --> 00:00:13,400
customers and they're often in natural language and they don't
5
00:00:13,400 --> 00:00:16,190
contain technical details. And the reason for that is
6
00:00:16,190 --> 00:00:19,740
that their purpose is to allow customers, stakeholders, to check
7
00:00:19,740 --> 00:00:22,210
that the system will do what they intended. So it's
8
00:00:22,210 --> 00:00:25,470
a way for the analyst, the developers, to communicate with
9
00:00:25,470 --> 00:00:28,460
the customers, with the stakeholders. System requirements, on the
10
00:00:28,460 --> 00:00:32,560
other hand, are written for developers. Contain detailed functional and
11
00:00:32,560 --> 00:00:35,330
non functional requirements. Which we just discussed, and which
12
00:00:35,330 --> 00:00:39,860
are clearly and more rigourously specified than the user requirements.
13
00:00:39,860 --> 00:00:42,130
And the reason for this difference is that the
14
00:00:42,130 --> 00:00:45,410
purpose of the system requirements is to tell developers what
15
00:00:45,410 --> 00:00:47,870
to build. They must contain enough details so the
16
00:00:47,870 --> 00:00:50,480
developers can take them and use them to design and
17
00:00:50,480 --> 00:00:52,530
then develop a system. Just to give you a concrete
18
00:00:52,530 --> 00:00:55,750
example, here I'm showing you a user requirement that just says
19
00:00:55,750 --> 00:00:59,510
that the software must provide a means of representing and accessing
20
00:00:59,510 --> 00:01:03,940
external files created by other tools, and the corresponding system requirement.
21
00:01:03,940 --> 00:01:05,700
And as you can see, even if we don't read the
22
00:01:05,700 --> 00:01:09,380
whole requirements. The former is an informal and high level description
23
00:01:09,380 --> 00:01:12,210
of a piece of functionality, whereas the latter describes the same
24
00:01:12,210 --> 00:01:15,940
functionality but in a much more extensive and rigorous way. As
25
00:01:15,940 --> 00:01:18,760
I said, this is something that the developers can use to
26
00:01:18,760 --> 00:01:21,820
design and then build a system whereas this is something that
27
00:01:21,820 --> 00:01:25,590
can be used to communicate. With the stakeholders, with a non-technical
28
00:01:25,590 --> 00:01:29,490
audience. And we need to define both because they serve different purposes.
|