Você está na página 1de 36

Daniel

Leite Viana
dlv2@cin.ufpe.br

Orientador: Silvio Meira


February, 2012

Agenda
Introduo Contexto e MoGvao Problema Abordagem Metodologia
Um Mapeamento SistemGco de Estudos sobre Linguagens de Domnio Especco

Prximas etapas

Introduo
Cloud - SoRware como Servio (SaaS)
Distribuio e Consumo

Mudou-se o Desenvolvimento Web


Web 3.0 A Web agora programvel

Aplicaes Web
Maior demanda Necessidade de comparGlhar dados e contedo Integrao

MoGvao
Desenvolvimento de Aplicaes Web requer muito conhecimento tcnico e tecnologias diferentes[1]

A integrao de Aplicaes Web baseada:


Web Services open APIs Web.
[1] Danny M. Groenewegen, Zef Hemel, Lennart C. L. Kats, Eelco Visser. WebDSL: A Domain-Specific Language for Dynamic Web Applications. In Companion to the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2008), pages 779780, ACM, October 2008.

Problema
Por que to diccil integrar Aplicaes Web? Deve-se considerar: APIs Web de diccil aprendizado A maioria dos web sites no fornecem[1]. REST, SOAP, XML-RPC, XML, JSON, POST

Diferentes padres:

[1] Hao Han and Takehiro Tokuda. Towards Flexible and Lightweight Integration of Web Applications by End-User Programming, International Journal of Web Information Systems, Vol.6, No.4, pp.359-373, 2010

Quais so as maiores diculdades no aprendizado de novas APIs?


MarGn P. A eld study of API learning obstacles. Empirical SoRware Engineering 16(6): 703-732 (2011). Estudo de Campo com 440 Desenvolvedores da MicrosoR Maiores Obstculos relatados:
1. Documentao 2. Estrutura da API 3. Conhecimento tcnico (e.g., treinamento prossional) 4. Ambiente tcnico (e.g., ferramentas, infraestrutura) 5. Processo (e.g., falta de tempo, interrupo de colegas, outras prioridades)

Martin P. Robillard, Robert DeLine: A field study of API learning obstacles. Empirical Software Engineering 16(6): 703-732 (2011).

Problema
Trove, Startup de APIs, divulgou uma pesquisa sobre os custos de integrao e manuteno de APIs[1]:

Pobre Documentao Falta de exemplos de cdigo Falta de ambiente de teste Linha entre uso e abuso

[1] Trove, API Integration Pain Survey Results, Available at https://www.yourtrove.com/blog/2011/08/11/api-integration-pain-survey-results/, Accessed in February 2012.

Problema

Programmable Web, Survey Says Facebook API Has Most Headaches and Horror Stories, Available at http://blog.programmableweb.com/ 2011/08/11/survey-says-facebook-api-has-most-headaches-and-horror-stories/, Accessed in February 2012.

Pesquisa
Como podemos

Facilitar o desenvolvimento de aplicaes web integradas? Aumentar produOviade?


9

Abordagem
Linguagens de Domnio Especco (DSL)
Principal ObjeGvo:
Ganhos em expressividade e facilidade de uso.

10

Linguagens de Domnio Especco


"A domain-specic language (DSL) is a small, usual declara:ve, language that oers expressive power focused on a par:cular problem domain
Deursen, A. V., Klint, P., & Visser, J. (2000). Domain-Specific Languages : An Annotated Bibliography *. ACM Sigplan Notices, 35(June), 26-36.

"Domain-specic languages (DSLs) are languages tailored to a specic applica:on domain. They oer substan:al gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of applica:on"
Mernik, M., Heering, J., & Sloane, A. M. (2005). When and how to develop domain-specific languages. ACM Computing Surveys (CSUR), 37(4), 316344. ACM.

Domain-specic language: a computer programming language of limited expressiveness focused on a par:cular domain
Martin Fowler. (2010). Domain-Specific Languages (pp. 0-321).

11

