O EMF Eclipse Modeling Framework. Pasteur Ottoni de Miranda Junior



Documentos relacionados
EMF. Eclipse Modeling Framework. José G. de Souza Júnior. direção: Dr. Denivaldo Lopes

UFG - Instituto de Informática

HIBERNATE EM APLICAÇÃO JAVA WEB

Tópicos em Engenharia de Computação

Especificação do 3º Trabalho

Introdução à JPA-Java Persistence API

UFG - Instituto de Informática

Orientação a Objetos com Java

Orientação a Objetos

Computação II Orientação a Objetos

Prática em Laboratório N.01 Criando um Serviço Web via Console

Especificação do Trabalho

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

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

Começando com Ruby on

Capítulo 04: Persistência com SQLite

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

PROGRAMAÇÃO ORIENTADA A OBJETOS

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate


Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Construindo portais com Plone

Resolvendo objeto-relacional impedance mismatch com hibernate

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Manual do usuário. v1.0

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

4 Plano de Recuperação

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

1. Visual Paradigm for UML

NOVIDADES DO JAVA PARA PROGRAMADORES C

Tutorial GMF (Graphical Modeling Framework)

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Persistência de dados com JPA. Hélder Antero Amaral Nunes

2 Geração Dinâmica de Conteúdo e Templates de Composição

Criando uma agenda simples com NetBeans 6.5

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

3 SCS: Sistema de Componentes de Software

CAPÍTULO 35 Como utilizar os componentes ColdFusion

Associação Carioca de Ensino Superior Centro Universitário Carioca

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Demonstrativo de Informações Previdenciárias e Repasses

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Orientação a Objetos

Programação Orientada a Objetos. Encapsulamento

Documento de Projeto de Sistema

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Frameworks. Pasteur Ottoni de Miranda Junior

REFLEXÃO EM JAVA. INVERSÃO DE DEPENDÊNCIA FACTORY METHODS FACTORY CLASSES IoC, CONTAINERS e BEANS SPRING PARTE III

AULA 14 Plugin TerraEdit

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

3 Classes e instanciação de objectos (em Java)

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

Lógica de Programação

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

ARQUITETURAS DE GERENCIAMENTO. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

2 a Lista de Exercícios

CoTeia. Marco Aurélio Graciotto Silva

AULA 2 Planos, Vistas e Temas

TRBOnet MDC Console. Manual de Operação

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

MANUAL DO USUÁRIO. TOOLBOX SIA.

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Questões de Concursos Públicos sobre Orientação a Objetos e UML

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Sistemas Operacionais

Programa <AssinadorRS>

Análise de Ponto de Função

Sumário. Uma visão mais clara da UML

UML Aspectos de projetos em Diagramas de classes

Cenários do CEL. Acessar ao sistema

Disciplina de Banco de Dados Parte V

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

2 Diagrama de Caso de Uso

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Sistema de Recursos Humanos

1. NOVIDADES DO NÚMERO ÚNICO DE PROCESSO. 1.1 Resolução nº 65 do CNJ. 1.2 Conversão do Número do Processo. 1.3 Novos ícones

de teste funcionais utilizando diagramas de sequência em UML

ANDROID APPLICATION PROJECT

AULA 2 Planos, Vistas e Temas

Dúvidas Freqüentes sobre o OpenOffice Apresentação

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Persistência e Banco de Dados em Jogos Digitais

Internet e Programação Web

Ajuste no campo Placa (TTF_PLACA) na Geração de Check List (MNTA735)

DIAGNÓSTICOS AVANÇADOS. para seu sistema de resfriadores

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Manual do usuário. Softcall Java. versão 1.0.5

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Transcrição:

O EMF Eclipse Modeling Framework Pasteur Ottoni de Miranda Junior

