Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão...

22
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho

Transcript of Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão...

Page 1: Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.