12/7/2007. Realizar uma consulta em um banco de dados? Renomear todos os arquivos com extensão.htm para a extensão.html?



Documentos relacionados
Seja Bem-Vindo. Sharepoint 2007 para Desenvolvedores. Inicio: 19:00 Termino: 22:00

O poder da cobertura das consultas (Cover Indexes) Estratégias de indexação apropriadas (AND, OR, joins, agregações)

Alcance Adapte-se a mundança. Nome, Título

Seja Bem-Vindo. System Center Family. Inicio: 09:00 Termino: 12:00

Uma nova luz na web com Microsoft Silverlight. Leonardo Sobral Consultor de Tecnologia

Uma introdução sobre Frameworks de Desenvolvimento

Computação II Orientação a Objetos

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Patrocinadores. Agenda. Introdução ao BizTalk Server CTS01 O que há de novo no BizTalk Server 2006? Perspectiva Histórica

Grupo de Arquitetos Microsoft Brasil

Grupo de Arquitetos Microsoft Brasil

Centro de Inovação Microsoft-PUCRS

Fase 1: Engenharia de Produto

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Uma nova luz na web com Microsoft Silverlight

Laboratório de Programação I

Uma introdução sobre MDD Model Driven Design e projeto Oslo

CoMDD: uma abordagem colaborativa para auxiliar o desenvolvimento orientado a modelos. David Fernandes Neto

Fundament n os s da platafo f rm r a. NE N T André Menegassi

EMENTA DO CURSO. Tópicos:

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Demo Windows Vista OPK

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Produzindo Valor com Gerenciamento do Ciclo de Vida de Aplicativos Delivering Value with Application Lifecycle Management (ALM)

Formação em JAVA. Subtítulo

Introdução à Plataforma Eclipse. Leandro Daflon

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

PRO201 - Integrando o Visual Studio 2005 Team Edition for Database Professional no Ciclo de Desenvolvimento de Software. Regis Gimenis - Microsoft

Implementando soluções com o SharePoint 2007, Windows Workflow Foundation e InfoPath 2007 (e pouca codificação) Adriano Gomes Microsoft Brasil

Programação em JAVA. Subtítulo

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Informática I. Aula 6. Aula 6-12/09/2007 1

Grupo de Arquitetos Microsoft Brasil

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Linguagens de. Aula 02. Profa Cristiane Koehler

Programação de Computadores - I. Profª Beatriz Profº Israel

Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Aula 03 - Projeto Java Web

08/04/2013. Agenda. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Anexo I Formulário para Proposta

Gerador de Web Services para cadeias de tranformações de documentos XML

Microsoft SQL Server 2005 Performance Dashboard Reports

Curso Técnico em Redes

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

CASE Orientada a Objetos com Múltiplas Visões e Implementação Automática de Sistemas - MVCASE

JAVA Express com Lógica

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Microsoft TechDays Lisboa

Testes de Software. Por quê testar? 3/28/2011. Andrew Diniz da Costa. Manter alta qualidade. Prevenir e encontrar defeitos

Comparando Java e C#

Guia E-Learning Acesso dos estudantes aos cursos de e-learning e ao Sistema de Gerenciamento da Aprendizagem

PENTAHO. História e Apresentação

UFG - Instituto de Informática

Cursos e Treinamentos Profissionais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

Roteiro 2 Conceitos Gerais

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C#

Programação de Computadores II TCC Turma A-1

Programação em Java. Subtítulo

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Dicas para implantação do Autodesk Vault para pequenas e médias empresas

Orientação a Objetos

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

Programa de Unidade Curricular

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Desenvolvimento Web TCC Turma A-1

Introdução à Programação

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Engenharia de Software I: Análise e Projeto de Software Usando UML

O sucesso da WWW. Atualização de Hiperdocumentos. Atualização de Hiperdocumentos. Cuidados. Exemplo. Passos. Motivos :

Sumário. Arquitetura de Software com VSTS...1 Emerson Facunte. Gerenciando Projetos no VSTS com Práticas do PMI Alércio Bressano

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Open Graphics Library OpenGL