Riscos e Oportunidades
Oportunidades:
DSLs incorpora o conhecimento do domnio DSLs aumenta produOvidade, manuteno, conabilidade e portabilidade. DSL permite o reuso do conhecimento

Riscos:
Os custos de projeto, implementao e manuteno de uma DSL. Os custos de educao dos usurios de DSL.

[1] Deursen, A. V., Klint, P., & Visser, J. (2000). Domain-Specific Languages : An Annotated Bibliography *. ACM Sigplan Notices, 35(June), 26-36.

12

Etapas de Desenvolvimento
1. ANLISE IdenGcao do problema Reunir todo conhecimento relevante
Agrupar conhecimento em noes semnGcas e operaes

Construir compilador

Implementar semnGca

2. IMPLEMENTAO

Projetar DSL que descreve de forma concisa aplicaes no domnio.

3. USO

Escrever programas para todas as aplicaes desejadas e compil-los.

Deursen, A. V., Klint, P., & Visser, J. (2000). Domain-Specific Languages : An Annotated Bibliography *. ACM Sigplan Notices, 35(June), 26-36.

13

Tipos de LDE
Grca vs. Textual Interna vs. Externa

14

Grca vs. Textual [1]


A linguagem deve ser baseada em texto, grca ou ambas? Qualquer coisa que descrita gracamente mais fcil de ser compreendido, correto?

[1] (2011). MD*/DSL Best Practices Update March 2011. Update, (March). Retrieved from http://voelter.de/data/pub/ DSLBestPractices-2011Update.pdf

15

Grca vs. Textual [1]

16

Grca vs. Textual[1]


A linguagem deve ser baseada em texto, grca ou ambas? Qualquer coisa que descrita gracamente mais fcil de ser compreendido, correto?
Editores textuais so muito mais fceis de construir e evoluir do que editores grcos. Editores textuais integram mais facilmente com o cdigo fonte existente das bases disponveis. Claro que, para certos Opos de informaes, uma Abordagem Grca melhor: relaes entre enGdades ou algum Gpo de uxo de dados.

[1] (2011). MD*/DSL Best Practices Update March 2011. Update, (March). Retrieved from http://voelter.de/data/pub/ DSLBestPractices-2011Update.pdf

17

Grca vs. Textual


[1] Kiper, J. D., Auernheimer, B., & Ames, C. K. (1997). Visual Depiction of Decision Statements: What is Best for Programmers and Non-Programmers? Empirical Software Engineering, 2(4), 361379.

Dois experimentos que invesGgam diferenas na compreenso de notaes textuais e grcas para representar declaraes de deciso.

18

Grca vs. Textual


[1] Kiper, J. D., Auernheimer, B., & Ames, C. K. (1997). Visual Depiction of Decision Statements: What is Best for Programmers and Non-Programmers? Empirical Software Engineering, 2(4), 361379.

19

Graphical vs. Textual


[1] Kiper, J. D., Auernheimer, B., & Ames, C. K. (1997). Visual Depiction of Decision Statements: What is Best for Programmers and Non-Programmers? Empirical Software Engineering, 2(4), 361379.

Results: Notao textual so mais fceis de compreender para os programadores e tcnicos por causa da grande quanGdade de experincia que os programadores tm com anotaes textuais em linguagens de programao [1]

20

Abordagem
L i n g u a g e n s d e D o m n i o E s p e c c o X Desenvolvimento Web
Textual Interna DSL
Uma vantagem dessa abordagem que o compilador ou interpretador da linguagem de base reuOlizada na DSL.

Xtext 2.1
Integrao avanada com o Eclipse. So\ware Open Source, fruns de discusso.

Metodologia

Mapeamento SistemOco de Estudos


21

Mapeamento SistemGco de Estudos


"Um mapeamento de estudo fornece um procedimento sistem3co e obje3vo para iden3car a natureza e a extenso dos dados de estudo emprico que esto disponveis para responder a uma par3cular questo de pesquisa.

Budgen, D., Turner, M., Brereton, P., & Kitchenham, B. (2008). Using mapping studies in software engineering. Proceedings of PPIG (Vol. 2008, pp. 195204).

