Modelagem de Arquitetura com UML
CIn-UFPE
1
Arquitetura de software

“Uma arquitetura de software deve conter: a
definição dos elementos de projeto que compõem o
software; a descrição das interações entre estes
elementos; os padrões de composição dos
elementos; e um conjunto de restrições sobre
estes padrões.” [Shaw 96]
CIn-UFPE
2
Arquitetura de software

Modelo de Shaw, 1996

componentes

conectores

configuração
CIn-UFPE
3
Arquitetura de software

Componente

modela a computação e/ou armazenamento de informações

desenvolvido independentemente

exemplos de componentes
cliente
servidor
banco de dados
aplicação inteira
CIn-UFPE
4
Arquitetura de software

Conector

modela as interações entre os componentes

desenvolvido independentemente

exemplos de conectores
protocolos de comunicação
Middleware (ex: CORBA, RMI)
CIn-UFPE
5
Arquitetura de software

Configuração

topologia

conjunto de componentes combinados usando-se os
conectores

grafo de componentes e conectores ligados, descrevendo
uma estrutura arquitetural
CIn-UFPE
6
Arquitetura de software

Principais motivações para definição de uma
Arquitetura de Software:

reuso de elementos de projeto permitindo maior rapidez na
construção do software;

facilita a comunicação entre os stakeholders do sistema.
CIn-UFPE
7
Uso de UML como uma
“ADL” (Architecture Description Language)

Mesmo havendo uma “perda” em capturar todos os aspectos de
uma arquitetura, o uso de UML tem sido crescente

Vantagens:

Uso de uma notação amplamente conhecida em “oposição”
às ADLs

Notação acessível para arquitetos, desenvolvedores e
gerentes

Permite ilustrar múltiplas visões
CIn-UFPE
8
Múltiplas Visões

Vários stakeholders têm diferentes conceitos e
interesses em aspectos distintos da arquitetura.

Assim como na construção civil, diferentes tipos de
“plantas” são usadas para representar diferentes
aspectos da arquitetura.
CIn-UFPE
9
Múltiplas Visões

De forma similar, na arquitetura de software pode-se
usar várias “plantas” para diversos propósitos:

Para organizar a funcionalidade do sistema em termos de
elementos do domínio;

Para tratar da decomposição lógica do sistema;

Para tratar aspectos de concorrência (em tempo de
execução);

Para tratar do mapeamento de módulos e interfaces para
arquivos fontes.
CIn-UFPE
10
Múltiplas Visões

Diferentes visões tratam de aspectos distintos
durante o desenvolvimento de um sistema. Exemplo
de abordagens:

Kructhen - O Modelo 4 + 1: Lógica, Processo, Física,
Implantação e Casos de Uso.
CIn-UFPE
11
Arquitetura de software
O modelo de “4+1 Visões”
Estrutura
Analista de
Sistemas
Estrutura,
componentes
Programadores
Visão
Lógica
Visão de
Implementação
Visão de Casos
de Uso
Arquiteto
Visão de
Processos
Arquiteto
CIn-UFPE
Escalabilidade
Visão de
Distribuição
Arquiteto
Topologia,
implantação,
comunicação
12
Múltiplas Visões

Soni, Nord e Hofmeister: Consideram a representação da
arquitetura de software em 4 visões:
visão conceitual
visão de módulo
visão de execução
visão de código
CIn-UFPE
13
Visão Conceitual

Captura aspectos funcionais do sistema

Stakeholder interessado: Usuário final

Descrição da arquitetura em termos de elementos
arquiteturais:

componentes, portas e conectores
CIn-UFPE
14
Visão Conceitual - Continuação

Componentes, portas e conectores são modelados
através do diagrama de classes de UML
(“stereotyped class”)

Interação entre componentes através de Diagrama
de Seqüência
CIn-UFPE
15
Visão Conceitual - Exemplo

O sistema de captura de imagem capta um conjunto de imagens
digitalizadas. O usuário controla a captura pela seleção de um
procedimento a partir de um conjunto de procedimentos prédefinidos. Então, inicia tal procedimento e provavelmente ajusta-o
durante a captura. O dado bruto para as imagens é capturado por um
dispositivo de hardware, uma “câmera”, sendo então enviado para o
processador de imagem (image pipeline) onde é convertido para
imagens. O image pipeline faz esta conversão, primeiro compondo o
dado bruto em imagens discretas, e então executa um ou mais
padrões de transformações de imagem para melhorar a resolução
das imagens resultantes.
CIn-UFPE
16
Visão Conceitual – O modelo informal
Componentes, Conectores e Portas ( Visão Tradicional )
ImagePipeline
PipelineMgr
acqControl
acqControl
pipeline
Control
client/server
client/server
Framer
Imager
stageControl
stageControl
framed
Out
imageOut
packetIn
packetIn
imageOut
imagePipe
imageIn
CIn-UFPE
17
Visão Conceitual - Diagrama de Classes UML
Modelo Preliminar
<<Componente>>
ImagePipeline
<<Componente>>
PipelineMgr
<<Conector>>
Client/Server
CIn-UFPE
<<Componente>>
Framer
<<Componente>>
Imager
<<Conector>>
imagePipe
18
Visão Conceitual - Diagrama de Classes UML
<<Componente>>
ImagePipeline
packetIn
framedOut
acqControl
acqControl
<<Componente>>
PipelineMgr
pipelineControl
<<Conector>>
Client/Server
sender
receiver
<<Conector>>
Client/Server
stageControl
packetIn
receiver
sender
<<Componente>>
Framer
imageOut
stageControl
source
CIn-UFPE
<<Conector>>
imagePipe
dest
imageIn
<<Componente>>
Imager
ImageOut
19
Visão Conceitual - Diagrama de Classes UML
<<Componente>>
ImagePipeline
<<Porta>>
packetIn
<<Porta>>
framedOut
<<Componente>>
PipelineMgr
<<Porta>>
acqControl
<<Porta>>
acqControl
<<Conector>>
Client/Server
<<Papel>>
receiver
<<Conector>>
Client/Server
<<Papel>>
sender
<<Papel>>
receiver
<<Papel>>
sender
<<Componente>>
Framer
<<Porta>>
packetIn
CIn-UFPE
<<Componente>>
Imager
<<Porta>>
stageControl
<<Porta>>
imageOut
<<Porta>>
pipelineControl
<<Conector>>
imagePipe
<<Papel>>
source
<<Porta>>
stageControl
<<Papel>>
dest
<<Porta>>
ImageOut
<<Porta>>
imageIn
20
Visão de Módulo

