Você está na página 1de 55

Introdução à arquitetura e projeto de

sistemas
Antonio de Oliveira Dias
antonio.dias@faculdadeimpacta.com.br
Diagrama de componentes
O diagrama de componente mostra a estrutura do
sistema e descreve os componentes do software, suas
interfaces e relações.
O que é um componente?
Um componente é um pedaço de software, bem
encapsulado que pode ser substituído por outro
funcionalmente equivalente desde que respeite as suas
interfaces.
Itens que possuem funcionalidades que podem ser
reutilizadas são candidatos a se tornarem
componentes.
Itens que possuem funcionalidades que podem ser
reutilizadas são candidatos a se tornarem
componentes.

Ex.: componente de logging, parser de XML,


compactador de arquivos, etc..
Um componente é representado como uma caixa com o
esteriótipo <<componente>> ou com um ícone no
canto superior direito (UML 2)

<<component>> <<component>>

Pedido Pedido Pedido


Notação de componentes na UML 1.4

component

Esta notação ainda é suportada na UML 2, no entanto,


o conjunto de notações da UML 1.4 não escalam bem
para sistemas maiores.
Realização

Um classificador pode ter um contrato que outro


classificador concorda em seguir:

- Casos de Uso e Colaboração que os realizam


Realização

Um classificador pode ter um contrato que outro


classificador concorda em seguir:

- Interfaces e classificadores que os realizam


O que é uma interface?

Interface

Uma declaração de um conjunto coerente de


características e obrigações públicas.
Interface

Um interface descreve um grupo de operações usadas


(requerida) ou criadas (fornecidas) pelo componentes.

Componente Componente

interface requerida interface fornecida


Exemplo 1
Um contrato entre fornecedores e consumidores de
serviços.
Interface fornecida: expõe seus elementos ao ambiente
Interface requerida: São dependentes de outros para realizar
sua funcionalidade

Consumidor Fornecedor

interface requerida interface fornecida


Exemplo 2
Polimorfismo: habilidade de esconder implementações
de uma interface
Interface fornecida

Representação
icônica (“bola”)

Representação
canônica (classe
Estereotipada)
Interface requerida

Representação icônica
(“soquete”)

Representação
canônica (classe
Estereotipada)
Conexão de interfaces
Dependência

Indica que a alteração de um elemento pode afetar o


outro (elemento dependente)

Ex.:
- Uma classe Cliente que depende de um serviço
de outra classe Fornecedor
Dependência
Dependência entre componentes

Representa a dependência por uma linha tracejada.

Componente Componente

dependência
Porta
Uma porta é frequentemente usada para ajudar a expor
e fornecer interfaces de um componente

Componente Componente

porta
Diagrama de componentes

http://www.uml-diagrams.org/component-diagrams.html
Diagrama de componentes

http://www.devmedia.com.br/artigo-sql-magazine-68-utilizando-uml-diagramas-de-
implantacao-comunicacao-e-tempoartigo-sql-magazine-68-utilizando-uml-diagramas-de-
implantacao-comunicacao-e-tempo/16353
Sistema de controle bancário

Componentes:
● Interface caixa eletrônico: meio pelo qual o cliente
solicita serviços como emissão de saldos, extratos, saque ou
depósitos
● Firewall: software de segurança que tenta impedir que
usuários não autorizados invadam o sistema
● Gerenciamento de autoatendimento: gerenciar as
solicitações realizadas pela interface caixa eletrônico
● SGBD: Sistema gerenciador de banco de dados
● Gerenciador de contas: responsável por gerir as contas
mantidas pela instituição bancária.
Sistema de controle bancário
Exercício

Desenvolva o diagrama de componentes para um


