UML provides two types of diagrams that provide insight into how the final software solution will be implemented. These diagrams are the Component and Deployment diagrams. Component DiagramsThe Component diagrams are extremely useful for architects and developers as they provide a static implementation model of the software components and their respective dependencies that will eventually constitute the solution system, which from a development perspective is the light at the end of the tunnel. The components modeled in the Component diagram are primarily derived from the UML Class diagrams and can be represented as source code, binary code components, and executable components. Components are connected by dependencies, which implies that one component uses the services of the other. The elements of a Component diagram are illustrated in Figure 3.33:
Figure 3.33. The elements of a Component diagram.
Deployment DiagramsOne of the key tasks that a software architect has to perform is to decide the application and hardware infrastructure that is required to support the final solution. Deployment diagrams are the appropriate UML diagrams to capture infrastructure decisions because they graphically represent processing resources (nodes), and the runtime instances of software components that can reside on them. If your application is distributed, a Deployment diagram is essential. By visually mapping software components to their respective executable environments (Nodes), you can examine such deployment issues as fault-tolerance and single-points of failure, and identify possible performance problems. Note The Deployment diagram is related to the Component diagram because the components typically exist in the context of a node. The elements of a Deployment diagram are illustrated in Figure 3.34:
Figure 3.34. The elements of a Deployment diagram.
An example of a simple J2EE application Deployment diagram is illustrated in Figure 3.35. Figure 3.35. An example of a J2EE application deployment diagram.
|