A component diagram allows verification that a system's required functionality is acceptable.
These diagrams are also used as a communication tool between the developer and stakeholders of the system.
Programmers and developers use the diagrams to formalize a roadmap for the implementation, allowing for better decision-making about task assignment or needed skill improvements.
Inherited interfaces may be shown with a lollipop, preceding the name label with a "caret symbol".
To illustrate dependencies between the two, use a "solid line" with an "open arrowhead" joining the socket to the lollipop.