Minicurso de Eclipse para o
Desenvolvimento de Plugins
Gabriel Bronzatti Moro
gabrielbronzattimoro.es@gmail.com
Bacharel e...
Parte I
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Plataforma Eclipse
➔ O que é?
É um ambiente que fornece recursos da sua arquitetura
para a construção de plugins.
Plataforma Eclipse
Plataforma Eclipse
Ambiente
principal da
plataforma,
fornece
todos os
recursos.
Plataforma Eclipse
Biblioteca de
interface gráfica da
plataforma Eclipse.
Plataforma Eclipse
Conjunto de
ferramentas de
interface gráfica da
plataforma.
Plataforma Eclipse
Espaço de trabalho
do usuário, sistema
de diretório que
contém seus
arquivos.
Plataforma Eclipse
Recurso de manual
de ajuda ao usuário.
Plataforma Eclipse
Recurso
oferecido pela
plataforma para
versionamento
de itens do
workspace do
usuário.
Plataforma Eclipse
Componente da
plataforma
utilizado para
acionar os plugins
do ambiente e
interpretar seus
arquivos de
c...
Plataforma Eclipse
O que é um
plugin?
O que é um
plugin?
O que é um
plugin?
Plugin
➔ O que é?
É uma parte de software que
utiliza recursos de um ambiente
software para sua execução.
Arquitetura de um Plugin Eclipse
Arquitetura de um Plugin Eclipse
Arquitetura de um Plugin Eclipse
Define as bibliotecas
utilizadas pelo plugin
(suas dependências).
Arquitetura de um Plugin Eclipse
Define as informações
necessárias para que o
plugin possa ser
executado.
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Ambiente de Desenvolvimento de Plugin
➔ Pré-Requisitos:
- JDK 8:
http://www.oracle.
com/technetwork/java/javase/downloads/...
Instalando o Eclipse Mars
Instalando o Eclipse Mars
Instalando o E4 Tools
Instalando o E4 Tools
Instalando o E4 Tools
Instalando o E4 Tools
Instalando o WindowBuilder
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Conhecendo o Primeiro Template de Plugin
Se você quiser
criar um
aplicativo
plugin marque
YES, nesse
exemplo
vamos criar
apenas um
plugin
componente.
O assistente
de criação
disponibiliza
templates
para criar o
seu plugin.
Extensões
indicam
recursos
utilizados da
platafor...
Arquivo responsável por definir as
configurações necessárias para que
o ambiente Eclipse possa executá-lo.
Dependências (b...
plugin.xml
plugin.xml
Execute o plugin por aqui:
Resultado da Execução
plugin.xml
Dependências
utilizadas
pelo plugin.
plugin.xml
Extensões é
quando um plugin
utiliza a
funcionalidade de
outro plguin.
Testem outros templates...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Eclipse Rich Client Application (RCP)
➔ O que é?
É uma plataforma para o
desenvolvimento de aplicações
plugins.
Essas apli...
Primeiro Projeto em Eclipse RCP
O OSGI
fornece
componentes
para que a
aplicação
possa ser
executada
independente
da plataforma
Eclipse, como
executável.
Através dele é possível projetar quais recursos de
interface gráfica que serão utilizados. Esses recursos
podem ser: menus...
Investigue um pouco sobre esses arquivos:
1. Application.e4xmi
2. PrimeiroProjetoEmRCP.product
Executando nosso primeiro projeto RCP:
Executando nosso primeiro projeto RCP:
Executando nosso primeiro projeto RCP:
Continuação do Primeiro Projeto em RCP
➔ Problema Alvo:
Um professor de matemática precisa de
uma ferramenta de software q...
Primeiro Passo
Vamos construir a interface gráfica do nosso software, para isso vamos
utilizar o plugin WindowBuilder...
O Arquivo
SimplePart define
aquela interface que
visualizamos quando
executamos o nosso
projeto.
Agora vamos abrir
esse ar...
Se caso ocorrer algum erro, vocês atualizem o ambiente em
Help-> Check for Updates e instalem as dependências
Utilizem a
paleta de
elementos
para chegar
a essa
interface...
Vamos criar uma
classe
responsável para
calcular a área
do nosso
quadrado.
Sabemos que a
área de um
quadrado pode
ser calc...
Vamos criar
agora o código
para o evento
do nosso
botão…
Basta adicionar
esse trecho de
código em nossa
classe
SamplePart.
Nosso primeiro resultado…
Tente você agora, você pode
consultar mais fórmulas, vamos
ver…
Link:
http://acessibilidade.bent...
Primeiro Projeto em Eclipse RCP
https://github.com/tido4410/pluginExemploMinicursoEclipse.git
Primeiro Projeto em Eclipse RCP
Vamos agora
exportar um
executável do
nosso software...
Primeiro Projeto em Eclipse RCP
Primeiro Projeto em Eclipse RCP
https://www.sendspace.com/file/dry8n1
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Roteiro
1. Plataforma Eclipse
2. Ambiente de Desenvolvimento de Plugin
3. Conhecendo o Primeiro Template de Plugin
4. Prim...
Links Úteis
http://www.vogella.com
http://www.eclipse.org/documentation/
http://www.ibm.
com/developerworks/br/library/os-...
Parte II
Evolução da Programa
● Programação Assembler - x86
● Programação Estruturada - Pascal, C
● Programação Orientada a Objetos...
Modelos
● Até agora, a programação é sempre o centro das atenções..
● Como em outras obras de engenharia .. precisamos ele...
Model-Driven Engineering
● MDE ou Engenharia de Software Dirigida a Modelos é o “novo”
enfoque da área de ES.
● Utilização...
Aplicações MDE
● Model-Driven Development (MDD)
● Engenharia Reversa
● Software Process Engineering (SPE)
● Domain Specifi...
Domain Specific Languages (DSL)
● Desenvolvimento de linguagens visuais e textuais
Domain Specific Languages (DSL)
● Modelos gráficos, como UML, também podem ser representados
de forma textual.
Domain Specific Languages (DSL)
● DSL classificasse da seguinte forma:
○ Representação
■ Visual
■ Textual
○ Implementação
...
Domain Specific Languages (DSL)
● DSL textuais Internos:
○ Usam a infra-estrutura de uma linguagem de programação
existent...
Domain Specific Languages (DSL)
● DSL textuais externos:
○ Não utilizam como base nenhuma linguagem de programação
já exis...
Domain Specific Languages (DSL)
● DSL visuais internos:
○ Muitos problemas de engenharia de software são analisados e
inte...
Domain Specific Languages (DSL)
● DSL visuais externos:
○ Linguagens visuais são mais fáceis de analisar do que a
textual....
Ferramentas de Desenvolvimento de
DSL
● Para apoiar as fases de desenvolvimento de um DSL, precisamos
de ferramentas para ...
Ferramentas de Desenvolvimento de
DSL
● Eclipse: Editor Textual
○ Eclipse é um ambiente de programação para Java, embora
t...
Ferramentas de Desenvolvimento de
DSL
● Eclipse: Editor Visual
○ Eclipse permite trabalhar com modelos visuais baseados em...
E como podemos
desenvolver DSLs
usando MDE?
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um
formato de representa...
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um
formato de representa...
Desenvolvimento DSL com enfoque MDE
Projeto do Metamodelo:
● Metamodelagem é a análise, concepção e construção da meta
nec...
Desenvolvimento DSL com enfoque MDE
Projeto do Metamodelo:
● O objetivo é definir os conceitos e relações do domínio do
pr...
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um
formato de representa...
Desenvolvimento DSL com enfoque MDE
Desenvolvimento de uma forma de representação:
● Como irá ser representado os elemento...
Desenvolvimento DSL com enfoque MDE
Desenvolvimento de uma forma de representação:
● Tem que se definir a sintaxe concreta...
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um
formato de representa...
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:
● DSLs são projetados para preencher uma necessidade e
aut...
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:
● As mudanças permitem ‘evoluir’ os modelos:
○ Modelo a Mo...
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:
● As mudanças permitem ‘evoluir’ os modelos:
○ Modelo a a ...
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um
formato de representa...
Desenvolvimento DSL com enfoque MDE
Construção do editor:
● Precisa-se de uma abordagem integrada que nos permita fazer
mo...
Desenvolvimento DSL com enfoque MDE
Construção do editor:
● Como podemos fazer uso de uma DSL sem levar em consideração
o ...
Conhecendo o GMF e colocando a mão
na massa..
Graphical Modeling Framework (GMF)
➔ O que é?
É um plugin que permite a construção de editores
gráficos de modelagem para ...
Graphical Modeling Framework
Graphical Modeling Framework
Depois da
instalação,
o Eclipse
irá reiniciar
o
ambiente...
Primeiro Projeto em GMF
Continuação do Primeiro Projeto em RCP
➔ Problema Alvo:
Um professor de computação quer mostrar
aos seus alunos o princípi...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
O Dashboard orienta a construção do
nosso editor de modelagem...
Primeiro Projeto em GMF
1º Passo: vamos criar nosso ecore
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Selecione o item que está
em baixo do platform://res..
E abra a aba Properties do
Eclipse, para de...
Primeiro Projeto em GMF
Aqui criamos
um EClass e
atribuimos a ele
um nome.
Primeiro Projeto em GMF
Em nosso
projeto,
precisamos de
três EClass...
Primeiro Projeto em GMF
Um EReference define um tipo de
relacionamento… A propriedade
Containment define se esse é uma
agr...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Um EAttribute define um tipo de atributo
que o nó do diagrama irá conter…
Primeiro Projeto em GMF
Vamos gerar uma representação gráfica
do nosso ecore...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Agora já temos o código base do nosso
editor de modelagem...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Nó
Relacionamento
Primeiro Projeto em GMF
Aqui definimos
a paleta de
elementos
gráficos do
nosso editor.
Primeiro Projeto em GMF
Vocês podem criar no paint
ícones para a palieta. Essas
imagens devem estar em
formato ‘GIF’ e ela...
Primeiro Projeto em GMF
Primeiramente
apague os
itens Default
Image dos
menus e
acrescente os
Bundles.
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Façam a mesma
coisa para o
Creation Tool
Edge, só que
aponte o camingo
do ícone
respectivo.
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Atributo
Primeiro Projeto em GMF
Vamos agora apagar o
Rectangle NodeFigure, pois é
uma elipse o nó do nosso grafo.
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Dentro do Polygon
Decoration, vamos
ter que definir três
Template Points,
para moldar a ponta
da n...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Aqui está nosso
editor, vamos
agora executar
ele...
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
Primeiro Projeto em GMF
https://github.com/tido4410/pluginExemploMinicursoEclipse.git
Primeiro Projeto em GMF
Obrigado pela atenção de todos!
Gabriel Moro
gabrielbronzattimoro.es@gmail.com
Rafhael Cunha
rafhael.cunha@iffarroupilha.e...
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Desenvolvimento de Plugins para Eclipse - SAADS 2015
Próximos SlideShares
Carregando em…5
×

Desenvolvimento de Plugins para Eclipse - SAADS 2015

226 visualizações

Publicada em

Esse minicurso foi ministrado na semana acadêmica do curso de Análise e Desenvolvimento de Sistemas no Instituto Federal Farroupilha na cidade de Alegrete

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
226
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento de Plugins para Eclipse - SAADS 2015

  1. 1. Minicurso de Eclipse para o Desenvolvimento de Plugins Gabriel Bronzatti Moro gabrielbronzattimoro.es@gmail.com Bacharel em Engenharia de Software Rafhael Rodrigues Cunha rafhael.cunha@iffarroupilha.edu.br Bacharel em Engenharia de Software Mestrando em Engenharia de Computação V Semana Acadêmica de ADS Análise e Desenvolvimento de Sistemas
  2. 2. Parte I
  3. 3. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  4. 4. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  5. 5. Plataforma Eclipse ➔ O que é? É um ambiente que fornece recursos da sua arquitetura para a construção de plugins.
  6. 6. Plataforma Eclipse
  7. 7. Plataforma Eclipse Ambiente principal da plataforma, fornece todos os recursos.
  8. 8. Plataforma Eclipse Biblioteca de interface gráfica da plataforma Eclipse.
  9. 9. Plataforma Eclipse Conjunto de ferramentas de interface gráfica da plataforma.
  10. 10. Plataforma Eclipse Espaço de trabalho do usuário, sistema de diretório que contém seus arquivos.
  11. 11. Plataforma Eclipse Recurso de manual de ajuda ao usuário.
  12. 12. Plataforma Eclipse Recurso oferecido pela plataforma para versionamento de itens do workspace do usuário.
  13. 13. Plataforma Eclipse Componente da plataforma utilizado para acionar os plugins do ambiente e interpretar seus arquivos de configuração
  14. 14. Plataforma Eclipse O que é um plugin? O que é um plugin? O que é um plugin?
  15. 15. Plugin ➔ O que é? É uma parte de software que utiliza recursos de um ambiente software para sua execução.
  16. 16. Arquitetura de um Plugin Eclipse
  17. 17. Arquitetura de um Plugin Eclipse
  18. 18. Arquitetura de um Plugin Eclipse Define as bibliotecas utilizadas pelo plugin (suas dependências).
  19. 19. Arquitetura de um Plugin Eclipse Define as informações necessárias para que o plugin possa ser executado.
  20. 20. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  21. 21. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  22. 22. Ambiente de Desenvolvimento de Plugin ➔ Pré-Requisitos: - JDK 8: http://www.oracle. com/technetwork/java/javase/downloads/jdk8-downloads- 2133151.html - Eclipse Mars: https://eclipse.org/mars/ - Rich Client Application Eclipse - WindowBuilder
  23. 23. Instalando o Eclipse Mars
  24. 24. Instalando o Eclipse Mars
  25. 25. Instalando o E4 Tools
  26. 26. Instalando o E4 Tools
  27. 27. Instalando o E4 Tools
  28. 28. Instalando o E4 Tools
  29. 29. Instalando o WindowBuilder
  30. 30. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  31. 31. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  32. 32. Conhecendo o Primeiro Template de Plugin
  33. 33. Se você quiser criar um aplicativo plugin marque YES, nesse exemplo vamos criar apenas um plugin componente.
  34. 34. O assistente de criação disponibiliza templates para criar o seu plugin. Extensões indicam recursos utilizados da plataforma Eclipse.
  35. 35. Arquivo responsável por definir as configurações necessárias para que o ambiente Eclipse possa executá-lo. Dependências (bibliotecas) que o Plugin utiliza. Primeira instância de execução do plugin, define também seu ciclo de vida. Define um treinador (handler), abstração de listener.
  36. 36. plugin.xml
  37. 37. plugin.xml Execute o plugin por aqui:
  38. 38. Resultado da Execução
  39. 39. plugin.xml Dependências utilizadas pelo plugin.
  40. 40. plugin.xml Extensões é quando um plugin utiliza a funcionalidade de outro plguin.
  41. 41. Testem outros templates...
  42. 42. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  43. 43. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  44. 44. Eclipse Rich Client Application (RCP) ➔ O que é? É uma plataforma para o desenvolvimento de aplicações plugins. Essas aplicações podem ser utilizadas de duas formas: ● acopladas na IDE Eclipse; ● como executável, o qual utilizará os recursos empacotados da IDE Eclipse.
  45. 45. Primeiro Projeto em Eclipse RCP
  46. 46. O OSGI fornece componentes para que a aplicação possa ser executada independente da plataforma Eclipse, como executável.
  47. 47. Através dele é possível projetar quais recursos de interface gráfica que serão utilizados. Esses recursos podem ser: menus, painéis, controladores, assistentes, botões e o layout base das interfaces. Dependências (bibliotecas) que o Plugin utiliza. Define as propriedades básicas do plugin. Estilo padrão para plugins Eclipse plugin.xml é o mesmo que o anterior
  48. 48. Investigue um pouco sobre esses arquivos: 1. Application.e4xmi 2. PrimeiroProjetoEmRCP.product
  49. 49. Executando nosso primeiro projeto RCP:
  50. 50. Executando nosso primeiro projeto RCP:
  51. 51. Executando nosso primeiro projeto RCP:
  52. 52. Continuação do Primeiro Projeto em RCP ➔ Problema Alvo: Um professor de matemática precisa de uma ferramenta de software que calcule a área total das principais figuras (quadrado, triângulo, retângulo, losângulo, etc) da geometria plana. Esse software será utilizado por alunos e deve ter uma interface simples, para que eles possam através da inserção de parâmetros calcular seus exercícios de geometria. ➔ Sua Tarefa: Construir um plugin executável para resolver essa problemática.
  53. 53. Primeiro Passo Vamos construir a interface gráfica do nosso software, para isso vamos utilizar o plugin WindowBuilder...
  54. 54. O Arquivo SimplePart define aquela interface que visualizamos quando executamos o nosso projeto. Agora vamos abrir esse arquivo com um editor de interface gráfica...
  55. 55. Se caso ocorrer algum erro, vocês atualizem o ambiente em Help-> Check for Updates e instalem as dependências
  56. 56. Utilizem a paleta de elementos para chegar a essa interface...
  57. 57. Vamos criar uma classe responsável para calcular a área do nosso quadrado. Sabemos que a área de um quadrado pode ser calculada por lado².
  58. 58. Vamos criar agora o código para o evento do nosso botão… Basta adicionar esse trecho de código em nossa classe SamplePart.
  59. 59. Nosso primeiro resultado… Tente você agora, você pode consultar mais fórmulas, vamos ver… Link: http://acessibilidade.bento.ifrs. edu.br/oa-03-html.php
  60. 60. Primeiro Projeto em Eclipse RCP https://github.com/tido4410/pluginExemploMinicursoEclipse.git
  61. 61. Primeiro Projeto em Eclipse RCP Vamos agora exportar um executável do nosso software...
  62. 62. Primeiro Projeto em Eclipse RCP
  63. 63. Primeiro Projeto em Eclipse RCP https://www.sendspace.com/file/dry8n1
  64. 64. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  65. 65. Roteiro 1. Plataforma Eclipse 2. Ambiente de Desenvolvimento de Plugin 3. Conhecendo o Primeiro Template de Plugin 4. Primeiro Projeto em Eclipse Rich Client Application (RCP) 5. Links Úteis
  66. 66. Links Úteis http://www.vogella.com http://www.eclipse.org/documentation/ http://www.ibm. com/developerworks/br/library/os- ecplug/
  67. 67. Parte II
  68. 68. Evolução da Programa ● Programação Assembler - x86 ● Programação Estruturada - Pascal, C ● Programação Orientada a Objetos - C ++, Java ● Componentes de Software - J2EE, .NET ● Orientada a Aspectos - AspectJ, Spring Framework AOP ● Arquiteturas Orientadas a Serviços - WSDL, SOAP
  69. 69. Modelos ● Até agora, a programação é sempre o centro das atenções.. ● Como em outras obras de engenharia .. precisamos elevar o nível de abstração. ● Modelos nos ajudam a construir sistemas mais complexos. ● Modelo: Descrição ou especificação (parte) de um sistema de software a partir de um certo ponto de vista.
  70. 70. Model-Driven Engineering ● MDE ou Engenharia de Software Dirigida a Modelos é o “novo” enfoque da área de ES. ● Utilização de modelos como artefatos de software. ● Pode-se ter editores, otimizadores, validadores e compiladores baseados em modelos. ● objetivo do modelo é facilitar o trabalho e reduzir o tempo de desenvolvimento e o número de erros do software.
  71. 71. Aplicações MDE ● Model-Driven Development (MDD) ● Engenharia Reversa ● Software Process Engineering (SPE) ● Domain Specific Language (DSL) ● Model-Driven Integration (MDI)
  72. 72. Domain Specific Languages (DSL) ● Desenvolvimento de linguagens visuais e textuais
  73. 73. Domain Specific Languages (DSL) ● Modelos gráficos, como UML, também podem ser representados de forma textual.
  74. 74. Domain Specific Languages (DSL) ● DSL classificasse da seguinte forma: ○ Representação ■ Visual ■ Textual ○ Implementação ■ Interno ■ Externo
  75. 75. Domain Specific Languages (DSL) ● DSL textuais Internos: ○ Usam a infra-estrutura de uma linguagem de programação existente. ○ Na maioria dos casos, são implementados como bibliotecas na linguagem de programação. ○ Exemplo: Rails - Construido sobre a base da linguagem Ruby.
  76. 76. Domain Specific Languages (DSL) ● DSL textuais externos: ○ Não utilizam como base nenhuma linguagem de programação já existente. ○ Desenvolvidos a partir do zero. ○ Necessitam ser construídos com os estágios básicos de um compilador. ○ No entanto, não precisam de toda a complexidade envolvida em uma linguagem de uso geral.
  77. 77. Domain Specific Languages (DSL) ● DSL visuais internos: ○ Muitos problemas de engenharia de software são analisados e interpretados utilizando modelos gráficos melhores. ○ UML oferece um mecanismo de extensão (perfis) para personalizar modelos para domínios e plataformas específicas. ○ Os perfils não mudam a semântica da UML, e sim estendêm-a. ○ São implementados usando estereótipos e restrições de definição tag.
  78. 78. Domain Specific Languages (DSL) ● DSL visuais externos: ○ Linguagens visuais são mais fáceis de analisar do que a textual. ○ No entanto, a UML e os perfils baseados nela, não são tão intuitivos para usuários não-técnicos. ○ Portanto, as linguagens gráficas devem ser adequadas ao tipo de modelagem semântica que se pretende resolver. ○ O desenvolvimento desse tipo de linguagem é muitas vezes mais complexo do que um texto.
  79. 79. Ferramentas de Desenvolvimento de DSL ● Para apoiar as fases de desenvolvimento de um DSL, precisamos de ferramentas para nos ajudar neste processo. ● Enfoque Tradicional ○ Flex, BISON, ANTLR, etc. ● Enfoque model-driven ○ Eclipse (Modeling Project) ○ MS Visual Studio (DSL Tools) ○ MetaEdit +, etc
  80. 80. Ferramentas de Desenvolvimento de DSL ● Eclipse: Editor Textual ○ Eclipse é um ambiente de programação para Java, embora tenha de trabalhar com outras extensões de linguagens como PHP, XML, etc. Também permite trabalhar com DSLs criados pelo usuário.
  81. 81. Ferramentas de Desenvolvimento de DSL ● Eclipse: Editor Visual ○ Eclipse permite trabalhar com modelos visuais baseados em UML ou DSLs criadas pelos usuários.
  82. 82. E como podemos desenvolver DSLs usando MDE?
  83. 83. Desenvolvimento DSL com enfoque MDE Construção do Editor Projeto do Metamodelo Desenvolvimento de um formato de representação Geração das Transformações
  84. 84. Desenvolvimento DSL com enfoque MDE Construção do Editor Projeto do Metamodelo Desenvolvimento de um formato de representação Geração das Transformações
  85. 85. Desenvolvimento DSL com enfoque MDE Projeto do Metamodelo: ● Metamodelagem é a análise, concepção e construção da meta necessária para cobrir um certo tipo de problema, bem como as suas regras e restrições. ● Metamodelo: um conjunto de conceitos de domínio para modelar (metaclasses) e as relações entre eles (metaassociações).
  86. 86. Desenvolvimento DSL com enfoque MDE Projeto do Metamodelo: ● O objetivo é definir os conceitos e relações do domínio do problema que queremos abordar através de um diagrama de classes. ● Se define o metamodelo de forma abstrata, independentemente do formato de representação desejado. ● Metamodelos definem a sintaxe abstrata da linguagem a ser utilizada.
  87. 87. Desenvolvimento DSL com enfoque MDE Construção do Editor Projeto do Metamodelo Desenvolvimento de um formato de representação Geração das Transformações
  88. 88. Desenvolvimento DSL com enfoque MDE Desenvolvimento de uma forma de representação: ● Como irá ser representado os elementos do metamodelo? Qual é o formato mais adequado para presentar nosso DSL? ● Qual é o tipo de problema que deseja-se modelar? Quem serão os usuários da linguagem? ● Linguagens visuais são mais fáceis de interpretar, mas as textuais geralmente são mais expressivas.
  89. 89. Desenvolvimento DSL com enfoque MDE Desenvolvimento de uma forma de representação: ● Tem que se definir a sintaxe concreta para a nossa “nova linguagem”: ○ Textual: Baseada em uma gramática (tipo EBNF) ○ Visual: Baseada em um mapeamento entre elementos gráficos e o nosso metamodelo.
  90. 90. Desenvolvimento DSL com enfoque MDE Construção do Editor Projeto do Metamodelo Desenvolvimento de um formato de representação Geração das Transformações
  91. 91. Desenvolvimento DSL com enfoque MDE Geração das Transformações: ● DSLs são projetados para preencher uma necessidade e automatizar tarefas. ● Os modelos criados com a nossa DSL devem ser compilados. ● Motores de processamento MDE serão nossos processadores de linguagem. ● As transformações são definidas por um conjunto de regras.
  92. 92. Desenvolvimento DSL com enfoque MDE Geração das Transformações: ● As mudanças permitem ‘evoluir’ os modelos: ○ Modelo a Modelo (M2M) ■ Mesmo modelo: ● Refatoração ou aplicação de um padrão de projeto ■ Modelo diferente: ● Derivação de um diagrama de classes para um framework J2EE a partir de um modelo E/R.
  93. 93. Desenvolvimento DSL com enfoque MDE Geração das Transformações: ● As mudanças permitem ‘evoluir’ os modelos: ○ Modelo a a texto (M2T) ■ Transformação de um diagrama de classes de um projeto MVC em um conjunto de classes na linguagem Java.
  94. 94. Desenvolvimento DSL com enfoque MDE Construção do Editor Projeto do Metamodelo Desenvolvimento de um formato de representação Geração das Transformações
  95. 95. Desenvolvimento DSL com enfoque MDE Construção do editor: ● Precisa-se de uma abordagem integrada que nos permita fazer modelos, usando o nosso idioma de ambiente. ● Existem diferentes tipos de editores: ○ Editores baseados em árvores ○ Editores visuais ○ Editores textuais
  96. 96. Desenvolvimento DSL com enfoque MDE Construção do editor: ● Como podemos fazer uso de uma DSL sem levar em consideração o formato de representação? ○ Editores baseados em árvores ● Como utilizar nossos DSL visuais? ● Não nos serve somente um programa de desenhos. E processar imagens digitais é um processo complicado.. ● Precisamos de um ambiente de projeto que nos ofereça, entre outros: ○ Paleta de componentes visuais ○ Área de desenho ○ Validação automática de modelos
  97. 97. Conhecendo o GMF e colocando a mão na massa..
  98. 98. Graphical Modeling Framework (GMF) ➔ O que é? É um plugin que permite a construção de editores gráficos de modelagem para a plataforma Eclipse.
  99. 99. Graphical Modeling Framework
  100. 100. Graphical Modeling Framework Depois da instalação, o Eclipse irá reiniciar o ambiente...
  101. 101. Primeiro Projeto em GMF
  102. 102. Continuação do Primeiro Projeto em RCP ➔ Problema Alvo: Um professor de computação quer mostrar aos seus alunos o princípio básico de um grafo orientado. ➔ Sua Tarefa: Construir um editor de modelagem que permita a construção de um diagrama simples de grafo orientado. O qual contém um tipo de nó e um tipo de relacionamento.
  103. 103. Primeiro Projeto em GMF
  104. 104. Primeiro Projeto em GMF
  105. 105. Primeiro Projeto em GMF
  106. 106. Primeiro Projeto em GMF
  107. 107. Primeiro Projeto em GMF O Dashboard orienta a construção do nosso editor de modelagem...
  108. 108. Primeiro Projeto em GMF 1º Passo: vamos criar nosso ecore
  109. 109. Primeiro Projeto em GMF
  110. 110. Primeiro Projeto em GMF Selecione o item que está em baixo do platform://res.. E abra a aba Properties do Eclipse, para definir por ela as propriedades.
  111. 111. Primeiro Projeto em GMF Aqui criamos um EClass e atribuimos a ele um nome.
  112. 112. Primeiro Projeto em GMF Em nosso projeto, precisamos de três EClass...
  113. 113. Primeiro Projeto em GMF Um EReference define um tipo de relacionamento… A propriedade Containment define se esse é uma agregação, já o Upper Bound quando está em -1, define uma multiplicidade para muitos (n).
  114. 114. Primeiro Projeto em GMF
  115. 115. Primeiro Projeto em GMF
  116. 116. Primeiro Projeto em GMF
  117. 117. Primeiro Projeto em GMF Um EAttribute define um tipo de atributo que o nó do diagrama irá conter…
  118. 118. Primeiro Projeto em GMF Vamos gerar uma representação gráfica do nosso ecore...
  119. 119. Primeiro Projeto em GMF
  120. 120. Primeiro Projeto em GMF
  121. 121. Primeiro Projeto em GMF
  122. 122. Primeiro Projeto em GMF
  123. 123. Primeiro Projeto em GMF
  124. 124. Primeiro Projeto em GMF
  125. 125. Primeiro Projeto em GMF
  126. 126. Primeiro Projeto em GMF Agora já temos o código base do nosso editor de modelagem...
  127. 127. Primeiro Projeto em GMF
  128. 128. Primeiro Projeto em GMF
  129. 129. Primeiro Projeto em GMF
  130. 130. Primeiro Projeto em GMF
  131. 131. Primeiro Projeto em GMF Nó Relacionamento
  132. 132. Primeiro Projeto em GMF Aqui definimos a paleta de elementos gráficos do nosso editor.
  133. 133. Primeiro Projeto em GMF Vocês podem criar no paint ícones para a palieta. Essas imagens devem estar em formato ‘GIF’ e elas tem que ter no máximo 16px de largura e altura.
  134. 134. Primeiro Projeto em GMF Primeiramente apague os itens Default Image dos menus e acrescente os Bundles.
  135. 135. Primeiro Projeto em GMF
  136. 136. Primeiro Projeto em GMF
  137. 137. Primeiro Projeto em GMF
  138. 138. Primeiro Projeto em GMF Façam a mesma coisa para o Creation Tool Edge, só que aponte o camingo do ícone respectivo.
  139. 139. Primeiro Projeto em GMF
  140. 140. Primeiro Projeto em GMF
  141. 141. Primeiro Projeto em GMF
  142. 142. Primeiro Projeto em GMF Atributo
  143. 143. Primeiro Projeto em GMF Vamos agora apagar o Rectangle NodeFigure, pois é uma elipse o nó do nosso grafo.
  144. 144. Primeiro Projeto em GMF
  145. 145. Primeiro Projeto em GMF
  146. 146. Primeiro Projeto em GMF
  147. 147. Primeiro Projeto em GMF
  148. 148. Primeiro Projeto em GMF
  149. 149. Primeiro Projeto em GMF
  150. 150. Primeiro Projeto em GMF Dentro do Polygon Decoration, vamos ter que definir três Template Points, para moldar a ponta da nossa seta de relacionamento.
  151. 151. Primeiro Projeto em GMF
  152. 152. Primeiro Projeto em GMF
  153. 153. Primeiro Projeto em GMF
  154. 154. Primeiro Projeto em GMF
  155. 155. Primeiro Projeto em GMF
  156. 156. Primeiro Projeto em GMF
  157. 157. Primeiro Projeto em GMF
  158. 158. Primeiro Projeto em GMF
  159. 159. Primeiro Projeto em GMF
  160. 160. Primeiro Projeto em GMF
  161. 161. Primeiro Projeto em GMF
  162. 162. Primeiro Projeto em GMF
  163. 163. Primeiro Projeto em GMF
  164. 164. Primeiro Projeto em GMF
  165. 165. Primeiro Projeto em GMF
  166. 166. Primeiro Projeto em GMF
  167. 167. Primeiro Projeto em GMF
  168. 168. Primeiro Projeto em GMF Aqui está nosso editor, vamos agora executar ele...
  169. 169. Primeiro Projeto em GMF
  170. 170. Primeiro Projeto em GMF
  171. 171. Primeiro Projeto em GMF
  172. 172. Primeiro Projeto em GMF
  173. 173. Primeiro Projeto em GMF
  174. 174. Primeiro Projeto em GMF
  175. 175. https://github.com/tido4410/pluginExemploMinicursoEclipse.git Primeiro Projeto em GMF
  176. 176. Obrigado pela atenção de todos! Gabriel Moro gabrielbronzattimoro.es@gmail.com Rafhael Cunha rafhael.cunha@iffarroupilha.edu.br

×