Component diagrams describe the organization and dependencies among physical software
components, such as source code, runtime (binary) code, and executables. For
example, a component diagram can illustrate the dependency between source files and
executable files, similar to the information within makefiles, which describe source code
dependencies and can be used to compile and link an application. A component is represented
by a rectangle with two tabs overlapping the left edge. A dependency is denoted by
a dotted arrow going from a component to the component it depends on.