UML Component diagrams are used to model the physical aspects of object-oriented systems used for visualizing, specifying, and documenting component-based systems and building executable systems through forward and reverse engineering. Component diagrams are class diagrams that focus on a system's components and are frequently used to model a system's static implementation view. A component diagram divides the system under development into several high levels of functionality. Each component is responsible for one specific goal within the overall system and only interacts with other essential elements when necessary.