(UML) ports, these little rectancular boxes attached to components, packages or even nodes, represent an (optionally named) collection of interfaces. They come in handy for several reasons:

Detailed mapping of ‘inside to outside’

Ports can support the detailed mapping of internal resp. external view of white- and blackboxes: Use ports to describe which internal building block of any whitebox communicates with an interface of the corresponding blackbox. In the following diagram, Foo communicates with Bar over a port. In the refining whitebox, the component BarA handles that interaction.

Ports to show mapping between blackbox and its refinement

Transmission protocol

I (Gernot) often used ports to denote the transmission protocoll for a particular interface: For an interface (e.g. inFoo) I can show that its available over http, https and ftp by attaching the same interface ball/socket to several ports, each port representing a distinct “access option” (ftp, http, https)…

Note: This is not what the original inventors of UML intented…

Ports to show access channels or protocols


In hardware- and deployment diagrams, ports can represent input/output channels, network adapters, virtual networks, IP-addresses or similar .