A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 – 67 - 41 234.

Apresentações semelhantes


Apresentação em tema: "INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 – 67 - 41 234."— Transcrição da apresentação:

1

2 INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 – 67 - 41 234 – 127 - 31 176 – 176 - 176 0 – 0 - 0 Modelo de box para texto: Digite seu texto aqui Modelo de box para foto: Fonte: Modelo de texto e posição Modelo de bullet:  Bullet 1  Bullet 2  Bullet 3

3 DICAS:  Evitar deixar a fonte com tamanho menor que 18  Não esquecer de colocar transição entre slides Vá no menu Apresentações/ Transição de Slides/ - Aconselhamos a opção “Desaparecer suavemente”  Mantenha o título do slide todo em maiúscula

4 Geração de código e criação de designers visuais com o Domain Specific Language Tools André Furtado

5 01. 02. 03. 04. 05.  O Insucesso de Software  Software Factories  Domain-Specific Languages  Demo: QuizLanguage  Conclusões

6 O Insucesso de Software

7  Qual o sucesso de projetos de desenvolvimento de software hoje? Reflexão

8  Pesquisa do The Standish Group: desfecho de projetos de diferentes portes no EUA, 2004 Failed: 18% Challenged: 53% Succeeded: 29% O sucesso não vem fácil...

9 © The Standish Group 2004 Taxa de sucesso de projetos de software Successful: 29% “Red tape” development Tarefas rotineiras e repetitivas consomem tempo e recursos valiosos do projeto! Cenário de Desenv. de Software

10 Como permitir que tempo e recursos sejam alocados ao que realmente está precisando? Ainda mais em um cenário com tendência a aumento exponencial da demanda por software? Questões a serem respondidas

11 Software Factories

12 Desenv. de Software como Artesanato  Trabalho intensivo  Ferramentas genéricas  Processos genéricos  Um tipo de aplicação por vez  Feita a mão do zero  Reuso mínimo

13  Objetivo: aumentar o nível de abstração no desenvolvimento... ... levando para software conceitos já praticados em outras indústrias Documentação Padrões Frameworks Ferramentas Linguagens automação linhas de produção cadeias de abastecimento previsibilidade reuso! Industrialização de Software

14  Reuso de designs & componentes  Construção de protótipos similares mas distintos  A chave está em suportar a variabilidade Defina apenas as peças únicas de cada sistema Explorando o que há de comum

15  Evolução do paradigma de desenvolvimento de software:  Foco em:  Famílias de aplicações  Abordagem sistemática  Reuso e empacotamento (assembling) de componentes  Automatizar trabalho rotineiro artesanal  manufatura Fundamentos de Software Factories

16  Customizam Word/Excel para uma tarefa específica Analogia: templates do Office

17  Software Factories não são novidade  Conceito já usado no Japão em 1980  Mas o que está sendo mais enfatizado agora? Domínios específicos suportados por ambientes de desenvolvimento (IDEs) Fundamentos de Software Factories

18 Domain-Specific Languages (DSLs)

19 Abordagens de pesquisa / desenvolvimento

20  Quais as principais diferenças de cada abordagem? Reflexão

21  Em computação: Dilema Genérico X Específico

22 Cobol Fortran Lisp businessprocessing numericcomputation symbolicprocessing C (Visual) Basic C# ??? Jogos Medicina Música Banco de dados Device drivers Manipulação de imagens Agentes móveis Protocolos de comunicação ??? ??? Um pouco de história...

23 ??? ??? Frameworks orientados a objeto / Frameworks de componentes Domain Specific Languages Bibliotecas de subrotinas / APIs (Application Program Interface) Endereçando domínios específicos

24  Definição formal: Linguagem que oferece, através de notações e abstrações adequadas, um poder de expressão focado em (e geralmente restrito a) um domínio particular Domain Specific Languages

25 Exemplos de DSLs  LEX  YACC  SQL  BNF  HTML  JavaDoc  TeX  Linguagens para comandos na shell do sistema operacional

26  DSLs estão em todos os lugares  A própria linguagens de fórmulas do Excel é uma DSL! Exemplos de DSLs

