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.
Software Architectures and Documentation
Part I. Software Architecture Viewtypes and Styles
The Module Viewtype
Styles of the Module Viewtype
The Component-and-Connector Viewtype
Styles of the Component-and-Connector Viewtype
The Allocation Viewtype and Styles
Part II. Software Architecture Documentation in Practice
Documenting Software Interfaces
Choosing the Views
Building the Documentation Package
Other Views and Beyond
Rationale, Background, and Design Constraints