22

Questes de Pesquisa
Principal: 1. Como criar, aplicar e manter Linguagens de Domnio Especco?
RQ1. Quais so os processos, mtodos e/ou tcnicas uGlizadas durante o trabalho com DSLs, ou seja, criao, aplicao, evoluo e extenso de DSLs? RQ2. Quais DSLs foram desenvolvidas e esto disponveis para uso ou descrita em algum Gpo de publicao? Que Gpos de projetos tm usado essas DSLs e por quanto tempo essas DSLs foram usados? RQ3. Que ferramentas so uGlizadas para o desenvolvimento e uso de DSLs e como tais ferramentas apoiam essas aGvidades? RQ4. Como as DSLs existentes so classicadas?

23

Strings
"Domain-specic language OR "Domain-specic modeling language" OR "generaGve programming

24

Critrios de Incluso
Livros, arGgos, relatrios tcnicos, literatura cinzenta. Nenhum ltro de datas/perodo Quando vrios arGgos so relatados como mesmo estudo, apenas o mais recente ser includo.

25

Critrios de Excluso
ArGgos no escritos em ingls. Literatura, disponvel apenas na forma de resumos ou apresentaes em Power Point. ArGgos da imprensa Estudos duplicados. Estudos incompletos. ArGgos que no so diretamente relacionados Cincia da Computao e Engenharia de SoRware.

26

Busca AutomGca Anlise Preliminar


Digital Libraries Source ACM Digital Library Engineering Village IEEE Computer Digital Library Scopus Science Direct Springer Link TOTAL Returned Studies
(Duplicates)

Returned Percentage Studies 260 720 931 490 70 120 10% 28% 36% 19% 3% 5%

Included Excluded 195


In progress In progress In progress In progress In progress

316 989 1203 1497 118 234

65
In progress In progress In progress In progress In progress

4357
1762

2595

27

Busca AutomGca

28

Busca AutomGca Anlise Preliminar (ArGgos/Ano)

29

Busca AutomGca Anlise Preliminar (Autor/ArGgo)

30

Busca Manual Anlise Preliminar


Search completed Returned Studies

SOURCE JOURNALS CONFERENCES

Number

In progress

11 26

7 17

4 9

24 4

31

The next 700 programming languages


Defini a linguagem abstrata iSwim, influenciou especialmente linguagens de programao funcional, tais como Miranda, Haskell e outras sucessoras.

O Projeto de uma linguagem especfica dividida em duas partes independentes: 1. Escolha da escrita dos programas (representao fsica). 2. Escolha das entidades abstratas.
32

Extrao de Dados/Facetas

ID Source Year Title Author InsGtuGon Pub. Type Abstract

1. Domains 2. DSL types, tools, techniques/ methods/processes 3. Research type


ValidaGon Research EvaluaGon Research SoluGon Proposal Philosophical Papers Opinion Papers Experience Papers
33

Peridicos e Conferncias Alvos


CONFERENCES (SPLC) SoRware Product Line Conference (FSE) FoundaGons of soRware engineering MODELS in soRware engineering (GPCE) GeneraGve Programming and Component Engineering JOURNALS Journal of Systems and SoRware Journal of Computer Science and Technology Computer Languages, Systems & Structures ACM TransacGons on Programming Languages and Systems QUALIS B2 B1 A2 B1 DEADLINE 20/02 16/03 19/03 23/04

QUALIS B1 B2 B2 A2

34

Prximas etapas
1. Terminar de ler e ltar ~900 arGgos 2. Desenvolver um implementao da soluo proposta 3. Preparar a documentao da linguagem 4. Denir e implementar o experimento 5. Escrever dissertao, relatrios e arGgos.

35

SMaRT - Social Machines Research Team


hfps://sites.google.com/site/socialmacslab/
UBUNTU UNGAMNTU NGANYE ABANTU "Pessoas so pessoas atravs de outras pessoas
36

Você também pode gostar