UMLOs Diagramas de Componentes são usados para modelar os aspectos físicos de um sistema orientado a objetos. São usados para visualizar, especificar e documentar sistemas baseados em componentes, bem como para construir sistemas executáveis por meio de engenharia direta e reversa. Um diagrama de componentes é essencialmente um diagrama de classe especializado que se concentra nos componentes do sistema e é usado para modelar a visão estática de implementação de um sistema.

Visão geral dos Diagramas de Componentes
Um diagrama de componentes divide o sistema real em desenvolvimento em várias funcionalidades de alto nível. Cada componente é responsável por um objetivo claramente definido dentro do sistema e interage apenas com outros elementos centrais conforme necessário.

O exemplo acima mostra os componentes internos de um componente maior:
- Os dados (IDs de conta e de cheque) entram no componente através das portas à direita e são transformados em um formato utilizável pelos componentes internos. A interface à direita é chamada deinterface fornecida, representando os serviços que o componente requer para cumprir suas responsabilidades.
- Os dados são então passados por várias conexões para e através de outros componentes, e saem pelas portas à esquerda. As interfaces à esquerda são chamadas deinterfaces necessárias, representando os serviços que o componente fornece.
- É importante observar que os componentes internos estão contidos em uma caixa maior — isso pode ser o próprio sistema inteiro (no qual caso nenhum símbolo de componente aparece no canto superior direito) ou uma sub-sistema/componente do sistema (no qual caso a caixa representa o próprio componente).
Conceitos básicos dos Diagramas de Componentes
Um componente representa uma parte modular de um sistema, encapsulando seus conteúdos e cujo comportamento pode ser substituído em seu ambiente. No UML 2, um componente é desenhado como um retângulo com um compartimento opcional empilhado verticalmente. A visão abstrata de alto nível de um componente no UML 2 pode ser modelada como:
- Um retângulo com o nome do componente
- Um retângulo com um ícone de componente
- Um retângulo com texto de estereótipo e/ou ícone

Interfaces
Dois tipos de interfaces de componente são mostrados no exemplo abaixo:
Ointerface fornecidasímbolo com um círculo completo na extremidade indica a interface que o componente fornece — o símbolo de “lollipop” é uma notação abreviada para a relação de implementação de um classificador de interface.
Ointerface necessáriasímbolo com um semicírculo (também conhecido como soquete) na extremidade indica a interface que o componente requer (em ambos os casos, o nome da interface é colocado próximo ao próprio símbolo).

Exemplo de Diagrama de Componentes – Usando Interfaces (Sistema de Pedidos)

Subsistemas
Um classificador de subsistema é uma versão especializada de um classificador de componente. Portanto, o elemento de notação de subsistema herda todas as mesmas regras da notação de componente. A única diferença é que o elemento de símbolo de subsistema usa a palavra-chave “subsystem” em vez de “componente”.

Portas
As portas são representadas por quadrados ao longo da borda de um componente ou sistema. Elas são tipicamente usadas para expor as interfaces necessárias e fornecidas por um componente.

Relações
Graphicamente, um diagrama de componente é um conjunto de vértices e arcos, tipicamente contendo componentes, interfaces e relações como dependência, agregação, restrição, generalização, associação e realização. Também pode incluir notas e restrições.
| Relação | Símbolo |
|---|---|
Associação:
|
|
Composição:
|
|
Agregação:
|
|
Restrição:
|
|
Dependência:
|
|
Generalização:
|
Modelagem de Código-fonte
- Identifique o conjunto de arquivos de código-fonte de interesse por meio de engenharia reversa ou direta, e modele-os como componentes construídos como arquivos.
- Para sistemas maiores, use pacotes para exibir grupos de arquivos de código-fonte.
- Considere incluir um valor etiquetado para representar informações como número da versão, autor e data da última modificação do arquivo de código-fonte. Use ferramentas para gerenciar os valores desses valores etiquetados.
- Use dependências para modelar dependências de compilação entre esses arquivos. Da mesma forma, use ferramentas para ajudar a gerar e gerenciar essas dependências.
Exemplo de Componente – Código-fonte Java

