Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.

Slides:



Advertisements
Apresentações semelhantes
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.
Advertisements

Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 2 de setembro.
Desenvolvimento de Projeto I
Introdução à Programação
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Rational Unified Process
Aspect Oriented Software Development - AOSD 1 Elaborado por: Bruno Nunes nº 3202 Pedro Casqueiro nº 2163.
Funcionalidades de um SGBD
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Rational Unified Process(RUP)
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Projeto de Sistemas de Software
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Trabalho de Conclusão de Curso
Introdução a Informática
Basic e Visual Basic.NET
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Softwares.
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Prof. Esp. Marcelo Mendes
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Domain-Specific Modelling na Engenharia de Software.
FDD.
Configuração de manutenção
Paradigmas de programação
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
PROGRAMAÇÃO I UNIDADE 1.
Fluxogramas e Pseudo-código
Cap 2 – Processo de Software
Projeto de Sistemas de Informação
Arquitetura Microsoft .Net
Projeto de Sistemas de Software
Conceitos.
Introdução Técnicas de Análise de Domínio O Domínio dos Jogos RPGT Commander Assembler Language Commander Assembler Engine Demo Considerações Finais e.
Industria de jogos – Uma da mais lucrativas do mundo – Grandes Desafios – Industrialização do processo de desenvolvimento – Migração do processo artesanal.
Análise e Projeto de Sistemas
Solicitação de Contratos
LABORATÓRIOS DE INFORMÁTICA IV ENGENHARIA DE SOFTWARE: DA TEORIA À PRÁTICA GRUPO 13.
Introdução a Linguagens de Programação
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Curso de ISI (Implantação de Sistemas de Informação)
TÉCNICAS DE PROGRAMAÇÃO
APLICANDO O PROCESSO DIRIGIDO POR RESPONSABILIDADES PARA A CRIAÇÃO DE UM SUBFRAMEWORK PARA VALIDAÇÃO SINTÁTICA DE FÓRMULAS Autores: Rafael Hornung Simone.
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
O Processo de desenvolvimento de software
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 –
O Processo Unificado (UP)
S ISTEMA DE C ONTROLE DE V ERSÃO : B AZAAR Carolina Ramalho Priscilla Gonçalves.
HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia Bom dia... Vou apresentar o HyperDE, que é o fruto desse.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Programação de computadores Prof. Giovanni Castro.
Professora Cláudia Abreu Paes
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2010 Integrantes: Professor Orientador: Co-orientador:
UTILIZAÇÃO DOS PADRÕES DA COLEÇÃO WELIE PARA ELABORAÇÃO DE INTERFACES GRÁFICAS DO FRAMEWORK PARA FORMAÇÃO DE PREÇO DE VENDA Fernando Henrique Malaquias.
UML e a Ferramenta Astah
O que é Domain Driven Design Especificação Design Refactor Testes Quanto tempo isso leva?
Programação de Computadores - 1
1 Linguagens de Programação Pedro Lopes 2010/2011.
Linguagens de Programação
Gerenciamento de Configuração de Software
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
LINGUAGEM DE PROGRAMAÇÃO I
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
DESENVOLVIMENTO Prof: Marcelo West Disciplina: Lógica de Programação.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Transcrição da apresentação:

Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira

 Cada vez mais  Pessoas capazes de desenvolver seu próprio software  Produtividade  Evolução natural  Muitos conceitos atuais tentam  Em vez de escrevermos código compreensível pelo computador, faremo-lo entender o que queremos de uma maneira inteligível por nós

 Novo paradigma a substituir a Orientação a Objetos  Possibilidade de mais pessoas poderem construir seu software  Aumento da compreensão e, portanto, da produtividade no desenvolvimento  Fortemente baseado em Domain Specific Languages

LUIZ INÁCIO DA SILVA FERNANDO HENRIQUE CARDOSO ITAMAR FRANCO

