about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L1 Requirements Engineering Subtitles/20 - User and System Requirements - lang_en_vs4.srt
blob: 2da3f583392cc25376d5268dbd81d1fa5c4d6f82 (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
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.