3 Tecnologias Relacionadas

Documentos relacionados
4 Processo de Transformação

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Estudos de Caso Sistema de Sincronização dos Dados Acadêmicos do SAU e do AulaNet

Model Driven Development (MDD)

6 Ferramenta para a Especialização de Mecanismos de Persistência

MAPEAMENTO OBJETO RELACIONAL COM HIBERNATE EM APLICAÇÕES JAVA WEB

ALUNO: RONI FABIO BANASZEWSKI

Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

Prof. Me. Sérgio Carlos Portari Júnior

Introdução à Análise e Projeto de Sistemas

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

4 ALBATROZ : Um ambiente para desenvolvimento de SMA

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

5 QCDTool: Uma Ferramenta para Avaliar a Qualidade do Design em Modelos

Visões Arquiteturais. Visões Arquiteturais

Framework Hibernate/JPA

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA

Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann

Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos

Hibernate Anotations

Rui Carneiro, Rui Pereira, Tiago Orfão

INF1013 MODELAGEM DE SOFTWARE

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

Projeto. Observatório Nacional de Clima e Saúde

Introdução ao Desenvolvimento de

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES

3 Ferramenta Proposta 3.1. Objetivos

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

2 Metodologias para Projetos de Aplicações Hipermidia

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

Técnicas para Reutilização de Software

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Principais conceitos de CORBA

Sérgio Koch Van-Dall

5 Conclusão e trabalhos futuros

3 Uma Arquitetura Distribuída via WEB

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

6. Considerações Finais

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA

Plataformas de Distribuição de Objetos

Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira

Análise e projeto de sistemas

Protótipo de Protocolo de Aplicação para Troca de Documentos da Área Extra Judicial. Acadêmico: Fabrício Bento Orientador: Paulo Fernando da Silva

Model Driven Development (MDD)

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Transformações e mapeamentos da MDA e sua implementação em três ferramentas.

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

Desenvolvimento Dirigido por Modelos: Ferramentas

Transformando Modelos da MDA com o apoio de Componentes de Software

7 Conclusão e Trabalhos Futuros

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Análise de Sistemas. Aula 5

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015

Módulo III Camada de Persistência

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

5 Arquitetura Proposta

MIDDLEWARE PARA A COMUNICAÇÃO DE DADOS ENTRE SISTEMAS DISTRIBUÍDOS COM WS SECURITY. CAIO RENAN HOBUS Orientador: Jhony Alceu Pereira

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

6 Conclusão. 6.1 Contribuições

Arquitetura de Software visão emergente

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

UML (Unified Modelling Language)

Web Presentation Patterns - Controllers

Mapping of Topic Map ISO Norm for

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos

Aumento da complexidade dos sistemas. aumento do nível de abstração

BCD29008 Banco de dados

Barbara Cristina Alves Silveira 1, Thiago Silva-de-Souza 2 INTRODUÇÃO REFERENCIAL TEÓRICO

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

Marcela Mariotti Peres Arquitetura em três camadas Parte 1 [conceito]

ODYSSEY-MDA: UMA ABORDAGEM PARA A TRANSFORMAÇÃO DE MODELOS. Natanael Elias Nascimento Maia

Capítulo 5 Modelação do Sistema 1

Visões Arquiteturais. Arquitetura de Software Thaís Batista

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

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Aula 01 Conceito de Banco de Dados e SGBD

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 12 PROFª BRUNO CALEGARO

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1

QEA Integração entre a ferramenta para desenvolvimento de sistemas web Quellon e o Enterprise Architect

UML. Rodrigo Leite Durães.

PMR3507 Fábrica digital

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Figura 16 Niagara - Visão de grupos de notas.

6. Implementação do MobiWfMS

3 Trabalhos relacionados

BANCO DE DADOS ORIENTADO A OBJETOS

Desenvolvimento de Software Dirigido a Modelos

Opções de persistência

Agenda Atual do Curso. Desenvolvimento Dirigido por Modelos (MDD) Abordagem MDD. Agenda da Aula. Abordagem MDD. Manutenção e Geração

