Você está na página 1de 15

Unified Modeling Language

Diagramas de Implementação

José Correia, Junho 2006


(http://paginas.ispgaya.pt/~jcorreia/)

Diagramas de implementação

José Correia UML – Diagramas de Implementação 2


Diagramas de Componentes

Componentes
„ Um componente (de software) pode ser:
• código fonte
• um executável
• uma biblioteca
• uma tabela de uma base de dados
• um ficheiro contendo código fonte ou dados
• um documento genérico

„ Notação: Um componente (genérico)


kernel32.dll
é representado por um rectângulo com tabs

José Correia UML – Diagramas de Implementação 4


Exemplos de componentes

José Correia UML – Diagramas de Implementação 5

Tipos de componentes

„ Componentes de produto do trabalho


• exemplos: ficheiros com código fonte, ficheiros de dados, etc.

„ Componentes de distribuição (deployment)


• necessários e suficientes para executar um sistema
• exemplos: executáveis, bibliotecas, ficheiros de configuração, etc.

„ Componentes resultantes da execução


• criados em consequência da execução de um sistema

José Correia UML – Diagramas de Implementação 6


Tipos de componentes: ícones e estereótipos
<<executable>> : componente que pode ser executado num nó

2 rodas <<library>> : biblioteca estática ou dinâmica


dentadas

<<database>> : base de dados

<<table>> : tabela de uma base de dados

<<file>> : ficheiro contendo código fonte ou dados

<<document>> : documento genérico

José Correia UML – Diagramas de Implementação 7

Exemplo de um diagrama de componentes

José Correia UML – Diagramas de Implementação 8


Tipos de dependências entre componentes

„ Dependências normais
• 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

„ Dependências com estereótipos


• 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

José Correia UML – Diagramas de Implementação 9

O que é um diagrama de componentes?


„ Um diagrama de componentes...

• ilustra a organização e dependências entre componentes de software


- mostra as dependências entre os componentes de software, incluindo o source
code e os componentes executáveis

• contém componentes, interfaces e relações entre componentes

• é usado para mostrar as divisões físicas usadas nas implementações


- os diagramas de pacotes mostram as divisões lógicas ou conceptuais

• é construído como parte da especificação da arquitectura do sistema

José Correia UML – Diagramas de Implementação 10


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
Web site de biblioteca

«hyperlink»

Tabela Tabela Tabela de


Web page 1 Web page n
de de publicações
sócios reservas

José Correia UML – Diagramas de Implementação 11

Diagramas de Distribuição
Exemplo de um diagrama de distribuição

José Correia UML – Diagramas de Implementação 13

O que é um diagrama de distribuição?


„ Um diagrama de distribuição (deployment)...
• contém nós e conexões entre nós
- os nós podem ser instâncias (têm o nome sublinhado) ou classes
- normalmente, os nós representam plataformas de hardware
- é possível agrupar nós em pacotes

• ilustra a distribuição física do sistema, num ambiente de produção (ou


teste)
- captura a topologia do hardware do sistema

• mostra a distribuição dos componentes ao longo da organização


- cada componente pertence a um nó
- os componentes que não existem como entidades de run-time não aparecem
nestes diagramas
- devem surgir em diagramas de componentes

José Correia UML – Diagramas de Implementação 14


Tipos de Nós
„ Exemplos de tipos de nós (abstractos) que podem ser implementados
em runtime

José Correia UML – Diagramas de Implementação 15

Instâncias de Tipos de Nós

„ Criação e ligação
entre instâncias de
tipos de Nós

„ São usadas
mensagens para
ilustrar o fluxo de
informação entre Nós
• Billing file
• Order information

José Correia UML – Diagramas de Implementação 16


Componentes e Nós

„ um diagrama de distribuição mostra


a localização dos componentes, em
termos de servidores, PCs, etc.
• pode, também, ilustrar ligações de
rede, largura de banda de LANs, etc.

José Correia UML – Diagramas de Implementação 17

Dependências
„ As dependências são usadas em diagramas de distribuição para ilustrar
relações e podem ser estereotipadas
• por exemplo, o estereótipo «DCOM» pode ser usado na dependência (protocolo de
ligação) entre um objecto cliente e servidor

José Correia UML – Diagramas de Implementação 18


Exemplo
„ O exemplo seguinte mostra as relações entre componentes de software e de
hardware, envolvidos em transacções de bens imobiliários (real estate)

José Correia UML – Diagramas de Implementação 19

José Correia UML – Diagramas de Implementação 20


„ O modelo físico descreve os componentes, de hardware e software
• plataformas de hardware (em UML chamadas “Nós”), ligações de rede,
componentes de software, sistemas operativos, etc.

„ Os diagramas de distribuição são o complemento dos diagramas de


componentes

José Correia UML – Diagramas de Implementação 21

Diagramas de implementação
„ Diagramas de componentes
• organizar o código fonte (ambiente de desenvolvimento)
• construir uma release executável (ambiente de instalação)

„ Diagramas de distribuição
• especificar a distribuição de componentes (pelos Nós)
• identificar estrangulamentos de desempenho

„ Os analistas usam os diagramas de distribuição para indicar quais são


os módulos de código (componentes de software) que irão estar nas
plataformas de hardware (Nós)

José Correia UML – Diagramas de Implementação 22


Arquitectura
„ A arquitectura da casota de um cão „ A arquitectura de um arranha céus
• pode ser feita por uma única pessoa • exige uma equipa especializada
• requer apenas • requer
- modelização mínima (ou nenhuma) - modelização extensiva
- processos simples - processos bem definidos
- ferramentas simples - ferramentas poderosas

José Correia UML – Diagramas de Implementação 23

Arquitectura de software
„ A arquitectura de software compreende um conjunto de decisões
• a definição dos elementos estruturais que compõem o sistema
- blocos básicos de construção

• a especificação de comportamentos envolvendo colaborações entre


esses elementos

• a composição dos elementos estruturais e comportamentais em


subsistemas cada vez maiores

• a explicitação do estilo arquitectónico que guia a organização do


sistema

„ A definição da arquitectura é parte integrante (de alto nível) do


projecto (design) do sistema

José Correia UML – Diagramas de Implementação 24


Arquitectura lógica
„ Estrutura lógica
• Refere-se à decomposição hierárquica do sistema em módulos lógicos e
à especificação dos interfaces e dependências entre módulos

• Especificada em UML por diagramas de pacotes lógicos


- relações de composição e dependência entre pacotes, e classes exportadas
por cada pacote

„ Comportamento
• especificada em UML por colaborações parametrizadas
- combinam estrutura (diagrama de classes) e
- comportamento (diagramas de interacção), no âmbito de um caso de uso ou
mecanismo

José Correia UML – Diagramas de Implementação 25

Arquitectura lógica por camadas


2 camadas 3 camadas mais camadas

Graphical Graphical
Graphical User
User User
Interface Interface
Interface

Relational Business Business


Database Object Object
Model Model

Diagrama UML
Relational
Database
Graphical User Relational
Interface Database

Divisão horizontal, em camadas!


Relational
Database Também é possível uma divisão vertical, em subsistemas!

José Correia UML – Diagramas de Implementação 26


Arquitectura física
„ Estrutura física do software
• Refere-se à decomposição do sistema em módulos físicos...
- tipicamente ficheiros (chamados componentes em UML)
... e à especificação de interfaces e dependências entre módulos

• Especificada em UML por diagramas de componentes


- com interfaces exportados (realizados) e importados (usados) por cada
componente

„ Ambiente de hardware
• Refere-se à especificação da topologia de hardware (equipamentos e
conexões) em que correm os componentes de software
• Especificada em UML por diagramas de distribuição

José Correia UML – Diagramas de Implementação 27

Arquitectura e Casos de uso


„ Modelos de arquitectura são construídos depois dos modelos de
casos de uso

„ Casos de uso especificam função

„ Arquitectura especifica forma / organização

„ Arquitectura do software procura satisfazer/é condicionada pelos


requisitos funcionais (definidos implicitamente pelos casos de uso) e
não funcionais do software

José Correia UML – Diagramas de Implementação 28


Referências
„ Estes apontamentos foram baseados em:
„ “UML – Unified Modeling Language”, Curso em Tecnologia de
Objectos, FEUP, Novembro 2000
Ademar Aguiar, Gabriel David, João Pascoal Faria
„ “Software Architecture and the UML”, Grady Booch, Rational Software
„ “Practical UML: A Hands-On Introduction for Developers”,
TogetherSoft Corporation
„ Introduction to UML: Structural Modeling and Use Cases, Cris Kobryn,
UML Revision Task Force, November 2000

José Correia UML – Diagramas de Implementação 29