Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.

Slides:



Advertisements
Apresentações semelhantes
Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 2 de setembro.
Advertisements

Agentes adaptativos às Normas externas
Engenharia de Software
Framework para desenvolvimento web
Raphael Gatti Thomás Bryan
APSOO Aula 03.
Projeto 1.
Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 28 de outubro.
Projeto de Sistemas de Software
Metodologias Equipe do Curso de ES para SMA
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Mapeamento Objeto Relacional
Reengenharia de Software Caso Prático
Ferramentas CASE ERwin
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Geração de Código.
Engenharia de Software
DIAGRAMA DE COMPONENTES
Engenharia de Software e Sistemas de Informação e Gestão
Projetar Serviços Vítor Braga –
Universidade Federal de Lavras - UFLA
Projeto de Sistemas de Software
Rodrigo Cristiano Silva
Sistemas Especialistas
Gerência de Configuração - GC
Observatório - EPT NÚCLEO DE TECNOLOGIA. Função: Gerar soluções estratégicas através da aplicação e desenvolvimento de ferramentas de TI. A coordenação.
WEB SOLUTIONS 4 U1º SEMINÁRIO Projeto da disciplina Engenharia de Software Empresa: WebSolutions4U Projeto: Cloud University Builder Alunos/Sócios da empresa:
Orientação a Objetos Parte I
Geração de Código aula-12-geração-de-código.pdf.
Sobre notas no Moodle Notas são pontuações atribuídas às avaliações de atividades dos participantes em um curso do Moodle, que são postadas no boletim,
SISTEMAS DISTRIBUIDOS Aula 4
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
A abordagem de banco de dados para gerenciamento de dados
Implementação MVC Pedro Antonino.
O Processo Unificado (UP)
Embedded Software Engineering: The State of the Practice Acadêmicos:
Desenvolvimento de Frameworks e Componentes Baseados em Metadados Eduardo Guerra.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia Bom dia... Vou apresentar o HyperDE, que é o fruto desse.
Padrões de Interação com o Usuário
Trabalho de Engenharia de Software II
Odyssey-MDA: Uma Abordagem para a Transformação de Modelos de Componentes Natanael Maia Ana Paula Blois Cláudia Werner Grupo de Reutilização de Software.
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Desenvolvimento de Software Dirigido a Modelos
SISTEMA PROCESSUAL DIGITAL
Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Natanael Maia Ana Paula Blois Cláudia Werner Grupo de Reutilização de Software Outubro/2005.
Caso de Sucesso: Lockheed Martin Aeronautics  Usou MDA para desenvolver o software de missão modular do F-16. Objetivo:  Obter compatibilidade cross-platform;
MDA – Model Driven Architecture Jean Elder – RARCS (2013-1)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
LINQ e Entity Framework
Modelo de Análise e Projeto
Objetos Distribuídos Frameworks Orientados a Objetos.
Desenvolvimento Global de Software
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Grid Versioning Service (GVS) left | Version Date:
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
CVS – Gerenciamento de Versões
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
MDA na Prática Flávia Durans Pitta Marinho
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Projeto de Arquitetura de Software
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Síntese do Negócio ONTOWEB. Ontoweb – Nova Geração de Ferramenta de Busca Possui comportamento inteligente que auxilia o usuário a organizar e compartilhar.
Transcrição da apresentação:

Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de

Laboratório de Engenharia de Software – PUC-Rio Agenda Motivação; Objetivo; Tecnologias; Trabalhos Relacionados; Processo; Ferramenta de Apoio; Casos de Estudo; Trabalhos Futuros; Bibliografia.

Laboratório de Engenharia de Software – PUC-Rio Motivação Constantes mudanças nos requisitos funcionais e não-funcionais do domínio das aplicações, resultam em possíveis mudanças nos sistemas; Sistemas refeitos ou parcialmente refeitos, ao invés de adaptados; Grande parte do trabalho manual também necessitará ser refeito; O MDA (Model Driven Architecture) foi criado com o intuito de resolver esse tipo de problema. Os sistemas são desenvolvidos de maneira a esperar possíveis mudanças;

Laboratório de Engenharia de Software – PUC-Rio Objetivo Criação de um processo cujo objetivo será ajudar na adaptação dos sistemas a essas possíveis mudanças; Automatizar algumas etapas do desenvolvimento, normalmente feitas de forma manual; As etapas do processo proposto estão diretamente ligadas, as etapas abordadas pelo MDA; O processo foi desenvolvido para mapear mecanismos de persistência, ficando as demais camadas para trabalhos futuros.