Uso do Action₀NET com o PI System da OsiSoft

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

ANEXO 09 PERFIS PROFISSIONAIS MÍNIMOS

Novidades do Movicon Exata Sistemas de Automação

Introdução ao C# . Visão geral do.net Framework

Plano de Trabalho Docente Ensino Técnico

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Transcrição:

São Paulo 05 07 Dezembro DEV301 Entender o que são DSLs (linguagens de domínio específico) Compreensão do conceito de modelagem visual Assimilar o suporte ferramental do VS para a criação de DSLs Criar uma DSL do zero, englobando diferentes etapas Identificar quando (não) usar DSLs Não estourar a hora do almoço Em um arquivo texto, encontrar endereços de email (user@host) e substituir o host por microsoft.com. Criar um programa que manipula e substitui strings? Ferramenta (linguagem) sed do UNIX? sed '/@[^ ]*/s//@microsoft.com/g' < textfile Usar linguagem de expressões regulares embutida em outras linguagens ou via API (C#, Java etc.)? MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 1

Realizar uma consulta em um banco de dados? Renomear todos os arquivos com extensão.htm para a extensão.html? Calcular a média e desvio padrão de uma série de 100 números? Cobol Fortran Lisp C C# (Visual) Basic business processing Device drivers Manipulação de imagens numeric computation Jogos symbolic processing Banco de dados Medicina?????? Protocolos de comunicação Música??? Agentes móveis?????? Bibliotecas de subrotinas / APIs (Application Program Interface) Domain Specific Languages Frameworks orientados a objeto / Frameworks de componentes MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 2

Geralmente são pequenas Micro-languages ou little languages Geralmente são declarativas Não apenas linguagens de programação Mas também linguagens de especificação Muitas DSLs são traduzidas (compiladas) em chamadas a APIs LEX YACC SQL BNF HTML JavaDoc TeX / LaTeX 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! End-user programming XML é DSL? XML Schema DSL Arquivo XML instância ( programa ) feito na DSL <blog nome= FurtaBlog url= www.afurtado.net > <post data= 02/11/2007 >Hello World</post> <post data= 14/11/2007 categoria= jogos >Combinando DSLs e XNA</post> <post data= 30/11/2007 categoria= engenharia de software > Palestra sobre DSL no TechEd Brasil 2007</post> </blog> Construtores de GUI também podem ser vistos como DSLs? Baseada em convenções estruturais MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 3

12/7/2007 Utiliza DSLs visuais para modelar a solução em um domínio Exemplo: linguagem para aplicações de smart phones Qual a real utilidade da modelagem visual? #1 #2 Projetista da linguagem Consumidor da linguagem (DSL author) (desenvolvedor de uma aplicação, DSL user) #3 Usuário final (application user) [Tolvanen 2003] MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 4

using System; using System; using System.Collections; using System.Collections; using System.ComponentModel; using System.ComponentModel; using System.Data; using System.Data; using System.Diagnostics; using System.Diagnostics; using System.Web; using System.Web; using System.Web.Services; using System.Web.Services; using XYZ.GapOrdering; using XYZ.GapOrdering; using XYZ.GapOrdering.ClientLibrary; using XYZ.GapOrdering.ClientLibrary; namespace namespace GapWebService GapWebService { { /// /// <summary> <summary> /// /// Summary Summary description description for for Service1. Service1. /// /// </summary> </summary> public public class class GapService GapService : : System.Web.Services.WebService System.Web.Services.WebService...... 12/7/2007 Domain- Specific Interpeter [Tolvanen 2003] [Tolvanen 2003] Vantagens: Soluções no idioma e no nível de abstração do domínio do problema Experts no domínio podem entender, modificar, validar e até fazer programas Programas concisos, auto-documentados Validação / otimização no nível do domínio Produtividade Conservam e reusam conhecimento do domínio Geração (de código), validadores, domain-specific API comunicação abstração menos código rastreabilidade automação Desvantagens: Custo de projeto, implementação e manutenção da DSL Custo de treinamento de programadores da DSL Dificuldade na definição do escopo da DSL Dificuldade em balancear construtores de linguagens de programação com especificidades do domínio Possível perda de performance 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 MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 5

12/7/2007 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) Supported Authoring Editions of Visual Studio 2005 Visual Studio 2005 Professional Edition Visual Studio 2005 Team Edition for Software Architects Visual Studio 2005 Team Edition for Software Developers Visual Studio 2005 Team Edition for Software Testers Visual Studio 2005 Team Suite Supported Deployment Editions of Visual Studio 2005 Visual Studio 2005 Standard Edition Visual Studio 2005 Professional Edition Visual Studio 2005 Team Edition for Software Architects Visual Studio 2005 Team Edition for Software Developers Visual Studio 2005 Team Edition for Software Testers Visual Studio 2005 Team Suite DSLs para modelagem de jogos de aventura Elaborado por alunos de Projeto de Compiladores, UFPE DSLs para especificar o interior de um apartamento Elaborado por alunos de Tópicos Avançados em Linguagens Computacionais, UFPE MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 6

12/7/2007 Casos de uso Diagrama de classes Componentes Fluxo de atividades Árvore Genealógica MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 7

Objetivo Criar uma DSL visual para a modelagem e construção automática de jogos de pergunta e resposta (quiz games) Conceitos do domínio podem ser arrastados da Toolbox Aos poucos, a DSL visual é construída... Propriedades são adicionadas a conceitos Relacionamentos entre conceitos são criados A janela DSL Explorer permite criar novos tipos de dados MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 8

Da Toolbox são adicionadas ao diagrama formas gráficas (imagens, compartimentos, etc.) Mapeamento da sintaxe para os conceitos também é realizado Decoradores textuais e gráficos podem ser associados às formas gráficas, através da janela DSL Details 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 MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 9

Código que consome o framework é gerado Código próprio do desenvolvedor é implementado em classes parciais Serialização Deployment Customização / extensão em vários níveis: do mais fácil ao mais poderoso Manutenção Construção Debugging Gestão DSL Teste Rastrear Defeitos Implantação Controle de Versão Simulação MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 10

DSLs podem aumentar significativamente a produtividade em projetos de um mesmo domínio (5x, 10x) Language workbenches como o VSTS DSL Tools facilitam e suportam o processo Mas é preciso avaliar bem o retorno do investimento em criar uma DSL (N projetos em um mesmo domínio) Fábricas de software, DSLs, etc., são um meio, jamais um fim. [...] a good programmer in these times does not just write programs. [...] a good programmer does language design, though not from scratch, but building on the frame of a base language. Guy Steele Jr., Growing a language OOPSLA, 1998 Sessões Técnicas e Mesas Redondas ARQ304 - Software Factories, 07/12/2007 17:00-18:15 Compareça ao Hands on Lab (HOL) Participe da sessão Ask the Experts (dia 06) e Community Lounge para falar com os palestrantes após as apresentações Furtablog software (engineering) + game (development) + other http://www.afurtado.net Projeto SharpLudus http://www.cin.ufpe.br/~sharpludus Microsoft DSL Tools http://msdn.microsoft.com/vstudio/dsltools/ Language Workbenches: The Killer-App for Domain Specific Languages? http://www.martinfowler.com/articles/languageworkbench.html Domain-Specific Languages: An Annotated Bibliography http://homepages.cwi.nl/~arie/papers/dslbib/ Microsoft Developer Network (MSDN) (Webcasts, Blogs, Chats, Eventos Presenciais) http://microsoft.com/brasil/msdn Microsoft Technet (Webcasts, Blogs, Chats, Eventos Presenciais) http://microsoft.com/brasil/technet Microsoft Learning e Certificação www.mostrequevocesabe.com Trial Software e Virtual Labs http://www.microsoft.com/technet/downloads/trials/default.mspx MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 11

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 12