Exemplo de Diagrama de Componente – Código C++ com Versionamento

Modelagem de Lançamentos Executáveis
- Identifique o conjunto de componentes que deseja modelar. Isso geralmente envolve alguns ou todos os componentes em um nó, ou uma distribuição desses componentes em todos os nós do sistema.
- Considere o estereótipo para cada componente neste conjunto. Para a maioria dos sistemas, você encontrará um número pequeno de tipos diferentes de componentes (por exemplo, executáveis, bibliotecas, tabelas, arquivos e documentos). Você pode usar o mecanismo de extensibilidade do UML para fornecer pistas visuais (dicas) para esses estereótipos.
- Para cada componente neste conjunto, considere suas relações com os vizinhos. Muitas vezes, isso envolve interfaces exportadas por alguns componentes (implementadas) e depois importadas por outros (usadas). Se você quiser expor pontos de fratura no sistema, modele explicitamente essas interfaces. Se quiser uma abstração de nível superior, elimine essas relações mostrando apenas dependências entre componentes.

Modelagem de Banco de Dados Físico
- Identifique as classes no modelo que representam esquemas lógicos de banco de dados.
- Escolha a estratégia para mapear essas classes para tabelas. Você também deve considerar a distribuição física do banco de dados. Sua estratégia de mapeamento será influenciada por onde você deseja que os dados persistam no sistema implantado.
- Para visualizar, especificar, construir e documentar o mapeamento, crie um diagrama de componentes contendo componentes construídos como tabelas.
- Onde possível, use ferramentas para ajudá-lo a converter o design lógico em um design físico.
Tente desenhar um diagrama de componentes UML agora
Você já aprendeu o que é um diagrama de componentes e como desenhá-lo. Está na hora de criar o seu próprio. Obtenha o Visual Paradigm Edition Comunitária, uma ferramenta UML gratuita, e use a ferramenta gratuita Diagrama de Componentes para criar o seu próprio. É fácil de usar e intuitivo.
Links relacionados
- O que é a Linguagem Unificada de Modelagem?
- Ferramentas Profissionais UML
- Visual Paradigm. (s.d.). Como desenhar um diagrama de componente? Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581/7292_drawingcompo.html 42.
- Visual Paradigm. (2018, 11 de maio). O que é um diagrama de componente? Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/ 43.
- Visual Paradigm. (s.d.). Como desenhar um diagrama de componente em UML? Visual Paradigm. https://www.visual-paradigm.com/tutorials/how-to-draw-component-diagram-in-uml/ 44.
- Visual Paradigm. (s.d.). Diagrama de componente – Diagrama UML 2 – Ferramenta de modelagem UML. Visual Paradigm. https://www.visual-paradigm.com/VPGallery/diagrams/Component.html 45.
- Visual Paradigm. (s.d.). Diagrama de componente no Visual Paradigm. Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581_componentdia.html 46.
- Círculo da Comunidade Visual Paradigm. (2018, 11 de maio). 7. Diagrama de componente. Visual Paradigm. https://circle.visual-paradigm.com/docs/uml-and-sysml/component-diagram/ 47.
- Visual Paradigm Online. (s.d.). Ferramenta gratuita de diagrama de componente. Visual Paradigm. https://online.visual-paradigm.com/diagrams/solutions/free-component-diagram-tool/ 48.
- Visual Paradigm Online. (s.d.). Tutorial de diagrama de componente. Visual Paradigm. https://online.visual-paradigm.com/tutorials/component-diagram-tutorial/ 49.
- Visual Paradigm. (2022, 2 de setembro). Tutorial de diagrama de classe UML. Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/ 50.
- Visual Paradigm Online. (s.d.). Ferramentas online de diagramas UML. Visual Paradigm. https://online.visual-paradigm.com/diagrams/features/uml-tool/ 51.





