Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln...
-
Upload
benedita-milena-escobar-branco -
Category
Documents
-
view
214 -
download
1
Transcript of Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln...
![Page 1: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/1.jpg)
Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software
Zalkind Lincoln Dantas RochaJair Cavalcanti Leite
![Page 2: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/2.jpg)
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)
![Page 3: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/3.jpg)
Conteúdo
Patho Control - Descrição Problemas enfrentados Padrões de design Soluções encontradas
![Page 4: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/4.jpg)
![Page 5: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/5.jpg)
Etapas do Laudo
![Page 6: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/6.jpg)
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.
![Page 7: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/7.jpg)
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.
![Page 8: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/8.jpg)
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.
![Page 9: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/9.jpg)
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.
![Page 10: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/10.jpg)
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.
![Page 11: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/11.jpg)
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.
![Page 12: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/12.jpg)
Padrão Command
Parametrizar objetos por uma ação executa de modo a ser implementada em outro local;
Suportar a funcionalidade de desfazer comandos.
![Page 13: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/13.jpg)
Padrão Command
ComandoExecute()
Chamador
ComandoConcretoEstado
Execute()
Cliente
RecebedorAção()
recebedor->Ação()
recebedor
![Page 14: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/14.jpg)
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.
![Page 15: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/15.jpg)
Padrão Command (Aplicado)
TCommand
Execute()UnExecute()Reversible()
TNotebook(from Unresolved References)
TfmPrincipal(from Main)
+nbAreaDeTrabalho
TIrParaCommand_ToPage : String_FromPage : String
Create()CreateNew()Execute()UnExecute()Reversible()<<Property>> FromPage()
-_NoteBook
+cmIrParaConteudo+cmIrParaRequisicao
+cmIrParaMacroscopia+cmIrParaMicroscopia
+cmIrParaConclusao+cmIrParaEntrega
![Page 16: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/16.jpg)
Padrão Command (Aplicado)
TIrParaHistory_Index : Integer
Create()Present()Add()Next()Prior()Clear()
TList(from Classes)
-_HistoryList
![Page 17: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/17.jpg)
Padrão Observer
Alterar um objeto requer mudanças em outros e não se sabe quantos objetos precisam ser mudados.
![Page 18: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/18.jpg)
Padrão Observer
AssuntoVincular(Observador)Desvincular(Observador)Notificar()
ObservadorAtualizar()
*
for all o in observadores{ o->Atualizar() }
ObservadorConcretoEstado
Atualizar()
AssuntoConcretoEstado
GetEstado()SetEstado()
Assunto
Observadores
Retorna o Estado
Estado = assunto->GetEstado()
*
![Page 19: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/19.jpg)
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.
![Page 20: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/20.jpg)
Padrão Observer (Aplicado)
TList(from Classes)
TSubject
Attach()Detach()Notify()
THistoryIrParaAtFirstSubject_AtFirst : boolean
SetState()Notify()<<Property>> AtFirst()
THistoryIrParaAtLastSubject_AtLast : boolean
SetState()Notify()<<Property>> AtLast()
T IrParaSubject_Page : String
FinalizarPosts()SetState()Notify()<<Property>> Page()
-_SubjectList
![Page 21: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/21.jpg)
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.
![Page 22: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/22.jpg)
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.
![Page 23: Utilizando Padrões De Design No Desenvolvimento Rápido De Aplicações De Software Zalkind Lincoln Dantas Rocha Jair Cavalcanti Leite.](https://reader036.fdocument.pub/reader036/viewer/2022070507/5706384b1a28abb8238f5952/html5/thumbnails/23.jpg)
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