-In our initial definition of requirements engineering, we talked about - -2
-software systems. But what do we really mean when we - -3
-use the term software? Software is an abstract description of - -4
-a set of computations that becomes concrete, and therefore useful, only - -5
-when we run the software on some hardware, and that, - -6
-in the context of some human activity that it can - -7
-support. So what does that mean exactly? What that means - -8
-is that when we say software, what we really mean is - -9
-a software intensive system. That is, the combination - -10
-of 3 things, the software, the hardware on which - -11
-the software runs, and the context in which the - -12
-software is used. Just to illustrate, let me show - -13
-you this through a picture. What I'm showing here - -14
-is a customer, a user, that is using, is - -15
-accessing, an ATM machine. And this action involves several - -16
-things. There is the software that drives the logic - -17
-of the ATM machine. There is the hardware on - -18
-which the software runs. And there is the context - -19
-In which the software is used. And in this - -20
-case, the context is the bank. And only by - -21
-considering these 3 things together can we really understand - -22
-the functionality that is represented here. So the bottom - -23
-line here is that we usually take hardware and - -24
-context for granted in this equation. But they actually - -25
-need to be explicitly considered when building a - -26
-system. Otherwise, we might forget this is all - -27
-the functionality, and ultimately of the requirements. And - -28
-we might end up with the wrong system. -- cgit 1.4.1