Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Geração de DSLs Vamos criar agora um projeto exemplo que trabalhe não mais com a linguagem DRL, mas sim com DSL (Domain Specific Languages – Linguagens.
AVALIAÇÃO DE RISCOS 29 de Setembro de 2009 José Carlos Sá, Eng.
“Um melhor aprendizado não surge das descobertas de novas maneiras do professor instruir, mas de dar ao aprendiz melhores oportunidades de construir.”
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 11
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 10
BANCO DE DADOS EM APLICATIVOS WEB Aula 14
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Processos e Threads Processos.
Engenharia de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Integração de Práticas a Ambientes de Desenvolvimento de Software
Design Patterns Interpreter
Abstract Factory – Gustavo Lopes Mourad.
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Padrão Abstract Factory
Padrões GoF - Façade.
Padrões GoF – Factory Method
INTRODUÇÃO À PROGRAMAÇÃO
PRINCIPAIS MOVIMENTOS ARTICULARES E AMPLITUDES FISIOLÓGICAS
O QUE SABER - FLEXIBILIDADE
BENEFÍCIOS DO ALONGAMENTO
MAS COMO POSSO SABER AS REFERÊNCIAS DE NORMALIDADE?
PARÂMETROS PARA PRESCRIÇÃO
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
AGRADECIMENTOS: MOTIVAÇÃO: OPC é um padrão industrial aberto para transmissão de dados em tempo real, esse padrão está sendo adotado pela maioria dos fabricantes.
Linguagens, Códigos e suas Tecnologias
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Configuração de manutenção
Estruturação de Narrativas para o Centro Técnico
Integrar o processo de auto-avaliação na escola Eulália Gameiro de Sousa Nunes
DIAGRAMA DE COMPONENTES
Universidade Federal Fluminense
Introdução ao conceito de ÉTICA
Programação Avançada Prof. Natalia Castro Fernandes
Tabelas de decisão para a automação da geração e da execução de casos de teste Luana Lachtermacher.
08/06/20141 (o ponto de vista de um peixe) Os segredos do ADN: viver e sobreviver na Antárctida.
C) O que é Ética A palavra Ética é originada do grego ethos, (modo de ser, caráter) através do latim mos (ou no plural mores) (costumes, de onde se derivou.
DIREITOS E DEVERES DOS USUÁRIOS Curso de Especialização 16/6/20141www.nilson.pro.br.
“A PRIMEIRA GRANDE CRISE DO CAPITALISMO”
Apresentação ao público
ÉTICO RELATIVISMO 19/6/20141www.nilson.pro.br.
Marketing & Pricing Seu negócio crescendo... Rápido,
30/6/20141www.nilson.pro.br. A informação pode ser: 30/6/20142www.nilson.pro.br.
Conhecimento e ciência: homem como gerador de conhecimento
A Importância da Contabilidade
Deliberação Prof. Nilson 02/04/2017
Portifólio Grupo de Engenharia da Computação (GrecO)
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Projeto de Banco de Dados
Professor: Márcio Amador
Programação Orientada à Objetos
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Equipe: Osias Carneiro, Anderson Soares, André Araújo
Design Patterns (Padrões de Projeto)
WDM Web Data Modeling UCB – Universidade Católica de Brasília
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Padrões de Projeto Abstract Factory.
O que é Domain Driven Design Especificação Design Refactor Testes Quanto tempo isso leva?
Padrão de desenvolvimento
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS PARTE 1: INTRODUÇÃO Prof. Cesar Augusto Tacla UTFPR/Campus.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Transcrição da apresentação:

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 DSL - Domain-Specifc Language Facade Interpreter Strategy DSL - Domain-Specifc Language DDD - Domain-Driven Design Exemplos de DSL Tipos de DSL 26 de março de 2017

Agenda Conclusões e Trabalhos Futuros 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 26 de março de 2017

Introdução Motivação Objetivo 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. 26 de março de 2017

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. 26 de março de 2017

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

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. 26 de março de 2017

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

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. 26 de março de 2017

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

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. 26 de março de 2017

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

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 26 de março de 2017

DSL - Domain-Specific Languages SQL Figura 3 – Exemplo de DSL Externa – SQL 26 de março de 2017

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. 26 de março de 2017

Aplicando Padrões de Projeto Modelo: 26 de março de 2017 Figura 4 – Modelo do Estudo de Caso

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; 26 de março de 2017

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 26 de março de 2017

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. 26 de março de 2017

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 26 de março de 2017

Conclusões e Trabalhos Futuros 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. 26 de março de 2017

OBRIGADO!!!