Diagramas de componentes

Propaganda
UML – Diagramas de componentes
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Diagrama de Componentes

Captura a estrutura física da implementação

Construído como parte da especificação da arquitectura

Objectivo
• Organizar o código fonte (ambiente de desenvolvimento)
• Construir uma release executável (ambiente de produção)
• Especificar uma base de dados física


Desenvolvido por arquitectos e programadores
Contém componentes, interfaces e relações entre
componentes
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Componentes

Um componente é uma parte física (feita de bits e bytes) e
substituível de um sistema, que proporciona a realização de um
conjunto de interfaces
• Podem-nos interessar diferentes ambientes: desenvolvimento, produção,
testes, ...



Exemplos: executáveis, bibliotecas, tabelas, ficheiros,
documentos
Um componente representa um empacotamento físico de
elementos relacionados logicamente (normalmente classes)
Notação: caixa com tabs
kernel32.dll
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Tipos de componentes - ícones e
estereótipos
<<executable>> componente que pode ser executado num nó
2 rodas
dentadas
<<library>>
biblioteca estática ou dinâmica
<<database>>
base de dados
<<table>>
tabela de uma base de dados
<<file>>
ficheiro contendo código fonte ou dados
<<document>>
documento genérico
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Interfaces


Uma interface é um conjunto de operações usado para especificar
os serviços de uma classe ou componente
Relação de concretização (realization): um componente pode
concretizar (implementar os serviços de) uma ou mais interfaces
• 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
- Não basta obedecer à mesma sintaxe, mas também à mesma semântica

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
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Interfaces – Exemplo 1
image.java
componente.java
ImageObserver
ou com mais detalhe:
image.java
dependência
interface
<<interface>>
ImageObserver
abort: int {final static}
error: int {final static}
imageUpdate(): Boolean
concretização
componente.java
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Interfaces – Exemplo 2
componente
Java
Application
JDBC
Visual Basic
Application
Sun JDBCODBC brigde
SQL Server
JDBC driver
interface
(mais precisamente, API)
ODBC
Oracle ODBC driver
SQL Server ODBC
driver
Transact SQL
SQL Server
DBMS
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Tipos de dependências entre
componentes

Dependências simples:
• entre ficheiros com código fonte, para controlo de alterações
• entre executáveis e/ou bibliotecas, para gestão de configurações e
dependências
• entre executáveis ou bibliotecas e tabelas ou documentos de ajuda
por eles usados

Dependências estereotipadas:
• estereótipo «hyperlink» - entre páginas html ou páginas html e
executáveis
• estereótipo «trace» - entre versões consecutivas do mesmo tipo de
componente

Não esquecer que é melhor depender das interfaces do que
das implementações
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Dependências - Exemplo
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Composição e agrupamento de
componentes


Conforme o nome indica, os componentes são para compor
(montar), criando componentes maiores ou sistemas inteiros
Exemplos:
• Base de dados composta por tabelas
• Biblioteca dinâmica (dll) composta por componentes COM+

No caso de agrupamentos de componentes que não criam
componentes (físicos) maiores, usar pacotes de componentes
Base de dados de
biblioteca
Web site
«hyperlink»
Web page 1
Web page n
Tabela
de sócios
Tabela de
reservas
Tabela de
publicações
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Caso de estudo (biblioteca)
Pacotes de componentes
Páginas Web Dinâmicas do
SIB
Componentes de Lógica de
Negócio do SIB
Base de Dados do SIB
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Caso de estudo (biblioteca)
Todos os componentes
Páginas Web Dinâmicas do SIB
Mostra menu que está
disponível em qualquer página
index.html
login.h
tml
Segue um padrão!
Qual é?
Como formalizar?
O padrão é arquitectura!
para inserir
novo
pesquisaAu
tores.html
pesquisaPubli
cações.html
listaAutor
es.asp
listaPublica
ções.asp
fichaAutor.
asp
pesquisaSó
cios.html
pesquisaReq
uisições.html
listaSóci
os.asp
listaRequisiç
ões.asp
fichaSóc
io.asp
fichaRequi
sição.asp
fichaPublica
ção.asp
Componentes de Lógica de Negócio do SIB
<<COM+>>
GestãoAuto
res
<<COM+>>
GestãoPubli
cações
<<dbtable>>
Autores
<<dbtable>>
Publicações
<<COM+>>
GestãoRequ
isições
<<COM+>>
GestãoSóci
os
Base de Dados do SIB
<<dbtable>>
Requisições
<<dbtable>>
Sócios
UML – diagramas de componentes, v.1.0, João Pascoal Faria, 2001
‹#›
Download