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,100 --> 00:00:03,100
In our initial definition of requirements engineering, we talked about
2
00:00:03,100 --> 00:00:06,130
software systems. But what do we really mean when we
3
00:00:06,130 --> 00:00:09,980
use the term software? Software is an abstract description of
4
00:00:09,980 --> 00:00:13,920
a set of computations that becomes concrete, and therefore useful, only
5
00:00:13,920 --> 00:00:16,600
when we run the software on some hardware, and that,
6
00:00:16,600 --> 00:00:19,310
in the context of some human activity that it can
7
00:00:19,310 --> 00:00:22,530
support. So what does that mean exactly? What that means
8
00:00:22,530 --> 00:00:25,235
is that when we say software, what we really mean is
9
00:00:25,235 --> 00:00:28,790
a software intensive system. That is, the combination
10
00:00:28,790 --> 00:00:31,930
of 3 things, the software, the hardware on which
11
00:00:31,930 --> 00:00:34,610
the software runs, and the context in which the
12
00:00:34,610 --> 00:00:37,470
software is used. Just to illustrate, let me show
13
00:00:37,470 --> 00:00:40,010
you this through a picture. What I'm showing here
14
00:00:40,010 --> 00:00:42,830
is a customer, a user, that is using, is
15
00:00:42,830 --> 00:00:47,000
accessing, an ATM machine. And this action involves several
16
00:00:47,000 --> 00:00:50,650
things. There is the software that drives the logic
17
00:00:50,650 --> 00:00:53,410
of the ATM machine. There is the hardware on
18
00:00:53,410 --> 00:00:57,280
which the software runs. And there is the context
19
00:00:57,280 --> 00:00:59,850
In which the software is used. And in this
20
00:00:59,850 --> 00:01:02,660
case, the context is the bank. And only by
21
00:01:02,660 --> 00:01:06,105
considering these 3 things together can we really understand
22
00:01:06,105 --> 00:01:09,510
the functionality that is represented here. So the bottom
23
00:01:09,510 --> 00:01:12,690
line here is that we usually take hardware and
24
00:01:12,690 --> 00:01:15,750
context for granted in this equation. But they actually
25
00:01:15,750 --> 00:01:18,210
need to be explicitly considered when building a
26
00:01:18,210 --> 00:01:20,770
system. Otherwise, we might forget this is all
27
00:01:20,770 --> 00:01:23,850
the functionality, and ultimately of the requirements. And
28
00:01:23,850 --> 00:01:25,640
we might end up with the wrong system.
|