Aplicando padrões de Projeto do Desenvolvimento de DSL: Um
Download
Report
Transcript Aplicando padrões de Projeto do Desenvolvimento de DSL: Um
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
DDD - Domain-Driven Design
DSL - Domain-Specifc Language
Exemplos de DSL
Tipos de DSL
13 de abril de 2015
2
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
13 de abril de 2015
3
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.
13 de abril de 2015
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.
13 de abril de 2015
5
Padrões de Projeto
Alguns Elementos
Nome
Problema
Solução
Conseqüências
Classificações
Finalidade
Criacionais, Comportamentais e Estruturais
Escopo
Objeto e Classe
13 de abril de 2015
6
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.
13 de abril de 2015
7
Padrão de Projeto Facade
Figura 1 – Entendendo o padrão Façade (GAMMA et al., 2006, p. 179)
13 de abril de 2015
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.
13 de abril de 2015
9
Padrão de Projeto Interpreter
Figura 2 – Estrutura do Padrão Interpreter (GAMMA et al, 2006, p. 234)
13 de abril de 2015
10
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.
13 de abril de 2015
11
Padrão de Projeto Strategy
Figura 3 – Estrutura do padrão Strategy (GAMMA et al, 2006, p. 294)
13 de abril de 2015
12
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
13 de abril de 2015
13
DSL - Domain-Specific Languages
SQL
Figura 3 – Exemplo de DSL Externa – SQL
13 de abril de 2015
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.
13 de abril de 2015
15
Aplicando Padrões de Projeto
Modelo:
13 de abril de 2015
Figura 4 – Modelo do Estudo de Caso
16
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;
13 de abril de 2015
17
Aplicando Padrões de Projeto
Padrã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
13 de abril de 2015
18
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.
13 de abril de 2015
19
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
13 de abril de 2015
20
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.
13 de abril de 2015
21