Você está na página 1de 12

Diagrama de Componentes

236

● Os diagramas de componentes capturam a estrutura física da


implementação

● Têm como objectivo


● Organizar o código fonte (ambiente de desenvolvimento)

● Construir uma release executável (ambiente de produção)

● Especificar componentes como base de dados, etc.

● Contém componentes, interfaces e relações entre componentes


José Creissac Campos - António Nestor Ribeiro
Desenvolvimento de Sistemas Software

● Os pacotes de componentes podem ser utilizados para modelar a


arquitectura física
● Identificar as principais peças do sistema
Diagrama de Componentes
237

● O que é um componente?

● Um pedaço de software reutilizável, bem encapsulado e “facilmente” substituível.


● São blocos (peças) que combinados constroem o sistema pretendido.
● A dimensão dos componentes não é homogénea, existindo num mesmo sistema,
componentes de diferentes dimensões.

● Quais são os bons candidatos a serem componentes do sistema?


● Items que desempenham uma funcionalidade que é utilizada recorrentemente no

sistema
José Creissac Campos - António Nestor Ribeiro

● Exemplos: componentes de logging, parsers de XML, componentes de gestão de


Desenvolvimento de Sistemas Software

carrinhos de compra (shopping carts), etc.

● Em UML um componente pode efectuar as mesmas funcionalidades que uma classe


faz
● Generalização

● Associação com outros componentes ou classes

● Implementação de interfaces

• Um componente representa um empacotamento físico de elementos relacionados


logicamente (normalmente classes)
Diagrama de Componentes
238

● Um componente é representado em UML como uma caixa com o estereótipo


<<component>> e com um ícone no canto superior direito (opcional).

● Em notações anteriores do UML o símbolo representativo de um componente era


ligeramente diferente, apresentado os tabs de forma mais evidente.
José Creissac Campos - António Nestor Ribeiro
Desenvolvimento de Sistemas Software
Diagrama de Componentes
239

● Os componentes por forma a serem facilmente trocados devem ser independentes


uns dos outros
● Comprometem-se com uma API que devem implementar

● Em termos de desenvolvimento, significa que os componentes implementam

interfaces, o que possibilita que do ponto de vista do sistema as trocas de


componentes sejam pacíficas.
● Classes e outros componentes dialogam com um determinado componente através

da(s) interface(s) implementada(s)

Relação de concretização (realization): um componente pode concretizar


José Creissac Campos - António Nestor Ribeiro

(implementar os serviços de) uma ou mais interfaces


Desenvolvimento de Sistemas Software

• Normalmente quer dizer que tem classes que implementam esses interfaces
• Diz-se que as interfaces são exportadas
• Um componente poder ser substituído por outro componente que implementa as
mesmas interfaces
- Relação de dependência: um componente pode usar uma ou mais interfaces
• Diz-se que essas interfaces são importadas
• Um componente que usa outro componente através de uma interface bem
definida, não deve depender da implementação (do componente em si), mas
apenas da interface
Diagrama de Componentes
240

● Notação para representar a implementação de uma interface

● É possível encontrar o mesmo pedaço de diagrama com a notação alternativa


José Creissac Campos - António Nestor Ribeiro
Desenvolvimento de Sistemas Software
Diagrama de Componentes
241

● Os componentes usualmente contém classes e estas podem ser representadas no


diagrama.
José Creissac Campos - António Nestor Ribeiro

● Ou, em notação alternativa


Desenvolvimento de Sistemas Software
Diagrama de Componentes
242
Caso de estudo de um sistema de gestão da biblioteca (notação UML 1.x)
Páginas Web Dinâmicas do SIB
Mostra menu que está
disponível em qualquer pá gina
login. h index.html
tml para inserir
novo

pesquisaAu pesquisaPubli pesquisaReq pesquisaSó


t ores.html cações.html uisições.html cios.html

listaAutor listaPublica listaSóci


listaRequisiç
es.asp ç ões.as p os.asp
ões.asp
José Creissac Campos - António Nestor Ribeiro

fichaA ut or. fichaPublica fichaRequi fichaSóc


asp ção.asp sição.asp io.asp
Desenvolvimento de Sistemas Software

Componentes de Lógica de Negócio do SIB

<<COM+>> <<COM+>> <<COM+>> <<COM+>>


GestãoAuto GestãoPubli GestãoRequ GestãoSóci
res cações is ições os

Base de Dados do SIB


<<dbtable>> <<dbtable>> <<dbtable>> <<dbtable>>
Autores Publicações Requisições Sócios
Diagramas de Deployment
243

- Captura a topologia (ambiente) de hardware de um sistema sobre a qual são


executados os componentes de software
- Construído como parte da especificação da arquitectura física
- Objectivo:
• Especificar a distribuição de componentes
• Identificar estrangulamentos de desempenho
José Creissac Campos - António Nestor Ribeiro

Permitem que a equipa de engenheiros especifique a disposição física dos elementos


Desenvolvimento de Sistemas Software

que constituem o sistema


● Acrescenta detalhe que tem a ver com a configuração do sistema em tempo de

execução
● Permite cruzar competências de engenharia de software com redes de

comunicações, sistemas operativos e bases de dados


Diagramas de Deployment
244

● Elementos de um diagrama de deployment


● Nós

● Ligações

● Nós:
● Computadores ou outros dispositivos
● Existem nós que são nós de hardware (server, desktop, disk drives) ou nós de
ambiente de execução (sistema operativo, web server, application server, etc.)
● Os componentes localizados (deployed) em cada nó são representados
José Creissac Campos - António Nestor Ribeiro

explicitamente
Desenvolvimento de Sistemas Software

● É possível agrupar nós em pacotes (packages)

● Ligações:
● Entre nós (podem ser decoradas com multiplicidades)
● Podem ter estereótipos que indicam o tipo de ligação. Exemplo: <<TCP/IP>> ou
<<RMI>>
Diagramas de Deployment
245

● Por vezes utiliza-se o estereótipo <<device>> para identificar os nós de hardware

● Para identificar os ambientes de execução utiliza-se o estereótipo


<<executionEnvironment>>
José Creissac Campos - António Nestor Ribeiro
Desenvolvimento de Sistemas Software

● Comunicação entre dois nós


Diagramas de Deployment
246

● A descrição pode ser refinada para detalhar os ambientes de execução em


cada nó
José Creissac Campos - António Nestor Ribeiro

● Especificação de dependências em tempo de execução


Desenvolvimento de Sistemas Software
Desenvolvimento de Sistemas Software

247
José Creissac Campos - António Nestor Ribeiro


Um diagrama mais completo
Diagramas de Deployment

Você também pode gostar