A system cannot fulfill its purpose until it is
deployed. And deploying a system involves physically placing the
system's executable modules on the hardware devices on which
they are supposed to run. So when you do that,
you're basically mapping your components and connectors to specific
hardware elements. Here in this diagram, for instance, I'm
showing the same components that we saw in the
previous diagram, but we see them deployed on a laptop,
which is depicted here in this way, and on two
smartphones that are represented here, or PDAs, if you wish.
So why do we this, why do we create
a deployment perspective for our architecture? Well, because the deployment
view of an architecture can be critical in assessing whether
the system will be able to satisfy its requirement. Because
doing this mapping allows you to discover and assess other
characteristics of your system that you might not have considered
up to now. For instance, using a deployment view like this
one and knowing the characteristics of the hardware devices, one might
be able to assess the system in terms of available memory.
Is there going to be enough memory available to run the system,
for example, on this device? Power consumption. Is the power consumption
profile going to be larger than what the device can handle?
Or again the required network bandwidth. Does the system have enough
network bandwidth to enable the required interactions? And so on. So all
of these characteristics, all of these qualities, you can assess when
you do this final mapping of the components to the hardware elements.