Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMiguel Mendosa Alterado mais de 9 anos atrás
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
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.