12.         Step 10: Implementation view

12.1.               Component diagrams

Component diagrams provide the modeling structures needed to visualize the physical nature of the system. A component diagram addresses the software organization of the system. It contains information about the software, executable and library components for the system. A component diagram shows the various components [1] and their dependencies. 

A component represents the physical module of code [Fowler, 2000a]. A component is often the same as a package. A dependency shows how changes to one component may cause other components to change.

·         Source code components (compile dependencies) show compilation dependencies among files.

·         Run-time components (link time dependencies) show the mapping of classes to run-time libraries.

·          Executable components (run-time dependencies) show the interfaces and calling dependencies among executables.

Finally, communication dependencies show which components communicate with one another.

Figure 21 Component diagram notation

[1] A representation of a source file, a library, or an executable.