Laboratório de Engenharia de Software – PUC-Rio OMG Model Driven Architecture (MDA) Criação de um modelo independentemente de plataforma (PIM); Configuração do modelo PIM através de marcações; Transformação do modelo PIM em um modelo específico para uma plataforma (PSM). PIM – Platform Independent Model PSM – Platform Specifc Model Marcações

Laboratório de Engenharia de Software – PUC-Rio RDL (Reuse Description Language) A linguagem RDL foi criada para mapear os diversos casos possíveis à instanciação de um Framework; Ela funciona na forma de scripts contendo regras para a manipulação de modelos orientados a objetos (criação de classes, atributos, métodos, etc…); Através de uma máquina virtual RDL é possível gerar o resultado desses scripts no formato de tags XMI.

Laboratório de Engenharia de Software – PUC-Rio Por que utilizar RDL? É uma linguagem clara e de fácil entendimento; As transformações utilizadas no processo são bem definidas; Elas ocorrem a nível de modelos (alteração de classes, atributos, métodos, etc…); A forma de obter e alterar essas informações nos modelos é feita através de tags XMI; Utilizando uma máquina virtual RDL é possível transformar as regras da linguagem RDL em tags XMI.

Laboratório de Engenharia de Software – PUC-Rio Mecanismos de Persistência O processo proposto tem como objetivo adaptar mecanismos de persistência; Podendo ser os mesmos, Frameworks de Persistência. (Hibernate, Castor, entre outros); E Patterns. (DAO, Facade, entre outros);

Laboratório de Engenharia de Software – PUC-Rio Base de Conhecimento A base de conhecimento é um repositório que possui algumas informações necessárias para o mapeamento das transformações entre os modelos. Ela é composta por: –Camadas: Divisões lógicas dentro do modelo. As camadas são as responsáveis por mapear as configurações do modelo. –Tags: Identificam as tecnologias disponíveis para cada Camada. –Arquivos RDL: Contêm as regras de transformações de cada Tag, ou seja, o que será adaptado ao modelo quando uma Tag for escolhida.

Laboratório de Engenharia de Software – PUC-Rio Base de Conhecimento Persistência, Interface, Negócio, etc... Framework Hibernate, Pattern DAO, JSP, etc... Hibernate.rdl, DAO.rdl, JSP.rdl, etc...

Laboratório de Engenharia de Software – PUC-Rio Trabalhos Relacionados Odyssey-MDA: Ferramenta para execução de transformações sobre modelos UML; UML Model Transformation Tool (UMT): Ferramenta que oferece suporte a transformações de modelos e geração de código, baseados em modelos UML no formato XMI.

Laboratório de Engenharia de Software – PUC-Rio Odyssey x UMT x Processo Proposto Todas efetuam transformações no modelo PIM, com o intuito de gerar modelos PSM; Todas trabalham com arquivos no formato XMI, sendo que a UMT trabalha internamente com o formato XMI Light; A ferramenta Odyssey armazena as transformações no formato XML, a UMT utiliza o formato XSLT, e o Processo Proposto utiliza o formato RDL. Apesar do XML ser o formato mais conhecido, a linguagem RDL é muito mais fácil de se entender e trabalhar, pois suas regras estão em linguagem natural; A ferramenta Odyssey e a UMT utilizam marcações de baixo nível, enquanto o Processo Proposto utiliza marcações de alto nível.

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Cria o Modelo PIM

Laboratório de Engenharia de Software – PUC-Rio Exemplo de um Modelo PIM

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Cria o Modelo PIM Adiciona as Marcações

Laboratório de Engenharia de Software – PUC-Rio Modelo PIM Configurado Classes Persistentes

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Cria o Modelo PIM Adiciona as Marcações Exporta o Modelo PIM

Laboratório de Engenharia de Software – PUC-Rio Modelo PIM Exportado Como um Arquivo XMI <UML:Attribute xmi.id = 'I1bc2e06m1060e5e7e0cmm7f04' name = 'nome' visibility = 'private isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'> <UML:Attribute xmi.id = 'I1bc2e06m1060e5e7e0cmm7e77' name = ' ' visibility = 'private isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'> Class

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Cria o Modelo PIM Adiciona as Marcações Exporta o Modelo PIM Importa o Modelo PIM Ferramenta