Transcrição:

Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais características e de que maneira elas estão sendo utilizadas no processo. 3.1. Model Driven Architecture (MDA) 3.1.1. Introdução O Model Driven Architecture [MDA] começou da idéia de se separar a especificação das operações de um sistema, dos detalhes de como as mesmas deveriam ser implementadas em uma determinada plataforma. O MDA dá suporte à especificação de sistemas independentes de plataforma e à transformação dos mesmos para uma plataforma específica. Fornecendo, com isso, portabilidade, interoperabilidade e reutilização para os sistemas desenvolvidos segundo este paradigma [MDA]. As principais atividades relativas ao processo definido pela abordagem MDA são as seguintes (figura 16): - Criação do modelo independente da visão computacional; - Transformação do modelo independente da visão computacional em um modelo independente de plataforma; - Transformação do modelo independente de plataforma em um modelo específico para uma plataforma; - Geração de código.

Tecnologias Relacionadas 32 Figura 16 - Model Driven Architecture 3.1.2. CIM (Compution Independent Model) Este é o primeiro modelo que o MDA define; o modelo de mais alto nível de abstração e independente de qualquer visão computacional. Ele não mostra detalhes da estrutura dos sistemas, tendo um papel importante na definição dos requisitos do sistema. O processo proposto nesta dissertação não aborda o modelo CIM, tendo como ponto inicial o modelo PIM. 3.1.3. PIM (Plataform Independent Model) É um modelo com alto nível de abstração e independente de qualquer tecnologia de implementação, mas, diferentemente do CIM, este modelo já possui uma visão computacional. Ele define o sistema de acordo com o negócio, deixando de lado os aspectos relativos à plataforma de implementação.

Tecnologias Relacionadas 33 3.1.4. PSM (Plataform Specific Model) O modelo PSM é o resultado da transformação do modelo PIM configurado (com marcações feitas pelo projetista do PIM). Ele é específico para uma plataforma (por exemplo, Java), e pode também ser mais específico ainda, caso possua um subsistema de persistência para a plataforma em questão. Um PIM pode gerar um ou mais PSMs, de acordo com as plataformas disponíveis. A maioria dos sistemas utilizam, ou no futuro poderão vir a utilizar, mais de uma tecnologia, com isso há a necessidade de se gerar vários modelos PSM, a partir de um único PIM. 3.1.5. Marcações As marcações são definidas pelo projetista no modelo PIM, e são elas que informam, na hora de ocorrer as transformações, o que o desenvolvedor deseja que ocorra com o modelo. Elas podem ser de baixo ou alto nível, podendo gerar modelos PSM mais ou menos específicos. 3.1.6. Transformação do PIM em PSM A transformação é a etapa mais importante de MDA, pois é nela que um modelo PIM dá origem a um ou mais modelos PSM. O PSM gerado está diretamente ligado às marcações feitas pelo desenvolvedor no modelo PIM, podendo haver ainda alguns detalhes a serem configurados durante a transformação em si.

Tecnologias Relacionadas 34 Figura 17 - Transformação do Modelo PIM no Modelo PSM [MDA] Um exemplo seria a geração de um modelo PIM para a plataforma Java, e descendo mais o nível, podendo gerar subsistemas como de persistência, ou de interface já dentro da plataforma Java. 3.1.7. Geração de Código A próxima etapa é a de transformação do modelo PSM em código fonte, onde é possível utilizar ferramentas voltadas para MDA que automatizam essa fase. O processo proposto nessa dissertação não aborda a parte de geração de código, sendo o resultado do mesmo um modelo PSM. 3.2. XML Metadata Interchange (XMI) XMI [XMI] é um formato padrão recomendado pela OMG (Object Management Group), que utiliza a linguagem XML (Extensible Markup Language) [XML] para fazer o intercâmbio de dados, possibilitando o compartilhamento de modelos entre ferramentas de modelagem diferentes. O XMI possibilita a transferência de modelos UML e metamodelos MOF (Meta Objects Facility) [XMI], através do padrão XML DTD (Document Type Definition) [XMI].

