Los puertos son conectores para clasificadores encapsulados. Representan el punto en el que los clasificadores interactúan con su entorno. Exceptuando los puertos, los clasificadores encapsulados son un sistema cerrado en sí mismo. El hecho de que tanto su estructura como sus elementos de comportamiento estén aislados del sistema restante permite que puedan especificarse libremente. Siempre y cuando un sistema cumpla las restricciones del puerto, el clasificador encapsulado puede utilizarse en entornos diferentes.
UML permite a los clasificadores tener varios puertos. Para cada uno de ellos pueden definirse reglas específicas. El puerto es una propiedad del clasificador, por lo que las reglas se definen en el campo de las propiedades. Entre estas se incluyen los servicios que ofrece el clasificador a su entorno y los que necesita. Para diferenciar flujos de información diferentes se ha de identificar a los puertos que se han utilizado para ellos.
Los mismos puertos también tienen propiedades. Si un puerto ejecuta funciones públicas del clasificador, se indica con la propiedad isService. Si isService = true, el puerto se considera un componente imprescindible de las funciones visibles hacia fuera del clasificador. Si isService = false, el puerto no forma parte de las funciones principales y, al igual que cualquier otra función interna, puede modificarse o eliminarse.
Los puertos también interactúan con interfaces, que pueden ser necesarias o puestas a disposición (ver apartado Interfaces). La interfaz conectada al puerto especifica las interacciones que tienen lugar a través del puerto. Como el conector es una propiedad, tiene un tipo. El valor de isConjugated media entre los tipos y la interfaz del puerto. Si el valor es verdadero, la interfaz requeridapuede derivarse del tipo de puerto o del conjunto de interfaces que realiza el tipo del puerto. La interfaz proporcionadase deriva del conjunto de las interfaces. Si isConjugated es verdadero, esta interfaz de deriva del tipo.
Si un clasificador encapsulado genera una instancia, también se crean las instancias correspondientes para cada uno de sus puertos. Un puerto mantiene a cada instancia en concordancia con su tipo y su multiplicidad (ver más adelante). UML denomina a las instancias puntos de interacción. Cada instancia posee referencias únicas que le sirven para diferenciar las distintas solicitudes para funciones de comportamiento que se dirigen a sus puertos.
Los puertos con la cualidad isBehavior = true envían una petición a la instancia del clasificador. Esta petición asume el comportamiento especificado de la instancia, y es que estos puertos llamados de comportamiento no envían las peticiones al interior del clasificador. Si en el diagrama de clases no se ha definido ningún comportamiento, los mensajes dirigidos a estos puertos se pierden.
Los puertos se modelan como un pequeño cuadrado en el marco del clasificador al cual pertenece. En el puerto se dibujan las interfaces necesarias o puestas a disposición. Si no especificas ninguna propiedad especial para el puerto, la interfaz se dibuja sin puerto.