Laboratório de Engenharia de Software – PUC-Rio Ferramenta Importa o Modelo PIM A ferramenta importa o modelo PIM em forma de um arquivo XMI; Ela irá armazenar algumas informações do mesmo, como: –Esteriótipos; –Nome; –Atributos; –Métodos; –Relacionamentos; –Heranças.

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Transformação Cria o Modelo PIM Adiciona as Marcações Exporta o Modelo PIM Importa o Modelo PIM Ferramenta RespostasPerguntas

Laboratório de Engenharia de Software – PUC-Rio Transformação É neste ponto que a ferramenta começa a interação com o desenvolvedor; O mesmo deve informar qual o Framework de Persistência ele deseja utilizar; Quais Padrões devem ser adicionados; Caso necessário, ele deverá informar os nomes de novas classes; Entre outras perguntas que podem variar de acordo com as escolhas feitas pelo mesmo.

Laboratório de Engenharia de Software – PUC-Rio COOBOOK FachadaPersistencia RECIPE main classeFachadaPersistencia = NEW_CLASS (FachadaPersistencia); NEW_METHOD (classeFachadaPersistencia, abrirConexaoBanco); NEW_METHOD (classeFachadaPersistencia, fecharConexaoBanco); LOOP nomeClassePersistente = ?; NEW_METHOD (classeFachadaPersistencia, selecionar + nomeClassePersistente); NEW_METHOD (classeFachadaPersistencia, inserir + nomeClassePersistente); NEW_METHOD (classeFachadaPersistencia, alterar + nomeClassePersistente); NEW_METHOD (classeFachadaPersistencia, deletar + nomeClassePersistente); END_LOOP; END_RECIPE; END_COOKBOOK Exemplo de um Arquivo RDL ?: Significa que a informação será passada durante a execução do arquivo. Caso a ferramenta não passe essa informação para a máquina virtual RDL, a mesma irá pedir para que o desenvolvedor informe.

Laboratório de Engenharia de Software – PUC-Rio Ferramenta Base de Conhecimento Arquivo(s) RDL Máquina Virtual RDL Camada(s)Tag(s) Arquivo(s) RDL, Arquivo XMI Desenvolvedor Informa os dados necessários Informa nomes para novas classes Arquivo XMI Atualizado

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Transformação Cria o Modelo PIM Adiciona as Marcações Exporta o Modelo PIM Importa o Modelo PIM Exporta o Modelo PSM Ferramenta RespostasPerguntas

Laboratório de Engenharia de Software – PUC-Rio Modelo PSM Exportado Como um Arquivo XMI Arquivo XMI com novas classes, atributos e outras características relacionadas as configurações feitas pelo desenvolvedor; Esse modelo não contêm mais as configurações antes adicionadas pelo desenvolvedor.

Laboratório de Engenharia de Software – PUC-Rio Passos do Processo Transformação Cria o Modelo PIM Adiciona as Marcações Exporta o Modelo PIM Importa o Modelo PIM Exporta o Modelo PSM Importa o Modelo PSM Ferramenta RespostasPerguntas Modelo PSM Gerado!

Laboratório de Engenharia de Software – PUC-Rio PSM Gerado Classe gerada pelo arquivo RDL correspondente a Fachada de Persistência Classes geradas pelo arquivo RDL correspondente ao Framework Hibernate

Laboratório de Engenharia de Software – PUC-Rio Caso de Estudo 1 Sistema de Sincronização dos Dados Acadêmicos do SAU e do AulaNet: Sincroniza a base de dados do AulaNet com os dados acadêmicos da base de dados do SAU (Sistema de Administração Universitária). O que foi feito? O sistema foi desenvolvimento utilizando o processo proposto. Resultado: Comparação do modelo PSM gerado pelo processo, com o modelo final do sistema.

Laboratório de Engenharia de Software – PUC-Rio Caso de Estudo 2 Leilão Virtual: Site de leilão virtual, contendo venda e compra de produtos, sistema de lances automáticos, controle de usuários. O que foi feito? Foi adaptado ao sistema um Mecanismo de Persistência, nesse caso um Framework de Persistência. Resultado: Mostra os passos necessários para se adaptar, através do processo proposto, um mecanismo de persistência em um sistema existente.

Laboratório de Engenharia de Software – PUC-Rio Trabalhos Futuros Ampliação do foco do processo para outras camadas (interface, negócio, entre outras); Adição de uma nova etapa no processo, responsável pela extração de modelos PIM de um modelo já existente; Criação de um módulo gráfico para a criação e edição das regras de transformações.

Laboratório de Engenharia de Software – PUC-Rio Dúvidas, sugestões e críticas ?