O que é um Diagrama de Componentes?

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.

Component Diagram Hierarchy

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.
Component Diagram Overview
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:
  1. Um retângulo com o nome do componente
  2. Um retângulo com um ícone de componente
  3. Um retângulo com texto de estereótipo e/ou ícone
Appearance of a Component

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).
Required and Provided Interfaces

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

Component Diagram Example with Interfaces

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”.
Component Diagram with Subsystem

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.
Component Diagram with Port

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:

  • Uma associação especifica uma relação semântica que pode ocorrer entre instâncias tipadas.
  • Ela possui pelo menos dois extremos, cada um representado por um atributo, e cada extremo está conectado ao tipo do outro extremo. Múltiplos extremos podem ter o mesmo tipo.

Component Diagram: Association




Composição:

  • A composição é uma forma forte de agregação, exigindo que uma instância esteja contida em no máximo um composto.
  • Se o composto for excluído, suas partes são tipicamente excluídas também.

Component Diagram: Composition




Agregação:

  • Uma forma de associação em que uma das extremidades é marcada como agregação compartilhada, significando que possui agregação compartilhada.

Component Diagram: Aggregation




Restrição:

  • Uma condição ou restrição expressa em texto de linguagem natural ou linguagem legível por máquina para declarar certos significados de um elemento.

Component Diagram: Constraint




Dependência:

  • Uma relação que indica que um ou mais elementos do modelo requerem outro elemento do modelo para sua especificação ou implementação.
  • Isso significa que a semântica completa do elemento dependente é semanticamente ou estruturalmente dependente da definição do elemento fornecedor.

Component Diagram: Dependency




Generalização:

  • Uma relação de classificação entre um classificador mais geral e um classificador mais específico.
  • Cada instância do classificador específico também é uma instância indireta do classificador geral.
  • Portanto, o classificador específico herda características do classificador mais geral.

Component Diagram: Generalization




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
Component Diagram Example: Java Source Code
Exemplo de Diagrama de Componente – Código C++ com Versionamento
Component Diagram Example: C++ Code with Versioning

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.
Component Diagram for Modeling Executable Release

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.
Component Diagram for Modeling Physical Database


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.
  1. O que é a Linguagem Unificada de Modelagem?
  2. Ferramentas Profissionais UML
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. Visual Paradigm Online. (s.d.). Tutorial de diagrama de componente. Visual Paradigm. https://online.visual-paradigm.com/tutorials/component-diagram-tutorial/ 49.
  11. 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.
  12. Visual Paradigm Online. (s.d.). Ferramentas online de diagramas UML. Visual Paradigm. https://online.visual-paradigm.com/diagrams/features/uml-tool/ 51.

Leave a Reply