Na modelagem UML, os componentes são elementos de modelo que representam
partes independentes e intercambiáveis de um sistema. Eles estão em conformidade
e realizam uma ou mais interfaces fornecidas e requeridas, que
determinam o comportamento dos componentes.
Os componentes tornam um sistema mais flexível, escalável e
reutilizável.
Para que um componente seja substituível, ele deve atender aos seguintes
critérios:
- A estrutura interna do componente
deve ser oculta. Não pode existir nenhuma dependência entre o conteúdo do
componente e de outros objetos.
- Os componentes devem fornecer interfaces para que os objetos externos
possam interagir com eles.
- A estrutura interna do componente deve ser independente.
Os objetos internos não devem conhecer os objetos externos.
- Os componentes devem especificar suas interfaces requeridas para que eles
tenham acesso a objetos externos.
Nos modelos que descrevem sistemas executáveis, os componentes representam
os componentes utilizados durante a execução do sistema.
Exemplos incluem objetos COM+, JavaBeans
e serviços da Web.
Normalmente, um componente recebe o nome da parte do sistema
que ele representa.
Como a figura a seguir ilustra, um componente é exibido
no editor de diagrama como um retângulo que contém o nome do
componente. Ela também contém um estereótipo «component» ou um ícone de
componente, que é uma caixa com dois pequenos retângulos que sobressaem
de seu lado.

Os compartimentos são utilizados para exibir informações sobre
os atributos, operações, interfaces fornecidas, interfaces requeridas,
realizações e estrutura interna do componente.