sistema de controle de cinema sabendo que:
● É preciso existir um módulo para gerir a venda de ingresso
aos clientes. Esse módulo deve gerar os ingressos e os emitir
por meio da interface (que pode ser física também) para os
clientes do cinema.
● O sistema necessita de SGBD para persistir suas informações
● Finalmente, existe a necessidade de um módulo de
manutenção do sistema, onde basicamente serão mantidos os
cadastros das sessões, salas, filmes, atores, gêneros, etc.
Exercício

Desenvolva o diagrama de componentes para um


sistema de aluguel de veículos sabendo que:
● O sistema precisa de um módulo para gerenciar o cadastro
dos clientes, automóveis, modelos e marcas.
● É preciso existir um SGBD para gravar e recuperar os dados
do sistema.
● É necessário ainda haver um módulo para realizar as locações
dos automóveis da empresa, bem como registrar as
devoluções dessas mesmas locações.
Exercício

Desenvolva o diagrama de componentes para um


sistema de controle de leilões via internet sabendo que:
● O sistema necessita de uma página por meio da qual os
participantes poderão se logar ou se autorregistrar. Essa página
será útil também para apresentar os itens anunciados pelo
leiloeiro e para receber as ofertas dos participantes, bem como
para anunciar um item como arrematado.
● O sistema precisa de um módulo que gerencie o login dos
participantes. É recomendável existir um módulo associado ao
módulo de login para permitir o autorregistro das pessoas
interessadas em participar do leilão.
Exercício

… continuação
● Também é necessário um módulo responsável por gerenciar cada
leilão, que permita a um leiloeiro abrir um leilão, anunciar os
itens do leilão, receber lances, anunciar vencedores e arrematar
itens.
● Finalmente, é necessário um sistema gerenciador de banco de
dados para persistir e recuperar as informações necessárias ao
sistema.
Diagrama de instalação
(ou diagrama de implantação)
Diagrama de instalação
Deployment

O diagrama de instalação descreve os componentes de


hardware e software e suas interações com outros
elementos de processamento.
Diagrama de instalação
Deployment

Elementos básicos:
○ Nós: processadores, dispositivos, sensores,
roteadores.

○ Conexões:
■ meios físicos de comunicações (fibra ótica,
cabo coaxial)
■ protocolos de comunicação (TCP/IP, HTTP,
UDP)
Diagrama de instalação
Deployment

http://www.dainf.cefetpr.br/~tacla/UML/0100-DiagAtiCompImpl-slides1.pdf
Diagrama de instalação
Deployment

http://www.dainf.cefetpr.br/~tacla/UML/0100-DiagAtiCompImpl-slides1.pdf
Diagrama de instalação
Deployment

http://umldiagramadespliegue.blogspot.com.br/
Arquiteturas de
Referência
Arquitetura de referência para
Aplicações Web
Arquitetura de referência para
Rich Client Application
Arquitetura de referência para
Rich Internet Application
Arquitetura de referência para
Mobile Application
Arquitetura de referência para
Service Applications
Deployment
Patterns
Deployment patterns

Padrões de instalação (Deployment patterns) é um


catálogo de como estruturar sistemas do ponto de vista
físico.

Microsoft Application Architecture Guide


Nondistributed deployment

No padrão de instalação não distribuído, todos os


componentes dos módulos em diferentes camadas
(layers) residem em um único servidor, exceto para a
funcionalidade de armazenamento de dados.
Nondistributed deployment
Distributed deployment

No padrão de instalação distribuído, os componentes


da aplicação residem em camadas físicas (tiers)
separadas.
Distributed deployment
Two-Tier deployment
Client-Server
Three-Tier deployment
Four-Tier deployment
Performance Patterns
Load-Balanced Cluster

No padrão de balanceamento de carga em cluster, a


aplicação é instalada em diversos servidores de carga
de trabalho.
Performance Patterns
Load-Balanced Cluster

Requisições de clientes são feitas a um balanceador de


carga, que redireciona vários servidores de acordo
com sua carga corrente.
Performance Patterns
Load-Balanced Cluster
Obrigado

Você também pode gostar