Isolating the levels of abstraction

Several physical components can be abstracted by a single virtual component.  Conversely, from a logic point of view, the physical components are not linked to each other and can be analyzed independently of each other.

A bottom up approach, from the physical components to the logic components, allows us to further abstract the hardware by establishing the level of interaction offered by different layers separating the hardware of these logic components.

Without knowing which route to take to achieve a physical component, or which component it is, the logic components of the solution are able to communicate with the physical components using an interface exposed by a software layer that underlies the logic component.

These layers are more and more abstract than the lower layers, and use the functionality from these layers to expose the functionality to higher layers, by way of a generic interface.