guilherme pires gustavo royer chaurais orientação: olinto josé varela furtado banca: josé...

Post on 22-Apr-2015

129 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Guilherme PiresGustavo Royer Chaurais

Orientação: Olinto José Varela Furtado

Banca: José Eduardo De Lucca eRicardo 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

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

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;

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.

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

top related