![Page 1: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/1.jpg)
Trabalho de Conclusão de CursoMoisés Alves Carneiro Filho
Orientador: Prof. M. Sc. Marum Simão Filho
![Page 2: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/2.jpg)
AgendaIntroduçãoPadrões de Projeto
FacadeInterpreterStrategy
DSL - Domain-Specifc LanguageDDD - Domain-Driven DesignDSL - Domain-Specifc LanguageExemplos de DSLTipos de DSL
11 de abril de 2023 2
![Page 3: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/3.jpg)
AgendaAplicando Padrões de Projeto no
Desenvolvimento de DSLDomínioModeloAplicando padrões de ProjetoAspectos de Implementação
DSL e os Padrões de Projeto Facade Interpreter Strategy
Conclusões e Trabalhos Futuros11 de abril de 2023 3
![Page 4: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/4.jpg)
IntroduçãoMotivação
Implementação de uma DSL;Utilização de Padrões de Projeto.
ObjetivoAplicar e analisar a utilização de Padrões de Projeto na construção de uma ferramenta que implementa DSL.
11 de abril de 2023 4
![Page 5: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/5.jpg)
Padrões de Projeto
“Cada padrão descreve um problema no nosso ambiente e o cerne da sua solução, de tal forma que você possa usar essa solução mais de um milhão de vezes, sem nunca fazê-lo da mesma maneira” (Alexander, 1979).
Conceito: são descrições de boas soluções aplicadas recorrentemente para resolver problemas específicos.
11 de abril de 2023 5
![Page 6: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/6.jpg)
Padrões de ProjetoAlguns Elementos
NomeProblemaSoluçãoConseqüências
ClassificaçõesFinalidade
Criacionais, Comportamentais e EstruturaisEscopo
Objeto e Classe
11 de abril de 2023 6
![Page 7: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/7.jpg)
Padrão de Projeto FacadeConceito: Fornece uma interface que unifica um
conjunto de outras interfaces de um mesmo sistema.
Motivações:Redução da complexidade, que torna o projeto
livre de maiores dependências, minimizando as comunicações;
Organização e controle;Facilita manutenção.
11 de abril de 2023 7
![Page 8: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/8.jpg)
Padrão de Projeto Facade
Figura 1 – Entendendo o padrão Façade (GAMMA et al., 2006, p. 179)
11 de abril de 2023 8
![Page 9: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/9.jpg)
Padrão de Projeto Interpreter
Conceito: “Dada uma linguagem, definir uma representação para a sua gramática juntamente com um interpretador que usa a representação para interpretar sentenças dessa linguagem” (GAMMA et al, 2006, p. 186).
Motivações:Resolver problemas de mapeamento de
expressões recorrentes onde os termos podem ser mapeados.
11 de abril de 2023 9
![Page 10: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/10.jpg)
Padrão de Projeto Interpreter
Figura 2 – Estrutura do Padrão Interpreter (GAMMA et al, 2006, p. 234)
11 de abril de 2023 10
![Page 11: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/11.jpg)
Padrão de Projeto StrategyConceito: define famílias de algoritmos e as torna
passíveis de comunicação, permitindo que o algoritmo possa variar, independente dos clientes que o utilizam.
Motivações:Quando é necessário permitir que o algoritmo que
será executado possa ser escolhido em tempo de execução;
Estratégia não utiliza herança como fator principal.
11 de abril de 2023 11
![Page 12: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/12.jpg)
Padrão de Projeto Strategy
Figura 3 – Estrutura do padrão Strategy (GAMMA et al, 2006, p. 294)
11 de abril de 2023 12
![Page 13: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/13.jpg)
DSL - Domain-Specific LanguagesDesenvolvimento de Software mais próximo do
cliente
DDD - Domain-Driven DesignDomínioModelo
DSL - Domain-Specific LanguageTipos:
Interna Externa
11 de abril de 2023 13
![Page 14: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/14.jpg)
SQL
DSL - Domain-Specific Languages
Figura 3 – Exemplo de DSL Externa – SQL
11 de abril de 2023 14
![Page 15: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/15.jpg)
Aplicando Padrões de Projeto
Estudo de Caso: Aplicativo para recebimento de resultados de análises clínicas.
Domínio: Laboratórios de Análises Clínicas.
Modelo: Baseado em um diagrama de fluxo de dados.
11 de abril de 2023 15
![Page 16: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/16.jpg)
Aplicando Padrões de ProjetoModelo:
Figura 4 – Modelo do Estudo de Caso11 de abril de 2023 16
![Page 17: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/17.jpg)
Aplicando Padrões de Projeto
11 de abril de 2023 17
Padrão de Projeto FacadeMotivações
Complexidade nas instruções de leitura de arquivos; Número de funções utilizadas no processo;
Objetivos Compreensão do perito do domínio; Manutenção do código; Regras de Negócio envolvidas;
![Page 18: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/18.jpg)
Aplicando Padrões de ProjetoPadrão de Projeto Interpreter
SÍMBOLOS SIGNIFICADO
-- Muito Abaixo do Normal
- Abaixo do Normal
Norm Normal
+ Acima do Normal
++ Muito Acima do Normal
Tabela 1 – Exemplo de Aplicação do Padrão Interpreter
11 de abril de 2023 18
![Page 19: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/19.jpg)
Aplicando Padrões de Projeto
11 de abril de 2023 19
Padrão de Projeto StrategyMotivação
Formas diferentes de salvar os arquivos tratados; Possibilidade de alteração em tempo de execução.
Objetivo Tornar flexível a forma de geração dos arquivos.
![Page 20: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/20.jpg)
Aplicando Padrões de Projeto
11 de abril de 2023 20
Aspectos de ImplementaçãoDSL e a Linguagem de ProgramaçãoVantagens da utilização dos Padrões de Projeto
Facade Necessidade de novos níveis de abstração
Interpreter DSL Externas Utilização com cautela
Strategy Flexibilidade
Criação de níveis de Abstração
![Page 21: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/21.jpg)
Conclusões e Trabalhos FuturosConclusões
Necessidade de criação de Níveis de Abstração;Padrões de Projeto => Novos Níveis de Abstração;Flexibilidade de Desenvolvimento;Confiança sobre o código escrito.
Trabalhos FuturosAnálise comparativa de técnicas de
desenvolvimento;Desenvolvimento de padrões mais específicos para
DSL;Técnicas de construção de modelo do Domínio.
11 de abril de 2023 21
![Page 22: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho](https://reader038.vdocuments.com.br/reader038/viewer/2022110117/552fc117497959413d8c8611/html5/thumbnails/22.jpg)