Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão...
Transcript of Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão...
Trabalho de Conclusão de CursoMoisé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
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
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
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
Padrões de ProjetoAlguns Elementos
NomeProblemaSoluçãoConseqüências
ClassificaçõesFinalidade
Criacionais, Comportamentais e EstruturaisEscopo
Objeto e Classe
11 de abril de 2023 6
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
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
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
Padrão de Projeto Interpreter
Figura 2 – Estrutura do Padrão Interpreter (GAMMA et al, 2006, p. 234)
11 de abril de 2023 10
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
Padrão de Projeto Strategy
Figura 3 – Estrutura do padrão Strategy (GAMMA et al, 2006, p. 294)
11 de abril de 2023 12
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
SQL
DSL - Domain-Specific Languages
Figura 3 – Exemplo de DSL Externa – SQL
11 de abril de 2023 14
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
Aplicando Padrões de ProjetoModelo:
Figura 4 – Modelo do Estudo de Caso11 de abril de 2023 16
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;
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
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.
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
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