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
5 de novembro 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
5 de novembro 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.
5 de novembro 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.
5 de novembro 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
5 de novembro 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.
5 de novembro de 2015
7
Padrão de Projeto Facade
Figura 1 – Entendendo o padrão Façade (GAMMA et al., 2006, p. 179)
5 de novembro 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.
5 de novembro de 2015
9
Padrão de Projeto Interpreter
Figura 2 – Estrutura do Padrão Interpreter (GAMMA et al, 2006, p. 234)
5 de novembro 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.
5 de novembro de 2015
11
Padrão de Projeto Strategy
Figura 3 – Estrutura do padrão Strategy (GAMMA et al, 2006, p. 294)
5 de novembro 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
5 de novembro de 2015
13
DSL - Domain-Specific Languages
 SQL
Figura 3 – Exemplo de DSL Externa – SQL
5 de novembro 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.
5 de novembro de 2015
15
Aplicando Padrões de Projeto
 Modelo:
5 de novembro 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;
5 de novembro 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
5 de novembro 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.
5 de novembro 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
5 de novembro 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.
5 de novembro de 2015
21
Download

Aplicando padrões de Projeto do Desenvolvimento de DSL: Um