27  Construtores de GUI também podem ser vistos como manipuladores de DSLs? Sim, mas a experiência do usuário, entretanto, é diferente (pois a DSL é visual!) DSL Visuais

28  Utiliza DSLs visuais para modelar a solução em um domínio  Exemplo: linguagem para aplicações de smart phones Modelagem visual

29  Outro exemplo: modelagem no VS Team System for Architects Modelagem Visual

30  Modelagem, diagramas, etc. para documentação são de pouco uso  Proposta: agregar geradores ao processo [Tolvanen 2003] Modelagem Visual

31 [Tolvanen 2003] Feito várias vezes, pelos desenvolvedores + abstração e poder de expressão! Feito apenas uma vez, pelo projetista da linguagem Modelagem Visual

32  DSLs (principalmente as visuais) são poderosas e ao mesmo tempo custosas... como melhorar isso? Através de programas de suporte à criação de DSLs: “language workbenches” Reflexão

33  Plug in para a IDE Visual Studio.NET  Suporte à criação de DSLs visuais  Captura dos conceitos do domínio  Definição de um editor gráfico  Criação de transformadores (ex.: gerador de código) VS Team System DSL Tools

34 Exemplo do DSL Tools: SharpLudus

35 VÍDEO Modelagem visual com o SharpLudus

36 DEMO Ultimate Berzerk - SharpLudus

37 Estudo de caso: QuizLanguage

38  Objetivo  Criar uma DSL visual para a modelagem e construção automática de jogos de pergunta e resposta (quiz games) QuizLanguage

39 Aonde queremos chegar...

40  Conceitos do domínio podem ser arrastados da Toolbox 1. Projetista modela DSL

41  Aos poucos, a DSL visual vai sendo construída...  Propriedades são adicionadas a conceitos  Relacionamentos entre conceitos são criados 1. Projetista modela DSL

42  A janela DSL Explorer permite criar novos tipos de dados 1. Projetista modela DSL

43

44  Da Toolbox são adicionadas ao diagrama formas gráficas (imagens, compartimentos, etc.) 2. Projetista define sintaxe visual da DSL

45  Mapeamento da sintaxe para os conceitos também é realizado 2. Projetista define sintaxe visual da DSL

46  Decoradores textuais e gráficos podem ser associados às formas gráficas, através da janela DSL Details 2. Projetista define sintaxe visual da DSL

47  O gerador é feito em linguagem de script semelhante a C#  Tags delimitam lógica de processamento  Tags jogam expressões no output  Texto fora das tags é copiado diretamente 3. Projetista implementa gerador de código

48 4. Projetista implementa framework a ser consumido pelo código gerado

49 5. Desenvolvedor consome a DSL visual

50  Código que consome o framework é gerado  Código próprio do desenvolvedor é implementado em classes parciais 6. Desenvolvedor constrói produto final

51 7. Usuário final consome aplicação

52 Conclusões

53  SFs permitem uma melhor solução de problemas por aproximar desenvolvedores do domíno  Language workbenches como o VS DSL Tools facilitam e suportam o processo  A proposta atual sozinha jamais garantirá o sucesso na criação de software  A indústria precisa amadurecer primeiro  Fábricas de software, DSLs, etc., são um meio, jamais um fim Considerações Finais

54 PRÓXIMAS PALESTRAS

55 Palestra:

56 LINKS ÚTEIS MSDN http://www.msdn.com.br Certificações Microsoft http://www.microsoft.com/brasil/certifique http://www.microsoft.com/learning VS 2005 Team System DSL Tools Projeto SharpLudus AFurtado - websites pessoais  http://lab.msdn.microsoft.com/teamsyste m/workshop/dsltools/default.aspx  http://www.cin.ufpe.br/~sharpludus  http://www.cin.ufpe.br/~awbf  http://thespoke.net/blogs/afurtado

57 PERGUNTAS E RESPOSTAS http://www.cin.ufpe.br/~sharpludus http://thespoke.net/blogs/afurtado

58


Carregar ppt "INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 – 67 - 41 234."

Apresentações semelhantes


Anúncios Google