The Component Diagram
A component diagram shows the interdependency of software components and interfaces (it defines who uses what).

A component is an implementation element of the system: it can be software, a program, a code element, or a physical element such as a work document.

An interface represents the visible part of a class or package in a contractual client-supplier type relationship. The interface is a class stereotype.
A component diagram contains components and classes of the "Interface" stereotype. It is also possible to specify packages implemented by the components.
Example of a component diagram
This diagram describes the elements contained in the "Order" component and the interactions of these elements with external components.
Creating a Component Diagram
In HOPEX IT Architecture, you can create a component diagram using a component or package.
To create a component diagram with HOPEX IT Architecture from Design (UML) navigation pane:
1. In the navigation pane, select OO Implementation (UML).
2. In the edit area window, click the Packages tile.
3. Display all packages.
4. Right-click the name of the package concerned and select New > Component Diagram.
The diagram appears in the edit window.
Components
A component represents a modular part of a system that encapsulates its content, and which can be replaced in its environment. A component defines its behavior by means of interfaces that it provides and requires.
One component can be replaced by another if their interfaces conform.
A component can be a software package, program, code unit, etc.
It is represented by the following icon:

Interfaces
Creating component interfaces
An interface represents the visible part of a class or package in a contractual client-supplier type relationship.
The interface is a particular type of class.
To create a class of "Interface" stereotype in the composite structure diagram:
1. Click the
Interface button

, then click in the diagram.
2. In the dialog box that appears, enter the name of the class.
3. Click Add.

You can specify the details for the interface in terms of attributes and operations in the class diagram in the same way as for a class.
Linking interfaces to other objects
Two link types enable differentiation of required interfaces and provided interfaces.
A required interface is an interface necessary for object operation.
Example: the "Purchasing Management" component requires the "Product" interface for its operation to be able to associate a purchase order with products ordered.
A provided interface is an interface made available by an object to other objects.
Example: the "Product Management" component makes available the "Product" interface.
You can define interfaces required and provided by an object independently of other objects.
To specify that an interface is supported or required by an object:
1. Click the
Connect 
button and drag the link from the object to the interface.
A dialog box appears:
2. Indicate the type of link to be created.
• Required interface
• Supported interface
3. Click OK.
The link then appears in the diagram.
The interface shape differs according to link type:
Connecting interfaces
Two interfaces can be interconnected. This connection is modeled by a connector.
You can also indicate that an interface provided by an object is required by another. Here it is one and the same interface.
Ports
Ports enable connection of a component to its parts or to its environment.
Ports are represented by a square in the diagram, placed at the edge of the described element when they assure connection with the exterior.
They are connected to components by connectors.
Ports can specify queries sent and services provided by the component, as well as queries and services they may require from other parts of the system. These queries and services are represented by classes of interface type.
You can view interfaces associated with a port in the properties dialog box of the port, in the Provided and Required Interfaces tab.
Connectors
Connectors enable connection of diagram objects.
Connectors of simple type do not specify a particular connection type, they are notably used to connect instances of objects described in collaborations.
In the composite structure diagram, it is possible to specify the type of connector between two objects: Assembly or Delegate.
Delegate connector
A "Delegate" type connector indicates the redirection of queries to a component element responsible for their execution.
The delegation link can be made directly between the component port and the component element, or between the component port and the element port.
Below, the "Order" component delegates management of accounts to be debited to the "Order Header" class.
Assembly connector
An "Assembly" type connector is a connector between two or more components or ports indicating that one or more components provide services that others use.

These can be other objects or components.
To connect ports or components that share an interface, you can also use "Provided Interface" and "Required Interface" links.
An "Assembly" type connector connects the interface provided by the "Account" component to the interface required by the "Order Header" class.