In previous chapters, we discussed various aspects of software architecture and how to document them. Hardware, file systems, and team structure all interact with the software architecture, and this interaction must also be documented. It is through the mapping of the software architecture onto hardware that the performance of the system can be analyzed; it is through the mapping of the software architecture onto the team structure that project management activities can proceed; and it is through the mapping of the software environment onto a file structure that the management of the system's development can be done. This chapter focuses on the viewtype and styles that represent these interactions.
We begin by considering the most general form of the mapping of the software architecture onto its environment. We call this general form the allocation viewtype, which presents a mapping from the elements of either a module or a component-and-connector style onto elements of the environment. We then identify three common styles, as shown in Figure 5.1:
Figure 5.1. Three styles of the allocation viewtype are deployment, or mapping software architecture to a hardware environment; implementation, or mapping it to a file management system; and work assignment, or mapping it to an organization of teams.