Вы находитесь на странице: 1из 83

Aula 3

Estilos e padres arquiteturais


Atributos de qualidade
Seleo de estilos
Seleo de vises
Rastreabilidade bidirecional

Estilos e padres arquiteturais

Estilos arquiteturais

Definem meios de selecionar e apresentar blocos de


construo de arquitetura (Shaw)

Padres arquiteturais

Projetos de alto nvel, testados e validados, de blocos de


construo de arquitetura (Buschman).

Unianhanguera

Estilos e padres arquiteturais


Classificao
Invocao/Retorno (Call/Return)
Programa principal/Subrotina (Main Program/Subroutine)
Invocao remota de procedimento (Remote Procedure Call - RPC)
Camadas (Layered)
Componentes independentes (Independent Components)
Comunicao de processos (Communicating Processes)
Baseado em eventos
Mquina virtual (Virtual Machine)
Interpretador (Interpreter)
Baseado em regras (Rule-based)

Centrado em dados (Data-Centered)


Repositrio (Repository)
Quadro negro (Blackboard)

Fluxo de dados (Data-Flow)


Seqencial (Batch Sequential)
Tubos e filtros (Pipe and Filter)
Unianhanguera

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Programa principal/Subrotina (Main Program/Subroutine)


Programa principal

Subrotina 1

Subrotina 2

Subrotina 3

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Programa principal/Subrotina (Main Program/Subroutine)

Objetivos
Programa principal

Subrotina 1

Subrotina 2

Subrotina 3

Reso

Unianhanguera

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Programa principal/Subrotina (Main Program/Subroutine)

Objetivos
Programa principal

Subrotina 1

Subrotina 2

Subrotina 3

Desenvolvimento
independente
Unianhanguera

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Invocao remota de procedimento (RPC)


Programa principal

Rede
Subrotina 1

Subrotina 2

Subrotina 3

192.168.10.8
192.168.10.11
Unianhanguera

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Invocao remota de procedimento (RPC)


Programa principal

Rede
Subrotina 1

Subrotina 2

Subrotina 3

Ganho de
desempenho
192.168.10.11

(2 processadores)
Unianhanguera

192.168.10.8
8

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Camadas (Layered)
Aplicao
Apresentao

Apresentao

Sesso
ISO-OSI

Negcio

Transporte

Clssica
3 camadas

Armazenamento

Rede
Dados
Fsica
Unianhanguera

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Camadas (Layered)

Camadas se comunicam apenas com outras adjacentes


Apresentao

Negcio

Armazenamento

Unianhanguera

10

Estilos e padres arquiteturais


Invocao/Retorno (Call/Return)

Camadas (Layered)

Alteraes locais no so propagadas


Apresentao

Negcio

Armazenamento

Unianhanguera

11

Estilos e padres arquiteturais


Componentes independentes

Comunicao de processos (Communicating Processes)

Baseado na comunicao via troca de mensagens entre


processos

Em geral, via rede

Cliente - Servidor
Ponto a ponto (Peer to Peer P2P)

Unianhanguera

12

Estilos e padres arquiteturais


Componentes independentes

Comunicao de processos (Communicating Processes)

Cliente Servidor

J vimos anteriormente

Servidor

Aplicao: Internet

Clientes

Unianhanguera

13

Estilos e padres arquiteturais


Componentes independentes

Comunicao de processos (Communicating Processes)

Cliente Servidor

Problema: servidor ponto de falha!

Servidor

Clientes

Unianhanguera

14

Estilos e padres arquiteturais


Componentes independentes

Comunicao de processos (Communicating Processes)

Ponto a Ponto (P2P)

No h distino entre ns
Cada n mantm seus prprios dados e endereos conhecidos
Cada n cliente e servidor ao mesmo tempo

Unianhanguera

15

Estilos e padres arquiteturais


Componentes independentes

Comunicao de processos (Communicating Processes)

Ponto a Ponto (P2P)

Exemplos de redes P2P: gnutella, freenet


