Diagrama de Arquitetura

Propaganda
CBSI – Curso de Bacharelado em Sistemas de Informação
UML – Modelagem da Arquitetuta
Prof. Dr. Sandro Ronaldo Bezerra Oliveira
[email protected]
www.ufpa.br/srbo
Análise e Projeto de Sistemas
Faculdade de Computação
Instituto de Ciências e Exatas e Naturais
Universidade Federal de Pará
Noção de Arquitetura de Software
A arquitetura de software compreende o
conjunto de decisões significativas acerca da
organização de um sistema de software
Definição dos elementos estruturais e interfaces
que compõem o sistema (blocos básicos de
construção)
Especificação de comportamentos envolvendo
colaborações entre esses elementos (mecanismos
importantes)
Definição de um estilo arquitetônico que guia a
organização do sistema
Definição da arquitetura é uma parte
integrante (de alto nível) da concepção
(design) do sistema
Concluído a concepção de alto nível, deve ser possível
entregar a concepção detalhada e implementação de
cada módulo a um programador diferente.
Níveis da Arquitetura: do lógico ao
físico
Responsabilidades
r1
Classes
Componentes
classe 1
Processos
Nós de hardware
r2
r3
r4
classe 2
componente 1
r5
classe 3
r6
classe 4
componente 2
r7 r8
r9 r10
r11 r12
classe 5 classe 6
componente 3
processo 1
classe 7
componente 4
processo 2
nó 1
processo 3
nó 2
caso de utilização 1
...
caso de utilização n
Arquitetura Lógica
Estrutura lógica do software
Refere-se à decomposição hierárquica do sistema em
módulos lógicos (pacotes de classes com
responsabilidades afins) e à especificação das
interfaces e dependências entre módulos
Especificada em UML por diagramas de pacotes
lógicos, com relações e composição e dependência
entre pacotes, e classes exportadas por cada pacote.
Arquitetura Lógica
2 camadas
Graphical
User
Interface
Relational
Database
3 camadas
mais camadas
Graphical
User
Interface
Graphical
User
Interface
Business
Object
Model
Business
Object
Model
Diagrama UML:
Graphical
User
Interface
Relational
Database
Relational
Database
Neste caso segue-se uma divisão horizontal, em camadas!
Também é possível uma divisão vertical, em subsistemas!
Relational
Database
Arquitetura Física
Estrutura Física do software
Refere-se à decomposição do sistema em módulos
físicos (chamados componentes em UML), e à
especificação de interfaces e dependências entre os
módulos.
Especificada em UML por diagramas de
componentes, com interfaces exportados (realizadas)
e importadas (usadas) 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
(deployment)
Arquitetura Física
Thinner client, thicker server
Client B
Client A
Client C
Application
Application
DCOM
CORBA
ADO/R
Business Object
Services
Beans
Business Object
Engine
Business
Object
Server
Relational Database Server(s)
COM
MTS
WWW Browser
Beans
ETS
Web
HTML
Server CGI
ASP
Java
Business Object
Services
Business Object
Services
Business Object
Engine
Business Object
Engine
Arquitetura e Casos de Uso
Modelos de arquitetura são construídos depois
dos modelos de casos de uso
Casos de uso especificam função, arquitetura
especifica forma/organização
Arquitetura do software procura satisfazer/é
condicionada pelos requisitos funcionais
(definidos implicitamente pelos casos de uso) e
não funcionais do software
Diagrama
de
Componentes
Diagrama de Componentes
Captura a estrutura física da implementação
Construído como parte da especificação da
arquitetura
Objetivo
Organizar o código fonte (ambiente de
desenvolvimento)
Construir uma release executável
Especificar uma base de dados física
Desenvolvido por arquitetos e programadores
Contém componentes, interfaces e relações entre
componentes.
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
Tipos de componentes - ícones e
esterió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
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 essas
interfaces
Diz-se que as interfaces são exportadas
Um componente pode ser substituído por outro componente que
implementa as mesmas interfaces
Não basta obedecer à mesma sintaxe, mas também a 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
Interfaces - Exemplo 1
image.java
componente.java
ImageObserver
ou com mais detalhe: dependência
image.java
interface
<<interface>>
ImageObserver
abort: int {final static}
error: int {final static}
imageUpdate():
Boolean
concretização
componente.java
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
Casos de Estudo (Biblioteca)
Pacotes de componentes
Páginas Web Dinâmicas do
SIB
Compone ntes de Lógica de
Negócio do SIB
Base de Dados do SIB
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
t ores.html
pesquisaPubli
cações.html
listaAutor
es.asp
listaPublica
ç ões.as p
fichaAut or.
asp
pesquisaReq
uisições.html
pesquisaSó
cios.html
listaSóci
os.asp
listaRequisiç
ões.asp
fichaRequi
sição.asp
fichaPublica
ção.asp
fichaSóc
io.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
is ições
<<COM+>>
GestãoSóci
os
Base de Dados do SIB
<<dbtable>>
Requisições
<<dbtable>>
Sócios
Diagrama
de
Implantação
Diagrama de Implantação
(Deployment)
Captura a topologia (ambiente) de hardware de
um sistema sobre o qual são executados os
componentes de software
Construído como parte da especificação da
arquitetura
Objetivo:
Especificar a distribuição de componentes
Identificar estrangulamentos de desempenho
Desenvolvido por arquitetos, engenheiros de
redes, e engenheiros de sistemas
Elementos de um Diagrama de
Implantação
Nós (de hardware)
São computadores ou outros dispositivos (modem’s,
impressoras, até mesmo equipamentos de rede)
Podem aparecer como classes ou instâncias
Classes podem ter multiplicidade
É possível indicar os componentes localizados em cada nó,
representando-os dentro do nó ou fora com dependência
esteriotipada
É possível agrupar nós em pacotes
Conexões (entre nós)
Entre nós como classes, podem ter multiplicidade
Entre nós como instâncias, não podem ter multiplicidade
Podem ter esteriótipos que indicam o protocolo, como
<<TCP/IP>>
Exemplo
Exemplo: Sistema na Internet
Client
Dynamic HTML, JavaScript, Java
plug-ins, source code enhancements
Web
Server
Java, C, C++, JavaScript, CGI
Application
Server
Fulfillment
System
Financial
System
Inventory
System
Java, C, C++, JavaBeans, CORBA, DCOM
RDBMS
Server
Native languages
Caso de Estudo (Biblioteca)
Em UML:
Informal:
Utilizador
Máquina Cliente
Impressora
local
Browser Web
*«http»
1
Máquina Servidora (Windows NT)
Sevidor Web (IIS)
Servidor de Componentes (COM+)
Servidor da Base de Dados (SQL Server)
Páginas Web Dinâmicas do SIB
Componentes de Lógica de Negócio do SIB
Base de Dados do SIB
Download