Visão Geral

Os diagramas de componentes são empregados para a modelagem da visão estática de implementação de um sistema e apresentam a organização e as dependências existentes entre um conjunto de componentes. Isso envolve a modelagem de itens físicos que residem em um nó, como executáveis, bibliotecas, tabelas, arquivos e documentos.
Um componente é a parte física e substituível de um sistema ao qual se adapta e fornece a realização de um conjunto de interfaces. Tipicamente, um componente, representa o pacote físico de elementos lógicos, como classes, interfaces e colaborações.

Uso Comum

Os diagramas de componentes são empregados para a modelagem da visão estática de implementação de um sistema. Essa perspectiva primariamente proporciona suporte ao gerenciamento da configuração das partes de um sistema, formada pelos componentes que podem ser reunidos de várias maneiras para produzir um sistema em execução.
Os diagramas de componentes podem ser utilizados, tipicamente, de quatro maneiras:
  • Modelagem de código-fonte.
  • Modelagem de versões executáveis.
  • Modelagem de perspectivas de persistência em Banco de Dados.
  • Modelagem de adaptação de sistemas.
Coletivamente, todos os diagramas de componentes representam a visão estática de implementação completa, individualmente, cada diagrama representa apenas um único aspecto.

Termos e Conceitos

Graficamente, o diagrama de componentes é uma coleção de vértices e arcos formados por componentes, interfaces e relacionamentos de dependência, generalização, associação e realização.
Os diagramas de componentes também podem conter pacotes ou subsistemas, utilizados para agrupar elementos do modelo em conjuntos maiores.
Um componente é uma parte física e substituível de um sistema ao qual se adapta e fornece a realização de um conjunto de interfaces.
Em muitos aspectos, os componentes são semelhantes às classes:
  • podem realizar um conjunto de interfaces;
  • podem participar de um relacionamento de dependência, generalização e associação;
  • permitem instâncias;
  • podem ser participantes de interações.
Entretanto, os componentes representam o pacote físico de componentes lógicos e se encontram em um nível diferente de abstração. Em particular, um componente é uma implementação física de um conjunto de outros elementos lógicos, como as classes e as colaborações.

Componentes e Interfaces

Uma interface é uma coleção de operações utilizadas para especificar um serviço de uma classe ou de um componente. Todas as facilidades dos sistemas operacionais mais comuns baseados em componentes (com COM+, CORBA, e Enterprise Java Beans) usam interfaces como o que permite reunir os componentes.
A utilização de interfaces, como meio de integração entre componentes e sistemas, permite que os serviços especificados pelas interfaces sejam independentes de localização e de fácil adaptação.
É possível mostrar o relacionamento entre um componente e sua interface em uma de duas maneiras:
  • Representar a interface na forma icônica (oculta): o componente que realiza a interface é a ela conectado de forma por meio de um relacionamento de realização oculto.
  • Representar a interface de forma expandida: o componente que realiza a interface é a ela conectado por meio de um relacionamento de realização pleno.
Representação da Interface na Forma Icônica
Representação da Interface na Forma Expandida

Um componente é uma parte física, portanto, ele existe fisicamente (não é um conceito). É substituível, um componente pode ser substituído por outro que esteja em conformidade com as mesmas interfaces. Um componente é parte de um sistema, ele raramente existe isoladamente. E, ainda, um componente está em conformidade e proporciona a realização de um conjunto de interfaces.
Diagrama de Componentes (Módulo de Cadastro de Pedido)

Organização Física dos Modelos de Componentes

Ao especificar um modelo de componentes é conveniente atentar para os seguintes itens:
  • Dê-lhe um nome capaz de comunicar seu propósito.
  • Distribua seus elementos para minimizar o cruzamento de linhas.
  • Organize seus elementos espacialmente, de maneira que os itens semanticamente afins apareçam fisicamente próximos.
  • Use notas explicativas e cores como indicações visuais e chamar atenção para características importantes do diagrama.
  • Use a ramificação com cautela, ramificações complexas podem ser melhor representadas utilizando o diagrama de atividades.