Exemplos de aplicao: Kazaa, eMule
Vantagem: no h ponto de falha
Desvantagem: tempo de consulta

Unianhanguera

16

Estilos e padres arquiteturais


Componentes independentes

Baseado em eventos

Produtores e consumidores de eventos


Consumidores se registram nos Produtores
Produtores notificam consumidores registrados
Motivao:
imprimir
a.imprimir()

Unianhanguera

17

Estilos e padres arquiteturais


Componentes independentes

Baseado em eventos

Produtores e consumidores so independentes


Execuo via procedimentos disparados via mudana de estados
Escalabilidade no nmero de interessados

imprimir()

A
Consumidor

interessado(relatorioOK)
relatorioOK

Unianhanguera

B
Produtor

Relatri
o OK
18

Estilos e padres arquiteturais


Componentes independentes

Baseado em eventos

Aplicao comum

Interface grfica

onKeyDown
onMouseOver

onKeyUp

onMouseReleased

onMouseClick

menuDown

onMousePressed
onSelected
Unianhanguera

19

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Repositrio (Repository)

Integridade, escalabilidade (novos clientes, novos dados)

Cliente 2
Cliente 1

Clientes operam
sobre os dados
Cliente 3

Cliente n

Estado atual
consistente

Dados
compartilhados

Unianhanguera

20

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Repositrio (Repository)

Exemplo: banco de dados tradicional

Cliente 2
Cliente 1
Gatilhos
(triggers)

Cliente 3

Cliente n
Transaes

Dados
compartilhados

Unianhanguera

21

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)

Controlador

Gerncia dos dados

x2

Fontes de
conhecimento

Unianhanguera

22

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)

Sei subtrair!

Sei multiplicar!

2 x (3+2)2 + 3 - 6 = ?

x2

Controlador
Sei
exponencial!

Sei somar!

Unianhanguera

23

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)


(5)2 2++33- -66==??
2 2x x(3+2)

Controlador

Unianhanguera

x2

24

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)


2 x 25
(5)2++33- -66==??

Controlador

Unianhanguera

x2

25

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)


+ 3+- 36 -=6?= ?
250
x 25

Controlador

Unianhanguera

x2

26

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)


53 47
-6=?

Controlador

Unianhanguera

x2

27

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)


Ap 1

Ap 2
Ap 3
Quadro Negro
Controlador

Ap 4

Ap n
Ap 5

Unianhanguera

28

Estilos e padres arquiteturais


Centrado em dados (Data-centered)

Quadro negro (Blackboard)

Sistemas complexos
Resoluo Distribuda de Problemas - RDP
Aplicaes independentes
Escalabilidade
Ponto de falha!!!
Quadro negro
Arquitetura usada no paradigma de agentes

Unianhanguera

29

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Interpretador (Interpreter)

Simular funcionalidade no nativa para obter portabilidade

entrada

dados

sada

Programa sendo
interpretado

Dados
(Estado do programa)

Atualiza

Mecanismo de
interpretao

Dados de
estado

Instruo selecionada
Dados selecionados

Unianhanguera

Instrues do
programa

Estado interno
(Instrues + dados)

30

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Interpretador (Interpreter)

Exemplo: Java

public class Oi{


...
}

Compilador Java
javac.exe

Mquina
Virtual
Mquina
Virtual

