In this chapter, we focus on the value of, and techniques for, documenting behavioral aspects of the interactions among system elements. Documenting behavior is a way to add more semantic information to elements and their interactions that have time-related characteristics.
Documentation of a view's behavioral aspects requires that a time line be provided along with structural information. Structural relationships provide a system view that reflects all potential interactions, few of which will be active at any given instant during system execution. It is the system behavior that describes how element interactions may affect one another at any point in time or when in a given system state. Every view can have an associated description that documents the behavior of the view's elements.
Some system characteristics can be analyzed entirely by using a system's structural description. For example, the existence of anomalies, such as required inputs for which no source is available, can be detected in a manner similar to the definition-use analysis performed by compilers. However, reasoning about such characteristics as a system's potential to deadlock or a system's ability to complete a task in the re-quired amount of time requires that the architectural description contain information about both the behavior of the elements and constraints on the interactions among them. Behavioral documentation adds information that reveals
Interaction diagrams or statecharts as defined by UML are examples of behavioral documentation.
In this chapter, we provide guidance as to what aspects of behavior to document and how this documentation is used during the earliest phases of system development. In addition, we provide overviews and pointers to languages, methods, and tools that are available to help practitioners document system behavior.
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