Tecnologias Relacionadas 35 O XMI descreve todas as informações de um modelo, incluindo classes, atributos, relacionamentos, heranças e tipos primitivos, entre outros. Ele também descreve toda a parte gráfica do modelo, ou seja, como o mesmo deve ser mostrado em uma ferramenta CASE, envolvendo aspectos como cor, tamanho, altura, largura das classes e tudo o mais relacionado a parte gráfica do modelo. Hoje os fabricantes de ferramentas de projeto e de banco de dados têm adicionado o XMI aos seus produtos, possibilitando assim a troca de informações com outras ferramentas. O XMI é um sistema aberto a qualquer um que queira usufruir da sua capacidade de troca de informações e com isso evitar formatos proprietários. A especificação XMI define uma rigorosa abordagem para geração de uma DTD XML a partir de um metamodelo, e para geração de um documento XML como modelo instanciado do metamodelo. É através do XMI que é feita toda a transformação do modelo PIM no modelo PSM. O PIM é exportado de uma ferramenta CASE como um arquivo XMI, e a ferramenta de apoio utiliza o mesmo para aplicar as transformações. O XMI resultante representa o modelo PSM, que será visualizado após a importação do arquivo por uma ferramenta CASE. 3.3. Reuse Description Language (RDL) Desenvolvida para instanciação de frameworks, a linguagem RDL [Oliveira05] define formalmente as regras de transformações. Os scripts RDL descrevem as possíveis maneiras de instanciação de um framework. A estrutura de um script de instanciação RDL é a mesma encontrada na maioria das linguagens de programação, sendo que o termo Cookbook representa um programa e o termo Recipe uma função. Cada Cookbook necessita ter um Recipe chamado main, que indica o ponto de partida da execução do processo de instanciação. A figura 18 mostra um exemplo dessa estrutura.

Tecnologias Relacionadas 36 Figura 18 - Estrutura de um Script RDL [Oliveira05] É importante observar que o processo de instanciação é totalmente dependente do domínio da aplicação, e a seqüência de regras do script representa o passo a passo do processo de instanciação. No processo proposto nesta dissertação os scripts RDL são utilizados para representar cada transformação possível. O desenvolvedor informa a tecnologia que ele deseja e o sistema cuida de selecionar o arquivo RDL correspondente. Quando os scripts RDL são executados, o processamento das regras contidas no arquivo modificam o arquivo XMI que contém o modelo a ser transformado, normalmente o modelo PIM. Após a execução dos scripts RDL, este arquivo XMI estará atualizado de forma a representar o modelo PSM. A figura 19 a seguir mostra um exemplo de um diagrama de classes contendo uma única classe e a mesma sem atributos e métodos. Esse modelo será a base para efetuarmos algumas transformações utilizando um script RDL. Figura 19 - Exemplo de um Modelo Simples Abaixo, na figura 20, temos o exemplo de um script RDL que tem a finalidade de adicionar uma nova classe, e adicionar na mesma um método e um atributo. Esse script espera também que o modelo contenha uma classe denominada ClasseB, na qual ele irá adicionar um método e um atributo.

Tecnologias Relacionadas 37 Figura 20 - Exemplo de um Script RDL É possível visualizar na figura 21 o novo modelo contendo as transformações definidas no script RDL da figura 20. A classe já existente no mesmo foi transformada através da adição de um método e de um atributo, e uma nova classe também foi adicionada contendo também um método e um atributo. Figura 21 - Modelo Atualizado No processo proposto nesta dissertação, a linguagem RDL será usada para descrever as regras de transformações das tecnologias envolvidas na persistência de objetos. Serão elas as responsáveis pelas transformações nos modelos a serem adaptados. 3.4. Frameworks de Persistência Um framework de persistência tem como objetivo implementar componentes que executam a construção e atualização de objetos em algum mecanismo de persistência de forma transparente, diminuindo, dessa maneira, o impacto causado pela troca do mecanismo de persistência.

Tecnologias Relacionadas 38 3.4.1. Castor O Castor [Castor05] é um framework voltado para a ligação de dados (databinding). Ele foi proposto para ser a ligação entre objetos Java, documentos XML, diretórios LDAP e dados SQL, promovendo mapeamentos entre todas estas estruturas de representação de objetos. A API do Framework Castor específica para a persistência em bancos de dados relacionais é a JDO, uma implementação inspirada no padrão Java Data Objects da Sun. A API provê também integração com ambientes J2EE. A figura 22 a seguir mostra que o conceito central da arquitetura do JDO está em implementar um sistema de cache, onde todo o acesso a banco fica transparente para o desenvolvedor. Esse sistema visa também diminuir o acesso ao banco, deixando o trabalho de quando e como acessar o banco sob a responsabilidade do framework. Figura 22 - Arquitetura do Framework Castor JDO [Castor05]

