{"id":260,"date":"2017-08-22T14:22:41","date_gmt":"2017-08-22T17:22:41","guid":{"rendered":"http:\/\/web.inf.ufpr.br\/didonet\/?page_id=260"},"modified":"2019-09-13T13:10:16","modified_gmt":"2019-09-13T16:10:16","slug":"criacao-de-metamodelos-ecore","status":"publish","type":"page","link":"https:\/\/web.inf.ufpr.br\/didonet\/teaching-disciplinas\/ci765-2017-2\/criacao-de-metamodelos-ecore\/","title":{"rendered":"Cria\u00e7\u00e3o de metamodelos Ecore"},"content":{"rendered":"<p><b>Cria\u00e7\u00e3o de modelos Ecore<\/b><\/p>\n<p>Abaixo h\u00e1 instru\u00e7\u00f5es de como executar o Eclipse com componentes de modelagem nas m\u00e1quinas do laborat\u00f3rio.<\/p>\n<p><b>Execu\u00e7\u00e3o <\/b><\/p>\n<p>Execu\u00e7\u00e3o a partir do seu home:<\/p>\n<p>\/home\/soft\/linux\/eclipsemodeling\/eclipse\/eclipse -vm \/usr\/lib\/jvm\/java-8-oracle\/bin\/<\/p>\n<p>Ajustar os valores das seguintes vari\u00e1veis de ambiente:<\/p>\n<p>export JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/<br \/>\nexport PATH=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/bin\/:$M2:$JAVA_HOME:$\/home\/soft\/eclipsemodeling\/eclipse\/:$PATH<\/p>\n<p><b>Tutoriais<\/b><\/p>\n<p>O objetivo \u00e9 praticar diferentes maneiras de cria\u00e7\u00e3o de modelos e metamodelos no formato Ecore (<a href=\"http:\/\/download.eclipse.org\/modeling\/emf\/emf\/javadoc\/2.6.0\/org\/eclipse\/emf\/ecore\/package-summary.html#details\">link para a especifica\u00e7\u00e3o do Ecore<\/a>).<\/p>\n<p>Neste link <a href=\"http:\/\/www.eclipse.org\/modeling\/emf\/docs\/\">http:\/\/www.eclipse.org\/modeling\/emf\/docs\/<\/a> h\u00e1 um conjunto de material apresentando a plataforma de modelagem baseada em EMF e seus componentes.<\/p>\n<p><b>Tutoriais<\/b><\/p>\n<p>Para a realiza\u00e7\u00e3o dos exerc\u00edcios abaixo, poder\u00e1 ser usado os modelos dos tutoriais, e os modelos abaixo:<\/p>\n<ul>\n<li>Modelo de Blog Online. O blog dever\u00e1 ter as seguintes caracter\u00edsticas: um usu\u00e1rio propriet\u00e1rio e usu\u00e1rios leitores; os usu\u00e1rios dever\u00e3o ter informa\u00e7\u00f5es pessoais e de login; o blog conter\u00e1 artigos, escritos pelo propriet\u00e1rio;<\/li>\n<li>Modelo de Sistema Acad\u00eamico: o sistema dever\u00e1 armazenar informa\u00e7\u00e3o sobre alunos, professores, turmas e notas.<\/li>\n<\/ul>\n<p>H\u00e1 tr\u00eas principais t\u00e9cnicas para cria\u00e7\u00e3o de (meta)modelos Ecore. Estas podem ser praticadas seguindo o guia abaixo.<\/p>\n<p><strong>1) Cria\u00e7\u00e3o de metamodelos de forma manual<\/strong><\/p>\n<p>Os passos para cria\u00e7\u00e3o manual s\u00e3o:<\/p>\n<ul>\n<li>Criar um novo projeto em (New -&gt; General -&gt; Project)<\/li>\n<li>Criar um metamodelo Ecore em (New -&gt; Ecore Model).\n<ul>\n<li>Especificar um nome significativo ao arquivo .ecore.\n<ul>\n<li>Escolher um EPackage como objeto raiz.<\/li>\n<li>O modelo pode ser editado usando o editor padr\u00e3o baseado em \u00e1rvore<\/li>\n<\/ul>\n<\/li>\n<li>Para cria\u00e7\u00e3o de um diagrama de classes, \u00e9 necess\u00e1rio escolher (Initialize Ecore diagram).\n<ul>\n<li>O diagrama pode ser modificado usando o editor visual.<\/li>\n<\/ul>\n<\/li>\n<li>O arquivo .ecore e o arquivo. aird ser\u00e3o armazenados no projeto. Estes poder\u00e3o ser abertos usando um editor de texto para visualizar o c\u00f3digo correspondente.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>2) Cria\u00e7\u00e3o de metamodelos e modelos por meio de gera\u00e7\u00e3o de c\u00f3digo<\/strong><\/p>\n<p>Tutorial sobre gera\u00e7\u00e3o de c\u00f3digo de modelagem EMF:<br \/>\n<a href=\"http:\/\/www.vogella.com\/tutorials\/EclipseEMF\/article.html\">http:\/\/www.vogella.com\/tutorials\/EclipseEMF\/article.html<\/a><br \/>\nTamb\u00e9m \u00e9 poss\u00edvel instanciar o projeto &#8220;Extended Library Model Example&#8221;<\/p>\n<p><strong>3) Cria\u00e7\u00e3o de metamodelos e modelos programaticamente,<\/strong> isto \u00e9, usando diretamente a API de manipula\u00e7\u00e3o de modelos do EMF.<\/p>\n<p>Tutorial sobre o uso da API din\u00e2mica do EMF<a href=\"http:\/\/www.ibm.com\/developerworks\/library\/os-eclipse-dynamicemf\/\">:<br \/>\nhttps:\/\/www.ibm.com\/developerworks\/library\/os-eclipse-dynamicemf\/<\/a><\/p>\n<p><b>Inclus\u00e3o das bibliotecas do EMF<\/b> : para usar a API do EMF, \u00e9 necess\u00e1rio incluir umas bibliotecas no caminho de compila\u00e7\u00e3o do projeto. No menu contextual do projeto: Build Path-&gt;Configure Build Path<\/p>\n<p><strong>Erros comuns e solu\u00e7\u00f5es<\/strong><\/p>\n<p>Em algumas m\u00e1quinas dos laborat\u00f3rios, os diferentes caminhos n\u00e3o est\u00e3o especificados corretamente, causando erro nos projetos.<\/p>\n<ul>\n<li><strong>Erro de compila\u00e7\u00e3o no execut\u00e1veis gerados<\/strong>: no tab das bibliotecas, pode ser necess\u00e1rio incluir os seguintes JARs externos da pasta \/home\/soft\/linux\/eclipsemodeling\/eclipse\/.p2\/pool\/plugins\/:\n<ul>\n<li>org.eclipse.emf.ecore.xmi*.jar<\/li>\n<li>org.eclipse.emf.ecore_*.jar<\/li>\n<li>org.eclipse.emf.common_*.jar<\/li>\n<\/ul>\n<\/li>\n<li><strong>Erro no arquivo MANIFEST.MF, com bundle <em>org.eclipse.core.runtime<\/em>: <\/strong>no menu &#8220;<em>Preferences&#8221;, &#8220;Target platform&#8221;, <\/em>selecionar &#8220;Running Platform&#8221;-&gt;&#8221;Edit&#8221; -&gt; &#8220;${eclipse_home}&#8221; -&gt; &#8220;Edit&#8221;, e marcar a op\u00e7\u00e3o &#8220;This install uses the default configuration area&#8221;.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cria\u00e7\u00e3o de modelos Ecore Abaixo h\u00e1 instru\u00e7\u00f5es de como executar o Eclipse com componentes de modelagem nas m\u00e1quinas do laborat\u00f3rio. Execu\u00e7\u00e3o Execu\u00e7\u00e3o a partir do seu home: \/home\/soft\/linux\/eclipsemodeling\/eclipse\/eclipse -vm \/usr\/lib\/jvm\/java-8-oracle\/bin\/ Ajustar os valores das seguintes vari\u00e1veis de ambiente: export JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/ export PATH=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/bin\/:$M2:$JAVA_HOME:$\/home\/soft\/eclipsemodeling\/eclipse\/:$PATH Tutoriais O objetivo \u00e9 praticar diferentes maneiras de cria\u00e7\u00e3o de modelos e metamodelos&hellip;<\/p>\n","protected":false},"author":21,"featured_media":0,"parent":222,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-260","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":10,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/260\/revisions"}],"predecessor-version":[{"id":1043,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/260\/revisions\/1043"}],"up":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/222"}],"wp:attachment":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/media?parent=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}