Subsistemas são decompostos em módulos os quais
são organizados em camadas

Stakeholders interessados: Analistas e
Programadores

Elementos: módulos, subsistemas e camadas

Elementos conceituais são mapeados em módulos
CIn-UFPE
21
Visão de Módulo

Componentes são “implementados” por módulos e
subsistemas

Portas, conectores e componentes podem ser
combinados em um único módulo

Dependências de uso entre módulos são derivadas
das associações entre os elementos conceituais
CIn-UFPE
22
Visão de Módulo

Módulos são representados por classes
estereotipadas

Subsistemas e camadas são representados por
pacotes estereotipados

Dependências de uso são representadas por
dependências UML
CIn-UFPE
23
Visão de Módulo
<<subsystem>>
SPipeline
<<module>>
<<module>>
<<module>>
MPipelineAPI
MPipelineControl
MFramer
<<module>>
<<module>>
<<module>>
MImageMgrAPI
MImageBUffer
MImager
Elemento Conceitual
Subsistema ou Módulo
ImagePipeline (cp)
SPipeline
acqControl(pt),pipelineControl(pt)
MpipelineAPI
pipelineMgr(cp), ImagePipe(cn),Client/Server (cn)
MpipelineControl, MImageBuffer
stageControl(pt), imageIn(pt), imageOut(pt)
MImageMgrAPI
Framer (cp)
MFramer
Imager(cp)
MImager
CIn-UFPE
24
Visão de Módulo - Dependências de Uso
<<layer>>
ApplicationService
<<module>>
MClient
<<module>>
MImager
<<module>>
MFramer
<<layer>>
ImageProcessing
interface
<<module>>
MPipelineAPI
<<module>>
MPipelineControl
CIn-UFPE
<<module>>
MImageMgrAPI
<<module>>
MImageBuffer
<<module>>
MDataMgrAPI
25
Visão de Execução

Visão do sistema em tempo de execução (TE)

Stakeholder interessado: Integradores do sistema

Define o mapeamento dos módulos em elementos de
TE (processos, threads, etc)

Define a comunicação entre os elementos de TE, e
os atribui a recursos físicos
CIn-UFPE
26
Visão de Execução

Elementos: cenário de tempo de execução e caminho
de execução

Conceitos principais: Uso de recursos e performance

Classes UML estereotipadas são usadas para
representar elementos de TE

Estereótipos de acordo com o nome do elementos da
plataforma: <<process>> <<shared data>>
CIn-UFPE
27
Visão de Execução
<< process >>
EpipelineMgr
<< process >>
Eclient
<< module >>
Mclient
<< module >>
MPipeLineAPI
<< module >>
MpipelineControl
<< process >>
EFramer
<< module >>
MDataMgrAPI
<< module >>
MFramer
CIn-UFPE
<< process >>
EImager
<< module >>
MImageMgrAPI
<< module >>
MImageMgrAPI
<< shared Data >>
EImageBUffer
<< module >>
MImager
<< module >>
MImageBuffer
28
Visão de Código

Contém arquivos e diretórios

Stakeholder interessado: Engenheiros de Sistema
(topologia, entrega, instalação, etc.)

Mapeamento dos módulos e interfaces da visão de
módulo em arquivos fonte

Elementos de TE da visão de execução são
mapeados em arquivos executáveis
CIn-UFPE
29
Visão de Código

Elementos: código fonte, código intermediário,
código executável, diretório

Arquivos são representados por componentes UML
estereotipados

Diretórios são representados por pacotes UML
estereotipados
CIn-UFPE
30
Visão de Código
Dependência entre arquivos fonte
<<directory>>
PipelineControl
<<Source>>
CPipelineControl.CPP
<<Source>>
CPipelineControlPvt.H
<<Source>>
CPipelineControl.H
<<Source>>
CstageControl.H
<<directory>>
PipelineAPI
<<Source>>
CPipelineAPI.CPP
<<Source>>
CPipeline.H
CIn-UFPE
<<Source>>
CPipelinePvt.H
<<directory>>
ImageMgrAPI
<<Source>>
CImageMgrAPI.CPP
<<Source>>
CImageMgr.H
<<Source>>
CImageMgrPvt.H
31
Múltiplas Visões: Relação entre as visões
elementos arquiteturais
conceitual
código
arquivos
CIn-UFPE
módulos
módulos
execução
elementos de execução (processos)
32
Conclusão



Arquitetura de Software promove o reuso em alta
escala
A UML pode ser usada como uma “ADL” (apresenta
algumas deficiências). Existem propostas para sua
extensão.
A grande motivação do uso da UML é que ela é um
padrão largamente aceito e difundido
CIn-UFPE
33
Download

a14-UML-Mod-Arquitetura