Tecnologias Relacionadas 39 3.4.2. Hibernate Hibernate [Hibernate] é um mecanismo bem simples e poderoso que permite a persistência de objetos em banco de dados relacionais de maneira transparente e para qualquer tipo de aplicação Java (Web ou baseada em Swing). Sua grande vantagem está em evitar que comandos SQLs sejam misturados com o código da aplicação. Também não há necessidade de se mapear o resultado de suas consultas para os objetos, pois isso é feito automaticamente. Para se utilizar os recursos do Hibernate são necessários seguir 5 passos. São eles [Hibernate]: Criação das tabelas no banco de dados onde os objetos vão persistir; Criação do objeto cujo estado vai ser persistido; Criação de um XML que relaciona as propriedades do objeto aos campos da tabela; Criação de um arquivo contendo as propriedades para que o Hibernate se conecte ao bando de dados; Criação da classe DAO que vai persistir o objeto. A figura 23 mostra todo o trabalho que o framework faz no lugar do desenvolvedor. Desde a gerência do pool de conexões, passando pela tradução dos arquivos XMLs de mapeamento tabela-classe em cláusulas SQL, o manuseamento de dados em cache evitando o acesso desnecessário ao banco, e, por último, as restrições de integridade existentes no banco.

Tecnologias Relacionadas 40 Figura 23 - Exemplo do Funcionamento do Framework Hibernate [Hibernate] 3.4.3. ibatis O ibatis Data Mapper framework [ibatis] foi criado para facilitar o uso de um banco de dados relacional em aplicações Java e.net. Ele encapsula os objetos através de stored procedures ou cláusulas SQL, utilizando arquivos XML para descrevê-los [ibatis]. Ele provê parâmetros tanto no formato de objetos, quanto no de tipos primitivos. Esses parâmetros são utilizados em tempo de execução para montar as stored procedures ou cláusulas SQL. A figura 24, a seguir, dá uma visão geral do funcionamento do framework de persistência ibatis. Nela é possível ver que o mesmo armazena as cláusulas SQL e as stored procedures em arquivos XML, independentes de plataforma. Logo, se houver necessidade de mudar de plataforma, esses arquivos XML não necessitarão ser modificados.

Tecnologias Relacionadas 41 Figura 24 - Visão Geral do Framework ibatis [ibatis] A grande vantagem de se utilizar o framework de persistência ibatis, é que o mesmo trata automaticamente de alguns passos que o desenvolvedor teria que tratar sem ele. São eles: Montar a cláusula SQL ou a stored procedure com as informações dos objetos passados como parâmetro; Executar as mesmas; Montar novos objetos com os dados que retornaram após a execução das mesmas; No lugar dos passos acima, o desenvolvedor só precisa montar o XML que descreve a cláusula SQL ou a stored procedure, de maneira a receber determinados objetos como parâmetro e indicar o que deverá ser retornado após a execução do mesmo. 3.4.4. OJB O Object-Relational Java Bridge [OJB05] é um projeto do grupo Apache [Apache] para prover uma implementação open-source dos padrões de mapeamento de objetos ODMG [ODMG] e JDO [JDO]. Ele permite que objetos sejam manipulados sem a necessidade de implementar alguma interface em especial ou estender uma classe específica. A biblioteca dá suporte a cenários cliente-servidor (aplicações distribuídas) ou standalone, de forma que é possível utilizar a API OJB para persistência de objetos mesmo em ambientes J2EE [J2EE].

Tecnologias Relacionadas 42 O OJB também dá suporte à configuração de esquemas em tempo de execução - geração de tabelas para mapear uma hierarquia de classes ou classes relativas a um conjunto de tabelas -, e implementa uma série de elementos que visam melhorar a performance da Camada de Persistência. A figura 25 mostra as camadas do Framework OJB. Nela é possível ver a interação dos padrões de mapeamento JDO e ODMG com o PersistenceBroker [PB] (kernel do Framework). A camada Object Transaction Manager [OTM] ainda está sendo desenvolvida e terá como principal objetivo, a implementação de uma API de alto nível, contendo as funcionalidades em comum do JDO e ODMG. Figura 25 - Camadas do Framework OJB [OJB05]