procedure LeiaLinha(const Linha: TLinha); begin if PegaCaracteres(Linha, 0, 1) = 0 then //HEADER begin NroBanco := PegaCaracteres(Linha, 2, 3); DataGeracao := PegaCaracteres(Linha, 8, 8); HoraInicioGeracao := PegaCaracteres(Linha, 17, 4); end else if PegaCaracteres(Linha, 0, 1) = 1 then //REGISTRO begin NSR := PegaCaracteres(Linha, 4, 5); NomeCliente := PegaCaracteres(Linha, 9, 28); DataVencto := PegaCaracteres(Linha, 37, 8); ValorAPagar := PegaCaracteres(Linha, 45, 8); end; else if PegaCaracteres(Linha, 0, 1) = 9 then //TRAILER begin NroRegistros := PegaCaracteres(Linha, 2, 2); HoraTerminoGeracao := PegaCaracteres(Linha, 4, 4); end;

LER LINHA Se linha for HEADER NroBanco inicia em 2, contando 3 caracteres, DataGeracao inicia em 8, contando 8 caracteres, HoraGeracao inicia em 17, contando 4 caracteres. Se linha for REGISTRO NSR inicia em 4, contando 5 caracteres, NomeCliente inicia em 9, contando 28 caracteres, DataVencto inicia em 37, contando 8 caracteres, ValorAPagar inicia em 45, contando 8 caracteres.

 Quem de nós (desenvolvedores) nunca imaginou uma tarefa que pudesse ser automatizada e seu resultado fosse código fonte?  Problema: sistema para setor imobiliário  Solução procurar uma DSL para o domínio  Caso exista  Utilizá-la  Caso contrário  Criamos uma  Resultado final: código construído por uma ou mais Domain Specific Languages focados em uma plataforma/framework.

 Estudo de caso em sistema para Cálculo de Folhas de Pagamento  Desenvolvimento de duas versões:  Orientada a Objetos  Language Oriented  Posterior análise comparativa

 Versão Orientada a Objetos  Linguagem de Programação: C#  Ambiente de Desenvolvimento: Microsoft Visual Studio 2005  Metodologia Utilizada: Test-Driven Development  Versão Language Oriented  Ferramenta para construção de DSLs : Microsoft DSL Tools

 Versão Orientada a Objetos  Módulos resultantes  PayrollCalc  PayrollTests  PayrollInterface  PayrollCalc.Regras  PayrollCalc.Exportadores

 Versão Language Oriented  Linguagens construídas/utilizadas  Payrule – Regras  Payxport - Exportadores

Vídeo de Exemplo

 Geração de Código Final em LOP  Raramente um programa executável será resultante  Ferramentas Utilizadas  O Microsoft DSL Tools é baseado em diagramas gráficos  Talvez para a linguagem Payxport seria mais fácil utilizarmos um ambiente baseado em texto

 LOP torna muito mais fácil a compreensão sobre o programa escrito  Muito facilmente alguém que possua conhecimentos em Cálculos de Folha de Pagamento poderia realizar uma alteração nas Regras  Tempo para a construção de um projeto Language Oriented  Conhecimento sobre metodologia e ferramenta de desenvolvimento das DSLs  Documentação e exemplos disponíveis  Pré-existência das linguagens envolvidas

 Necessita amadurecimento  Facilita a compreensão por qualquer pessoa  Agiliza o processo  Caso não seja com esse nome, muitos conceitos estarão presentes no próximo paradigma  Previsões  Padrões para desenvolvimento de DSLs  Diferença bastante grande entre programador de Domain Specific Languages e desenvolvedor de sistemas  Empresas especializadas na construções desse tipo de linguagem

 Domain-specific language approach to modelling UI architecture of mobile telephony systems (Lee, J.-S.; Chae, H.S.)  Using domain specific languages to instantiate object-oriented frameworks (Fontoura, M.; Braga, C.; Moura, L.; Lucena, C.)  A domain-specific language approach to programmable networks (G. Muller; J.L. Lawall; S. Thibault; R.E. Voel Jensen)

 Construção de ferramenta para a elaboração de Domain Specific Languages  Utilização de uma DSL por não-programadores  Desenvolvimento de padrões para construção e uso de DSLs

 Orientandos  Guilherme Pires  Gustavo Royer Chaurais  Orientação  Olinto José Varela Furtado  Banca  José Eduardo De Lucca  Ricardo Azambuja Silveira