Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José...

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

Transcript of Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José...

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

Guilherme PiresGustavo Royer Chaurais

Orientação: Olinto José Varela Furtado

Banca: José Eduardo De Lucca eRicardo Azambuja Silveira

Page 2: 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

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

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

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

0001037180320071737000000000000000000000000000000000000010112345 LUIZ INÁCIO DA SILVA3103200700001945000010254321 FERNANDO HENRIQUE CARDOSO3103200700020003000010312121 ITAMAR FRANCO3103200700011235000090317370000000000000000000000000000000000000000000000000

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

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;end;

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

LER LINHASe 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.

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

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.

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

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

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

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

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

Versão Orientada a Objetos Módulos resultantes

PayrollCalc PayrollTests PayrollInterface PayrollCalc.Regras PayrollCalc.Exportadores

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

Versão Language Oriented Linguagens construídas/utilizadas

Payrule – Regras Payxport - Exportadores

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

Vídeo de Exemplo

Page 14: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 15: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 16: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 17: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 18: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 19: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 20: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
Page 21: Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.

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

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

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

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

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

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

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)

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

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

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

Orientandos Guilherme Pires Gustavo Royer Chaurais

Orientação Olinto José Varela Furtado

Banca José Eduardo De Lucca Ricardo Azambuja Silveira