Arquivo Oi.java
bytecode
1 <init> ()V
Code LineNumberTable
main ([Ljava/lang/String;)...

INTERPRETA

Arquivo Oi.class

Mquina
Virtual

Mquina
Virtual
Mquina
Virtual

Unianhanguera

31

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Interpretador (Interpreter)

Problema

Algumas pesquisas apontam que algumas das linguagens


interpretadas j conseguem ser mais rpidas que C

Desempenho

Java, por exemplo

Mquina virtual nativa Intel

Unianhanguera

32

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Baseado em regras (Rule-based)

Conjunto de regras sobre um estado


Definio do estado atual com base em dados de entrada
Regras alteram o estado
Memria de
trabalho

Base de
Regras

entrada
sada

Mquina de
inferncia
Unianhanguera

33

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Baseado em regras (Rule-based)

Exemplos: Prolog, Sistemas Especialistas


Memria de trabalho

SE HORA=21:00
ENTO AO=LANCHE

HORA=18:00

HORA = ?
AO = ?

SE HORA=22:00
ENTO AO=LIBERAR
SE HORA<19:00
ENTO AO=ESPERAR
SE HORA=19:00
ENTO AO=COMEAR
Base de Regras

Mquina de
inferncia

Unianhanguera

34

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Baseado em regras (Rule-based)

Exemplos: Prolog, Sistemas Especialistas


Memria de trabalho

SE HORA=21:00
ENTO AO=LANCHE

HORA = 18:00
AO = ?

SE HORA=22:00
ENTO AO=LIBERAR
SE HORA<19:00
ENTO AO=ESPERAR
SE HORA=19:00
ENTO AO=COMEAR
Base de Regras

Mquina de
inferncia

Unianhanguera

35

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Baseado em regras (Rule-based)

Exemplos: Prolog, Sistemas Especialistas


Memria de trabalho

SE HORA=21:00
ENTO AO=LANCHE

HORA = 18:00
AO = ESPERAR

SE HORA=22:00
ENTO AO=LIBERAR
SE HORA<19:00
ENTO AO=ESPERAR
SE HORA=19:00
ENTO AO=COMEAR
Base de Regras

Mquina de
inferncia

Unianhanguera

36

Estilos e padres arquiteturais


Mquina virtual (Virtual Machine)

Baseado em regras (Rule-based)

Exemplos: Prolog, Sistemas Especialistas


Memria de trabalho

SE HORA=21:00
ENTO AO=LANCHE

HORA = 18:00
AO = ESPERAR

SE HORA=22:00
ENTO AO=LIBERAR

AO=ESPERAR

SE HORA<19:00
ENTO AO=ESPERAR
SE HORA=19:00
ENTO AO=COMEAR
Base de Regras

Mquina de
inferncia

Unianhanguera

37

Estilos e padres arquiteturais


Fluxo de dados (Data Flow)

Seqencial (Batch Sequential)

Programas independentes executados em seqncia


Um aps o outro
Dado transmitido por completo entre um programa e outro
Arquivos fonte

Bytecode

class{
}

Arquivo Jar
000
1001
1001

A$n3*
3N4*#

Javac

Jar

Compilando

Empacotando

Unianhanguera

Java

executando

38

Estilos e padres arquiteturais


Fluxo de dados (Data Flow)

Tubos e filtros (Pipe and Filter)

J vimos na ltima aula


Exemplo: compilador
tokens

Cdigo fonte

Analisador
Lxico
Intel backend

rvore sinttica

Analisador
Sinttico

rvore sinttica c/ semntica

Analisador
Semntico

Executvel otimizado

Gerador de
cdigo
intermedirio
Executvel
Otimizador

MIPS backend
SPARC backend
Unianhanguera

39

Estilos e padres arquiteturais


Fluxo de dados (Data Flow)

Tubos e filtros (Pipe and Filter)

No precisa ser seqencial

Unianhanguera

40

Atributos de qualidade

Arquitetura e funcionalidade

Se a funcionalidade fosse o nico atributo buscado no


desenvolvimento de um software...
... sua arquitetura seria sempre monoltica: uma s funo,
um s componente, uma s classe...
Outros atributos: mutabilidade (modifiability), usabilidade,
desempenho...
... influenciam na determinao da arquitetura do software
com base em atributos de qualidade interessantes para o
sistema que se determina a sua arquitetura

Unianhanguera

41

Atributos de qualidade

Classes de atributos

Qualidades de sistema: disponibilidade, mutabilidade,


desempenho, usabilidade...
Qualidades de negcio: tempo de produo (time to
market), custo e benefcio...
Qualidades de arquitetura: buildability, integridade
conceitual...

Unianhanguera

42

Atributos de qualidade
Qualidades de sistema

Disponibilidade
Mutabilidade
Desempenho
Segurana
Testabilidade
Usabilidade

Unianhanguera

43

Atributos de qualidade
Qualidades de sistema

Disponibilidade

Relacionada a falhas no sistema e suas conseqncias


Um sistema est em falha quando no funciona mais de acordo
com a sua especificao
Uma falha observvel do ponto de vista externo
Medida de disponibilidade:

disp =

tempo mdio para falhar


tempo mdio para falhar + tempo mdio para reparar

Unianhanguera

44

Atributos de qualidade
Qualidades de sistema

Mutabilidade

Relacionado ao custo de mudanas


O que pode mudar?

Implementao de funcionalidades
Plataforma na qual o sistema executado (hardware, SO,...)

O ambiente no qual opera (protocolos, rede, outros sistemas)


Capacidade (n de usurios, n de operaes simultneas)

Portabilidade

Escalabilidade

Quem pode mudar?

Desenvolvedor, usurio final, administrador...

Unianhanguera

45

Atributos de qualidade
Qualidades de sistema

Mutabilidade

Quando pode mudar?

Implementao (cdigo fonte)


Construo build (escolha de bibliotecas)
Configurao
Execuo (parametrizao)

Unianhanguera

46

Atributos de qualidade
Qualidades de sistema

Desempenho

Relacionado a tempo!
Eventos ocorrem e o sistema tem que responder aos mesmos
A medida de desempenho :

Evento???

Quanto tempo leva o sistema para responder a um evento?


Interrupes, mensagens, requisies do usurio, inicializao...

Exemplo:

Respostas a requisies do usurio no podem durar mais que 10


milisegundos!

Unianhanguera

47

Atributos de qualidade
Qualidades de sistema

Segurana

Habilidade do sistema de impedir acesso no autorizado...


... ainda garantindo acesso autorizado!
Segurana pode ser visto como uma composio de:

No repudiao: uma transao no pode ser negada por


nenhuma das partes envolvidas
Confidencialidade: proteo a acesso no autorizado
Integridade: de dados e servios
Garantia: partes de uma transao so quem dizem que so
Disponibilidade: sistema disponvel para uso sem falhas
Auditoria: caso ocorra falha, o sistema consegue recuperar-se
sem perdas aos usurios
Unianhanguera

48

Atributos de qualidade
Qualidades de sistema

Testabilidade

Facilidade com que podem ser demonstradas as faltas de um


software atravs de testes
No mnimo, 40% do custo de desenvolvimento de software com
boa engenharia atribudo a testes...
... se o arquiteto consegue reduzir este custo, o lucro bem
maior!

Unianhanguera

49

Atributos de qualidade
Qualidades de sistema

Usabilidade

Quo fcil para o usurio realizar uma tarefa desejada usando


o sistema?
Que tipo de suporte o sistema prov para o usurio?
reas:

Aprendizado das caractersticas do sistema: o que o sistema pode fazer


para ajudar no aprendizado do usurio?
Uso eficiente do sistema: o que o sistema pode fazer para que o usurio o
utilize mais eficientemente?
Minimizao do impacto de erros: o que o sistema pode fazer para
minimizar o impacto de um erro cometido pelo usurio?
Adaptao do sistema s necessidades do usurio: como o usurio (ou o
prprio sistema) pode adaptar o sistema para tornar as tarefas mais fceis
Aumento de confiana e satisfao: o que o sistema faz para dar ao usurio
a confiana de que ele est executando a tarefa corretamente?
Unianhanguera

50

Atributos de qualidade
Qualidades de negcio

Tempo de produo (time-to-market)


Custo e benefcio
Tempo de vida projetado
Mercado alvo
Agenda de divulgao
Integrao com sistemas legados

Unianhanguera

51

Atributos de qualidade
Qualidades de negcio

Tempo de produo (time-to-market)

Se h presso competitiva ou janela de oportunidade restrita...


... tempo de produo essencial!
Em geral, reduzido com o uso componentes pr-construdos

Componentes COTS Commercial Off-The-Shelf

Unianhanguera

52

Atributos de qualidade
Qualidades de negcio

Custo e benefcio

Oramento no pode ser excedido


Diferentes arquiteturas levaro a diferentes custos de
desenvolvimento
Arquiteturas mais flexveis so mais caras!!!

Unianhanguera

53

Atributos de qualidade
Qualidades de negcio

Tempo de vida projetado

Se o sistema projetado para ter um longo ciclo de vida...


... mutabilidade, escalabilidade e portabilidade se tornam
extremamente importantes
Porm... isto influencia no custo!
Por outro lado, tais caractersticas diminuem custos de
manuteno
Sistemas projetados para um curto ciclo de vida podem ser mais
brandos em relao a estas caractersticas!

Ser??? Como prever o ciclo de vida?

Unianhanguera

54

Atributos de qualidade
Qualidades de negcio

Mercado alvo

Considerando softwares de propsito geral, a quantidade de


plataformas de execuo determina o mercado em potencial

Exemplo: seu sistema de controle de estoque pode executar:

Em Windows, Linux e Mac?!


Em rede ou standalone?!
Em PC ou dispositivo mvel?

Portabilidade chave! Usabilidade e desempenho tambm!

Soluo utilizada

Linhas de produto

Ncleo em comum + caractersticas especficas

Unianhanguera

55

Atributos de qualidade
Qualidades de negcio

Agenda de divulgao

Liberao do produto como um todo???


Liberao de funcionalidade base e depois liberao de
funcionalidades adicionais?

Escalabilidade
Flexibilidade

Facilidade de expanso e contrao

Diferentes usurios tero diferentes necessidades


Exemplo: Eclipse

Unianhanguera

56

Atributos de qualidade
Qualidades de negcio

Integrao com sistemas legados

Integrao com sistemas e tecnologias existentes


Impacto direto na arquitetura

Deve funcionar de acordo com a especificao de terceiros


Deve se adequar arquitetura de terceiros
Pode haver incompatibilidades!

Unianhanguera

57

Atributos de qualidade
Qualidades de arquitetura

Buildability

Integridade conceitual

Facilidade do sistema ser construdo, maximizando o paralelismo


de desenvolvimento e manuteno

Viso que unifica o projeto arquitetura em todos os nveis

Corretude e completude

Anlise e verificao formal dos requisitos


Garante que a arquitetura contempla os requisitos
Complementar aos testes
Unianhanguera

58

Seleo de estilos

Como selecionar um estilo arquitetural?


1. Identificar os principais elementos da arquitetura
2. Identificar o estilo arquitetural dominante
3. Considerar responsabilidades adicionais associadas com a
escolha do estilo
4. Modificar o estilo para atingir objetivos adicionais

Fonte:
Unianhanguera

59

Seleo de estilos
1. Identificar os principais elementos da arquitetura

Cada elemento arquitetural tem um estilo arquitetural dominante


que reflete as qualidades importantes que devem ser alcanadas
no contexto daquele elemento
A escolha do estilo arquitetural dominante baseada nos
principais elementos arquiteturais
Os atributos de qualidade sobre cada elemento arquitetural
podem acarretar a utilizao ou no de um estilo

Fonte:
Unianhanguera

60

Seleo de estilos
2. Identificar o estilo arquitetural dominante

O estilo dominante pode ser modificado para alcanar objetivos


particulares
Se nenhum estilo conhecido parece ser apropriado, o arquiteto
deve projetar e documentar um novo estilo
As decises sobre escolhas baseadas em atributos de qualidade
dentro de um estilo devem ser documentadas

Fonte:
Unianhanguera

61

Seleo de estilos
3. Considerar responsabilidades adicionais associadas com
a escolha do estilo

A escolha de um estilo arquitetural introduzir responsabilidades


adicionais
Por exemplo:
Se o estilo Quadro negro, ento deve-se gerenciar os
mecanismos para o controle do quadro negro
Se o estilo cliente-servidor, deve-se gerenciar os
protocolos de interao
Responsabilidades adicionais devem ser atribudas a elementos
arquiteturais existentes ou a novos elementos criados para este
fim

Fonte:
Unianhanguera

62

Seleo de estilos
4. Modificar o estilo para atingir objetivos adicionais

Pode-se alterar o estilo arquitetural caso este necessite ser adaptado


devido a atributos de qualidade ou at mesmo funcionalidade
Exemplo: cliente-servidor

Adaptao: broker

Requisita
servio

Servidores

Broker
A
Bridge

Proxy
Broker
B

Cliente
Servidores

Proxy

Fonte:
Unianhanguera

63

Seleo de estilos
Exemplo
1. Identificar os principais elementos da arquitetura

Sistema: acadmico

Mdulo de acesso do
usurio

Mdulo de
armazenamento de
dados

Unianhanguera

64

Seleo de estilos
Exemplo
2. Identificar o estilo arquitetural dominante
No deve requerer
instalao!

Deve ter alta


disponibilidade

Deve executar
na Internet

Mdulo de acesso do
usurio

Deve ser fino!

Deve ser possvel


acessar de qualquer
lugar

Acesso mquina
do BD s via rede

No h confiana na
disponibilidade da
mquina do BD

Mdulo de
armazenamento de
dados

Unianhanguera

Utiliza banco de outra


aplicao (legada)
65

Seleo de estilos
Exemplo
3. Considerar responsabilidades adicionais associadas com
a escolha do estilo

Estilo dominante escolhido: Cliente-servidor


Estilo secundrio: Repositrio
Responsabilidades: considerar protocolo de comunicao
Cliente
Rede/HTTP

Servidor

Unianhanguera

66

Seleo de estilos
Exemplo
4. Modificar o estilo para atingir objetivos adicionais

Cliente servidor de 2 camadas e repositrio com backup


Mdulo cliente
(Acesso do usurio)

Cliente/
Servidor

consulta/
atualizao

Mdulo Servidor
(Web)

Cliente/
Servidor
leitura

Repositrio
Mdulo Backup
(Dados)
sincronizao

leitura/escrita

Cliente/
Servidor
Unianhanguera

Mdulo Servidor
(Dados)
leitura/escrita

Aplicao legada

67

Seleo de estilos
Exemplo
4. Modificar o estilo para atingir objetivos adicionais

Objetivos atingidos!
Mdulo cliente
(Acesso do usurio)

consulta/
atualizao

Mdulo Servidor
(Web)

- Alta disponibilidade
- Fino
- Executar na Internet
- Acesso de qualquer lugar
- No requer instalao

leitura

Mdulo Backup
(Dados)
sincronizao

leitura/escrita

- Acesso maquina do BD
s via rede
- Banco de outra aplicao
- No h confiana
na
Unianhanguera
disponibilidade

Mdulo Servidor
(Dados)
leitura/escrita

Aplicao legada

68

Seleo de vises

Quais so as vises arquiteturais relevantes para o


sistema sendo desenvolvido?

Cliente
???

Arquiteto
???

Unianhanguera

69

Vises arquiteturais
Relembrando...

Modelo 4+1 (Rational Software)


Viso
Lgica

Viso de
Desenvolvimento
Cenrios

Viso de
Processo

Viso
Fsica

Unianhanguera

70

Vises arquiteturais
Relembrando...

Viso Lgica

Retrato esttico dos relacionamentos existentes entre as


entidades do sistema
Pode possuir duas ou mais representaes, dentre elas,
uma conceitual e outra de esquema de banco de dados

Viso
Lgica

Unianhanguera

71

Vises arquiteturais
Relembrando...

Viso de Processo

Descreve aspectos de sincronizao e concorrncia


Descrio de processos concorrentes
Diferentes linhas de execuo (threads), entidades ativas

Viso de
Processo

Unianhanguera

72

Vises arquiteturais
Relembrando...

Viso de Desenvolvimento

Descreve a organizao do software em seu ambiente de


desenvolvimento
Componentes
Linguagens

Viso de
Desenvolvimento

Unianhanguera

73

Vises arquiteturais
Relembrando...

Viso Fsica

Descreve o mapeamento do software para o hardware


Distribuio de componentes
Verificao de alta disponibilidade, confiabilidade,
desempenho...
Tambm chamada deployment
Viso
Fsica

Unianhanguera

74

Vises arquiteturais
Relembrando...

Cenrios (+1)

Cenrios de funcionamento do sistema diretamente


ligados arquitetura
Principais casos de uso
Lembram de RUP?
Centrado em arquitetura!

Cenrios

Unianhanguera

75

Seleo de vises

Trs passos:
1. Produza uma tabela de vises
2. Combine vises
3. Priorize vises

Unianhanguera

76

Seleo de vises
1.

Produza uma tabela de vises

De acordo com as caractersticas do sistema

Stakeholder
Gerente
Desenvolvedor
Testador
Cliente
Usurio final
Analista
Arquiteto

Lgica
d
v
v
v
v
d
d

Processo

Desenvolvimento

Fsica

v
v
v

v
d
d

d
v

Legenda:

d = informao bem detalhada


a = alguns detalhes
Unianhanguera
v = viso geral

77

Seleo de vises
2. Combine vises

Considerando que para cada viso apresentada


anteriormente, tem-se um ou mais modelos...
... ficaria impraticvel criar um modelo na perspectiva de
cada uma das vises definidas anteriormente
Procure vises na tabela que requeiram apenas uma
viso geral e com poucos stakeholders envolvidos
Lgica: 4 v
Fsica: 3 stakeholders
Os modelos gerados para esta viso podem ser
simplificados
Unianhanguera

78

Seleo de vises
2. Combine vises

A viso de processo poderia ser combinada de


desenvolvimento (Esteretipos)

Stakeholder
Gerente
Desenvolvedor
Testador
Cliente
Usurio final
Analista
Arquiteto

Lgica
d
v
v
v
v
d
d

Processo

Desenvolvimento

Fsica

v
v
v

v
d
d

d
v

Legenda:

d = informao bem detalhada


a = alguns detalhes
Unianhanguera
v = viso geral

79

Seleo de vises
3. Priorize vises

Uma vez definidas as vises, deve-se estabelecer uma


ordem de prioridade
Sempre comear uma nova viso aps terminar outra
Exemplo de ordem:
Viso lgica
Viso fsica
Viso de desenvolvimento

Unianhanguera

80

Rastreabilidade bidirecional

Rastreamento: requisitos cdigo e vice-versa


durante o ciclo de desenvolvimento do software
Requisitos

Cdigo
Public
class{
Public
class{
Public
class{
Public
......
Publicclass{
class{
......
}}
...
}}
}

Revises mais
rpidas
Maior facilidade
de entendimento

Rastreamento para frente


(Forward Traceability)

Unianhanguera

Evita cdigo
desnecessrio

Testes mais fiis


funcionalidade

81

Rastreabilidade bidirecional

Rastreamento: requisitos cdigo e vice-versa


durante o ciclo de desenvolvimento do software
Requisitos

Cdigo
Public
class{
Public
class{
Public
class{
Public
......
Publicclass{
class{
......
}}
...
}}
}

Manuteno

Rastreamento para trs


(Backward Traceability)
Depurao

Evoluo
Unianhanguera

82

Rastreabilidade bidirecional

Apontada como grande arma para o


desenvolvimento...
CMMi (Capability Maturity Model Integration)

Software Engineering Institute SEI

Manter rastreabilidade bidirecional do desenvolvimento


essencial para um processo de software de sucesso

Unianhanguera

83

Вам также может понравиться