(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.
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…
In hardware- and deployment diagrams, ports can represent input/output channels, network adapters, virtual networks, IP-addresses or similar .