O EMF Eclipse Modeling Framework -é um framework e uma ferramenta para geração de código Java baseada em um modelo estruturado. É uma alterntiva ao MOF. O código pode ser gerado a partir de um documento XMI ou um modelo mdl (Rose), interfaces Java Anotado e ainda esquemas XML. Uma vez criado o modelo, o gerador EMF gera um conjunto de classes de implementação, que podem ser modificadas e editadas. Possui suporte a persistência via XMI. É constituído por dois frameworks fundamentais: O core framework, suporte para criação de classes de implementação e o framework EMF.edit, suporte para edição do modelo. A Figura 1 abaixo exibe a estrutura básica do EMF, denominada ECore e constitui o core framework do mesmo. Repare na semelhança com o MOF, pela existência de estruturas para representação de classes (EClass), atributos (EAtributte), operações (EOperation), pacotes (EPackage), objetos (EObject) dentre outras. Figura 1 Estrutura básica do EMF (ECore) Representação de estruturas no EMF Na Figura 2 temos um exemplo de classe denominada Book, contendo dois atributos, title e pages. 2

Figura 2- Classe Book e seus atributos Essa classe e sua representação em XMI, Java anotado e esquema XML são exibidos nas Figuras 3, 4 e 5. Figura 3 Representação da classe Book em XMI Figura 4 Representação da classe Book em Java anotado 3

Figura 5 Representação da classe Book em XMI O código Java gerado a partir do modelo Para cada classe no modelo, uma interface Java e a classe de implementação respectiva são geradas. Essa interface contém métodos para armazenar (métodos setter como settitle() no exemplo) e recuperar (métodos getter como gettitle() no exemplo) dados: Figura 6 Interface Book gerada Repare que a interface Book estende a classe EObjetc do EMF. Também é gerada a implementação da interface Book, como mostrado abaixo. Repare que os métodos getters e setters são implementados. Figura 7 Implementação da classe Book 4

Repare acima, na implementação dos getters e setters. No setter, método enotify() envia notificações a observadores que possam estar monitorando (listening) o objeto. Quando não há, enotificationrequired() retorna false. Código gerado para estruturas no EMF Referências unidirecionais Na Figura 8 vemos a classe Book e uma associação unidirecional com seu Writer (autor). Repare que são criados os métodos setauthor(writer value) e getwriter() que respectivamente armazenam e recuperam um objeto do tipo Writer. Figura 8 Classe Book e uma associação unidirecional com a classe Writer Relacionamento um para muitos Na Figura 9, vemos que o EMF gera objetos EList (lista de objetos Book) para representação de relacionamentos um para muitos. Repare no código for (iterator... que percorre essa lista de objetos. 5

Figura 9 Representação de relacionamento um para muitos Agregações Como em relacionamentos um para muitos, agregações são implementadas como listas (EList). Figura 10- Implementação de agregações como Elist Enumerações Na Figura 11 abaixo, exibe-se a implementação de enumerações. A classe BookCategory implementa como enumeration algumas categorias de livros, que são atributos dela. Veja na implementação em Java gerada pelo EPF, essas categorias implementadas como atributos. Na classe Book, são gerados os métodos getcategory() e setcategory() que retornam e atribuem categorias de livros. 6

Figura 11- Implementação de enumerações Factories O EPF utiliza o padrão de projeto Factory Method para criar objetos. Veja na Figura 12 a classe LibraryFactory, que contém os factory methods createbook(), createlibrary() e createwriter(). 7

Figura 12 Factory methods para criação de objetos Herança A Figura 13 exibe a implementação gerada pelo EPF, da estrutura de herança. Figura 13-Implementação da herança Modificação do código gerado A tag \@generated indica porções do código que foram geradas pelo EPF. Se removida, como na Figura 14, o código inserido abaixo será mantido. 8

Figura 14 Como modificar código gerado Criar e acessar instâncias Na Figura 14 abaixo, podemos ver no código gerado pelo EPF a criação da instância da fábrica de objetos (objeto Factory) e a criação dos objetos book e writer por meio dos respectivos factory methods (createbook() e createwriter()). 9

Figura 15- Criação de instâncias Persistir instâncias O código exibido na Figura 16 mostra o código gerado pelo EPF para armazenamento persistente de instâncias. Essas instâncias são armazenadas em arquivos XMI, no exemplo, mylibray.xmi (Figura 17). Figura 16-Armazenamento persistente de objetos em arquivo XMI 10

Figura 17- Arquivo XMI gerado para armazenamento de instâncias Carregar instâncias armazenadas em arquivo XMI A Figura 18 mostra como instâncias são recuperadas a partir de arquivos XMI (no exemplo, o arquivo mylbrary.xmi). Figura 18- Recuperando instâncias salvas em arquivo XMI Referência http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.emf.doc/references/overvi ew/emf.html 11