de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Diagrama de Estrutura Composta UML: Modelagem da Arquitetura Interna e Colaboração

O Diagrama de Estrutura Composta UML é um diagrama estrutural poderoso usado para explorar oarquitetura interna de um classificador estruturado, como uma classe, componente ou sistema. Foca-se em como uma entidade é composta por elementos interconectadosPartes e como interage com o mundo exterior por meio de seusPortas.

UML Composite Structure Diagram for a Payment Processing Component

Este diagrama é essencial para definir as visões caixa-preta e caixa-branca de um componente de sistema, garantindo fronteiras claras e permitindo a reutilização de componentes.

Estrutura e Contexto Central

O diagrama é desenhado no contexto de umClassificador (a caixa de limite), que define o sistema ou componente geral sendo analisado.

A. Papel do Classificador (Limite)

  • Notação: Uma caixa retangular grande.
  • Propósito: Representa a classe, componente ou sistema geral cuja estrutura interna está sendo definida. Todos os outros elementos do diagrama estão contidos dentro deste limite.

Elementos Fundamentais da Visão Interna

A estrutura interna é definida por três elementos-chave: Partes, Portas e Conectores.

B. Partes

Uma Parte representa um papel desempenhado por uma instância de um classificador (como uma classe ou componente) dentro da estrutura composta geral. Essencialmente, uma Parte é um bloco de construção interno.

  • Notação: Uma caixa retangular dentro do limite, rotulada com seu nome e tipo.
  • Sintaxe: nomeParte: TipoParte (por exemplo,cacheDados: MóduloCaching).
  • Distinção Chave: Uma Parte não é o objeto em si, mas o papel que esse objeto desempenha no contexto do classificador que o contém. Uma Parte pode, por si mesma, ser uma estrutura composta, permitindo aninhamento profundo.

C. Portas

Uma Porta é um ponto de interação distinto entre a estrutura composta (a fronteira) e seu ambiente, ou entre suas partes internas. As portas formalizam as interfaces que o componente utiliza ou fornece.

  • Notação: Um pequeno quadrado fixado à aresta da fronteira ou à aresta de uma parte interna.
  • Tipos de Portas:
    • Porta Pública: Fixada à fronteira externa; exposta ao ambiente.
    • Porta Encapsulada: Fixada a uma parte interna; conecta apenas essa parte a outras partes internas ou à fronteira do sistema.
  • Propósito: As portas definem explicitamente as interfaces necessárias e fornecidas, permitindo que a estrutura interna seja oculta (visão de caixa preta) enquanto ainda define seus pontos de interação contratuais.

D. Conectores

Um Conector modela a ligação de comunicação ou fluxo de informações/sinais entre dois elementos (duas Portas, duas Partes ou uma Porta e uma Parte).

  • Notação: Uma linha que conecta os dois elementos ligados.
  • Propósito: Representa a implementação da ligação de comunicação, mostrando como os dados ou mensagens são transferidos internamente.

Modelagem de Interfaces: Fornecidas e Requeridas

As interfaces definem as obrigações contratuais das Portas e são cruciais para a clareza arquitetônica.

A. Interface Fornecida (Notação de Lollipop)

  • Notação: Um círculo (ou “lollipop”) conectado a uma Porta.
  • Propósito: Mostra os serviços ou operações que o classificador (ou Parte) oferece ao seu ambiente ou componentes internos.

B. Interface Requerida (Notação de Soquete)

  • Notação: Um semicírculo (ou “soquete”) conectado a uma Porta.
  • Propósito: Mostra os serviços ou operações que o classificador (ou Parte) necessita do seu ambiente ou de outros componentes internos para funcionar corretamente.

Conector de Montagem: Uma linha de conector geralmente liga uma Interface Requerida (Soquete) de uma Parte ao Interface Fornecida (Balão) de outra Parte, ilustrando como os componentes internos são conectados para cumprir a função do sistema.

Modelagem de Colaboração: Papéis e Colaborações

Diagramas de Estrutura Composta também podem modelar dinâmicas Colaborações—conjuntos específicos de papéis e conexões que trabalham juntos para realizar uma tarefa.

A. Uso de Colaboração

  • Notação: Uma elipse tracejada contendo os nomes dos papéis colaborativos.
  • Propósito: Representa uma instância de um padrão de colaboração (por exemplo, uma implementação específica do padrão Observador) sendo usada dentro do componente maior.

Exemplo de Modelagem Passo a Passo: Um Controlador de Casa Inteligente

Vamos modelar a estrutura interna de um SistemaDeAutomaçãoResidencial componente.

  1. Fronteira do Classificador: Defina a caixa externa como SistemaDeAutomaçãoResidencial.
  2. Portas Externas: Adicione uma Porta rotulada portaApi à fronteira. Anexe uma Interface Fornecida (Lollipop) para ICommandReceiver (o que o mundo exterior pode enviar) e um Interface Obrigatória (Socket) para IExternalWeatherService (o que o sistema precisa).
  3. Partes Internas:
    • scheduler: TaskScheduler (Gerencia eventos agendados).
    • deviceManager: DeviceCoordinator (Comunica-se com o hardware).
  4. Conexões Internas:
    • Conecte o apiPort ao deviceManager Parte usando um Conector.
    • Conecte o scheduler Porta de saída da Parte ao deviceManager Porta de entrada da Parte, mostrando que o scheduler informa ao gerenciador de dispositivos quando agir.
  5. Estrutura Aninhada (Opcional): Mostre que o deviceManager por si só contém partes como zigbeeAdapter e wifiAdapter.

Este diagrama mostra claramente que o SistemaDeAutomaçãoResidencial é composto por duas partes internas principais, utiliza uma API específica e exige um serviço meteorológico externo para funcionar.

Resumo

O Diagrama de Estrutura Composta UML vai além da visão em caixa preta de uma classe ou componente para revelar sua arquitetura em caixa branca. Ao usar Partes para definir papéis, Portas para definir pontos de interação, e Conectores para definir a comunicação interna, permite que arquitetos e desenvolvedores compreendam e projetem com precisão componentes complexos, reutilizáveis e claramente encapsulados.

Você pode encontrar mais informações sobre UML e visualização de IA em nosso centro de recursos UML.

This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Ру́сский, Việt Nam, 简体中文 and 繁體中文.