Utilizando Padrões De Design
No Desenvolvimento Rápido De
Aplicações De Software
Zalkind Lincoln Dantas Rocha
Jair Cavalcanti Leite
Objetivo
 Mostrar o impacto do uso de padrão de
design na arquitetura deste software
bem como as dificuldades de
implementá-lo utilizando uma
linguagem em ambiente de
desenvolvimento rápido de aplicações
(RAD - Rapid Application
Development)
Conteúdo
 Patho Control - Descrição
 Problemas enfrentados
 Padrões de design
 Soluções encontradas
Etapas do Laudo
Modelo de navegação
 Ir diretamente para as etapas de
recepção, macroscopia, conclusão e
entrega;
 Navegar por estas etapas voltando ou
avançando pelas telas que já percorreu;
 Movimentar-se através de botões,
opções de menu ou teclas de atalho.
Configuração de Ambiente
 Adequar comandos de acordo com a etapa.
 Exemplo:
 Enviar um exame para entrega somente
após ter sido concluído;
 Excluir exame apenas na recepção e na
entrega;
 Comandos de voltar e avançar
desabilitados quando na primeira e última
etapa visitada.
Problema:
Construir uma arquitetura que:
i) suporte o modelo de navegação
projetado;
 ii) permita implementar o recurso de
avançar e voltar;
 iii) facilite a configuração de
ambiente de acordo com a etapa.

Padrões de design
 Um padrão de design é uma solução
para um problema num determinado
contexto.
 Surgiu originalmente na arquitetura
através dos trabalhos de Christopher
Alexander.
Padrões de design
 O objetivo é capturar a experiência
acumulada de projetistas que
perceberam padrões de solução para
determinados problemas, catalogando e
nomeando estas soluções testadas para
serem reutilizadas mais facilmente.
Padrões de design
 Alguns autores, como o grupo dos
quatro, adaptaram este conceito,
originalmente aplicado à arquitetura,
para descrever soluções simples e
elegantes para problemas específicos
no design de softwares orientados a
objetos.
Padrão Command
 Parametrizar objetos por uma ação
executa de modo a ser implementada
em outro local;
 Suportar a funcionalidade de desfazer
comandos.
Padrão Command
C lie n t e
Cham ador
Com ando
E x e c u t e ()
R e c e b e d or
A ç ã o ()
re c e b e d o r
C o m a n d o C o n c re t o
E s tado
E x e c u t e ()
re c e b e d o r-> A ç ã o ()
Padrão Command (Aplicado)
 Mudanças de etapas podem ser
comandos;
 Avançar e voltar podem ser desfazer e
refazer;
 Portanto o padrão COMMAND
resolveria os problemas i e ii.
Padrão Command (Aplicado)
Padrão Command (Aplicado)
Padrão Observer
 Alterar um objeto requer mudanças em
outros e não se sabe quantos objetos
precisam ser mudados.
Padrão Observer
A s s u n to
O b s e rva d o re s
*
V in c u la r(O b s e rva d o r)
D e s vin c u la r(O b s e rva d o r)
N o t ific a r()
O b s e rva d or
A t u a liz a r()
fo r a ll o in o b s e rva d o re s
{ o -> A tu a li z ar() }
E s t a d o = as s u n t o- >
G e t E s ta d o ()
A s s unto
O b s e rva d o rC o n c re t o
A s s u n t o C o n c r e to
E s tado
E s tado
G e t E s t a d o ()
S e t E s t a d o ()
R e t o rn a o E s t a d o
A t u a liz a r()
Padrão Observer (Aplicado)
 Os controles podem ser observadores e
é possível criar assuntos cujos estados
indiquem quando estes controles
devem ser habilitados ou desabilitados.
 O padrão OBSERVER seria adequado
para resolver o problema iii.
Padrão Observer (Aplicado)
Considerações Finais
 Os padrões realmente apresentaram
soluções para problemas de design.
 Adequações precisaram ser efetuadas:

O padrão Subject perdeu o acoplamento
abstrato. Acoplar as modificações nos
observadores concretos dentro do método
Notify gerou altíssimo acoplamento.
Considerações Finais
 Outras nem tanto:

O padrão Command foi implementado
quase sem modificações em relação ao
padrão proposto.
 Novos assuntos e novos comandos
foram acrescentados, inclusive fora do
contexto de interface, sem implicação
às classes já existentes.
Considerações Finais
 Essas adaptações aos padrões originais
para a solução dos problemas na
linguagem utilizada podem contribuir
na descrição de padrões mais
específicos, chamados idiomas,
podendo ser reutilizados em novos
projetos
Contatos:
Zalkind Lincoln
[email protected]
Jair Cavalcanti Leite
[email protected]
Download

Utilizando Padrões De Design No Desenvolvimento Rápido De