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.

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

3/24/2017 7:59 AM © 2005 Microsoft Corporation. All rights reserved.
Conhecendo o VS2008: Windows Forms X Web Forms X Web Services
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Tecnologia Hipermídia e Multimídia
Engenharia de Software
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
FACULDADE DOS GUARARAPES
Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 28 de outubro.
Projeto de Sistemas de Software
Conceitos Básicos de Computação O ABC da Computação.
CAPÍTULO Sistemas de supervisão 2. Sistema SCADA
Softwares - Básicos e Aplicativos
Introdução Visão Geral do Método.
Gerencia de Projeto OO Aspectos Avançados em Engenharia de Software Aula 5 Fernanda Campos DCC/UFJF.
Engenharia de Software
Processos de Software II
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Mídias Digitais Uma abordagem sobre as possibilidades de aplicar mídias em benefício do ensino.
DOCUMENTO CONFIDENCIAL DA MICROSOFT Set 2009 | Página 1 | Apresentação para BDMs.
Projetar Serviços Vítor Braga –
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Linguagem de Programação C#
Lafayette B. Melo – CEFET-PB - COINFO Quando só o que se tem é um martelo, se acha que tudo que tem no mundo é prego (?) Como você vê o mundo em sua volta.
Análise léxica e sintática
DSL Tools Lucas Mello Nancy Lyra. DSL Tools – Visual Studio Permite definir conceitos a serem utilizados em um domínio Além disso: – Como os conceitos.
Desenvolvimento de Jogos com XNA
Projeto de Sistemas de Software
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.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
IFSul – Campus Venâncio Aires
Fabíola Guerra Nakamura Vitor Alcântara Batista
Metodologias para construção de SMA
Semântica de Linguagens de Programação
Análise léxica e sintática
Engenharia de Software
Projeto de Banco de Dados
MVP Virtual Conference 2013
Casos de Uso no Engenharia de Software e Sistemas {abab, dtvp, jmmn, mscla, rmb2,
2005 Cin - Centro de Informática - Universidade Federal de Pernambuco – UFPE Iniciação Científica Visual # Tool Bolsista: Rodrigo Cavalcante Mendes Orientadores:
Adriano Melo Introdução ao ASP.NET Adriano Melo
Professor: Márcio Amador
Definição A rigor, tudo o que pode ser armazenado eletronicamente pode ser chamado de software. Consideraremos aqui, como software, apenas os conjuntos.
Tecnologias Web Prof. Msc. Juliano Gomes Weber Tecnologias Web Notas de Aula – Aula 02 1º Semestre UNIJUÍ.
DSL Tools Lucas Mello Nancy Lyra. DSL Tools – Visual Studio Permite definir conceitos a serem utilizados em um domínio Além disso: – Como os conceitos.
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
Guilherme Pires Gustavo Royer Chaurais Orientação: Olinto José Varela Furtado Banca: José Eduardo De Lucca e Ricardo Azambuja Silveira.
O Processo Unificado (UP)
Desenvolvimento de Frameworks e Componentes Baseados em Metadados Eduardo Guerra.
Padrão- MVC Model, View, Controller
DSL Tools Nancy Lyra. Introdução Imaginem um mundo em que: – Desenvolvedores não são limitados a lidar com conceitos de programação (classes, interfaces,
Linguagem de programação. Histórico  Concebida em 1993 por Yukihiro Matsumoto  Primeiro livro em inglês saiu em setembro de 2000  Ruby on Rails é lançado.
Maria Alice Grigas Varella Ferreira – EP-USP GERAÇÕES DE FERRAMENTAS (UIMS/UIDS) u segundo (Hix, 1990) u uma classificação por características comuns e.
Integração de Ferramentas CASE
Construção de software e suas linguagens Paulo Borba Centro de Informática, UFPE Qualiti Software Processes.
UML e a Ferramenta Astah
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Configuração do Processo - Parte.
Frameworks e Componentes Daniel Fernando Pavelec.
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
MODELLUS.
Ciência da Computação I
Prof. Sidney Galeote. 2 www. prasabermais. com  Visão Geral sobre a dimensão de qualidade “performance”  Custo da qualidade  Como a performance deve.
UD 1 - CONCEITOS DE INFORMÁTICA
Transcrição da apresentação:

INFOS IMPORTANTES: Fonte utilizada: Segoe (essa não é uma fonte padrão do Windows. Favor instalar em seu computador) Paleta de cores: 183 – – – – 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

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

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

 O Insucesso de Software  Software Factories  Domain-Specific Languages  Demo: QuizLanguage  Conclusões

O Insucesso de Software

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

 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...

© 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

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

Software Factories

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

 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

 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

 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

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

 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

Domain-Specific Languages (DSLs)

Abordagens de pesquisa / desenvolvimento

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

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

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

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

 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

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

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

 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

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

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

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

[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

 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

 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

Exemplo do DSL Tools: SharpLudus

VÍDEO Modelagem visual com o SharpLudus

DEMO Ultimate Berzerk - SharpLudus

Estudo de caso: QuizLanguage

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

Aonde queremos chegar...

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

 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

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

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

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

 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

 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

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

5. Desenvolvedor consome a DSL visual

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

7. Usuário final consome aplicação

Conclusões

 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

PRÓXIMAS PALESTRAS

Palestra:

LINKS ÚTEIS MSDN Certificações Microsoft VS 2005 Team System DSL Tools Projeto SharpLudus AFurtado - websites pessoais  m/workshop/dsltools/default.aspx   

PERGUNTAS E RESPOSTAS