1 / 22

Aplicando Padrões de Projeto no Desenvolvimento de DSL: Um estudo de caso

Aplicando Padrões de Projeto no Desenvolvimento de DSL: Um estudo de caso. Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho. Agenda. Introdução Padrões de Projeto Facade Interpreter Strategy DSL - Domain-Specifc Language

gaia
Download Presentation

Aplicando Padrões de Projeto no Desenvolvimento de DSL: Um estudo de caso

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicando Padrões de Projeto no Desenvolvimento de DSL: Um estudo de caso Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho Orientador: Prof. M. Sc. Marum Simão Filho

  2. Agenda • Introdução • Padrões de Projeto • Facade • Interpreter • Strategy • DSL - Domain-Specifc Language • DDD - Domain-Driven Design • DSL - Domain-Specifc Language • Exemplos de DSL • Tipos de DSL

  3. Agenda • Aplicando Padrões de Projeto no Desenvolvimento de DSL • Domínio • Modelo • Aplicando padrões de Projeto • Aspectos de Implementação • DSL e os Padrões de Projeto • Facade • Interpreter • Strategy • Conclusões e Trabalhos Futuros

  4. Introdução • Motivação • Implementação de uma DSL; • Utilização de Padrões de Projeto. • Objetivo • Aplicar e analisar a utilização de Padrões de Projeto na construção de uma ferramenta que implementa DSL.

  5. 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.

  6. Padrões de Projeto • Alguns Elementos • Nome • Problema • Solução • Conseqüências • Classificações • Finalidade • Criacionais, Comportamentais e Estruturais • Escopo • Objeto e Classe

  7. Padrão de Projeto Facade • Conceito: 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.

  8. Padrão de Projeto Facade Figura 1 – Entendendo o padrão Façade (GAMMA et al., 2006, p. 179)

  9. 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.

  10. Padrão de Projeto Interpreter Figura 2 – Estrutura do Padrão Interpreter (GAMMA et al, 2006, p. 234)

  11. Padrão de Projeto Strategy • Conceito: 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.

  12. Padrão de Projeto Strategy Figura 3 – Estrutura do padrão Strategy (GAMMA et al, 2006, p. 294)

  13. DSL - Domain-Specific Languages • Desenvolvimento de Software mais próximo do cliente • DDD - Domain-Driven Design • Domínio • Modelo • DSL - Domain-Specific Language • Tipos: • Interna • Externa

  14. DSL - Domain-Specific Languages • SQL Figura 3 – Exemplo de DSL Externa – SQL

  15. 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.

  16. Aplicando Padrões de Projeto • Modelo: Figura 4 – Modelo do Estudo de Caso

  17. Aplicando Padrões de Projeto • Padrão de Projeto Facade • Motivaçõ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;

  18. Aplicando Padrões de Projeto • Padrão de Projeto Interpreter Tabela 1 – Exemplo de Aplicação do Padrão Interpreter

  19. Aplicando Padrões de Projeto • Padrão de Projeto Strategy • Motivaçã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.

  20. Aplicando Padrões de Projeto • Aspectos de Implementação • DSL e a Linguagem de Programação • Vantagens 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

  21. Conclusões e Trabalhos Futuros • Conclusõ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 Futuros • Aná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.

  22. OBRIGADO!!!

More Related