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.

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

Desenvolvimento de Plug-ins Orientado a Testes
Engenharia de Software
Raphael Gatti Thomás Bryan
UML Modelando um sistema.
Projeto 1.
Engenharia de Software
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
RMI-IIOP.
Centrado na arquitetura
Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 28 de outubro.
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
André Rangel de Matos Raquel Pereira Crespo PÓS-GRADUAÇÃO LATO SENSU EM ANÁLISE, PROJETO E GERÊNCIA DE SISTEMAS DE INFORMAÇÃO Especificação e Manutenção.
Modelo de Arquitetura Diagrama de Componentes
Refactoring de Programas Java
Sistemas Distribuídos CORBA
Processo Desenvolvimento de Software Tradicional
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
RUP: Fluxo de Análise e Projeto
Gabriel Silva Bornia Prof. Dr. Roberto Tom Price Orientador
Viabilidade de Construção de Software com MDD e MDA
SOA - Arquitetura Orientada a Serviços
Engenharia de Software e Sistemas de Informação e Gestão
Projetar Serviços Vítor Braga –
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do.
Universidade Federal de Lavras - UFLA
Desenvolvimento de Sistemas Orientados a Aspectos
Tópicos de Sistemas de Informação A
Métodos de Construção de Software: Orientação a Objetos
CORBA e Desenvolvimento Baseado em Componentes
Daniel Lucrédio Orientador: Dr. Antonio Francisco do Prado
Professor: Márcio Amador
Heron Vieira Aguiar “Seminário da disciplina MDA” Julho de 2006
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
© Ricardo Pereira e Silva
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
1 Fábrica de Software com UML Toacy C. Oliveira. 2 Agenda Motivação Contexto UML/MDA Exemplo Prático UML Profile Definições Exemplo Conclusão.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Processos de Software.
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Desenvolvimento de Software Dirigido a Modelos
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)
Modelo de Análise e Projeto
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Desenvolvendo Sistemas Multi-agentes usando o Framework Tropos
Mestrando: Pedro Barbosa Cordeiro Orientador: Bernardo Lula Júnior
Unified Modeling Language
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Analisar Serviços Vítor Braga – Computation Independent Model (CIM) Platform Independent Model (PIM) Platform Specific Model (PSM) MDA.
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
Processo de Desenvolvimento de Software Dirigida a Modelos e Orientada a Serviços (SOA/MDE) Vítor Braga –
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/38 Análise e Projeto de Sistemas Introdução à Análise e ao Projeto de Software.
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.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Projeto de Arquitetura de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas Augusto Sampaio Em co-autoria com.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
IF718 Análise e Projeto de Sistemas Augusto Sampaio - acas Vitor Braga - vtb (Estágio docência) Diogo Peixoto - dcp (Monitor) Parte do material.
Disciplina: Análise e Projeto de Sistemas
Transcrição da apresentação:

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 Novembro/2005

Nov/2005Odyssey-MDA2 Roteiro Introdução Arquitetura Orientada por Modelos (MDA) Abordagem Odyssey-MDA Definição de plataformas e transformações Modelagem e marcação dos modelos Execução de transformações (exemplo EJB) Geração de código Ferramenta implementada Considerações Finais

Nov/2005Odyssey-MDA3 Introdução Desenvolvimento Baseado em Componentes Reaproveitamento de esforço (Reutilização) Ganho em qualidade e produtividade Tecnologias Surgem e evoluem muito rapidamente Necessidade de evolução pode restringir a reutilização dos componentes obsoletos

Nov/2005Odyssey-MDA4 Arquitetura Orientada por Modelos Abordagem que visa permitir: Especificação do software de forma independente de uma plataforma (tecnologia) em particular Realização de transformações para aplicação de conceitos de plataforma sobre a especificação inicial Separação entre especificação da funcionalidade e a sua implementação numa tecnologia qualquer Facilidade na obtenção da especificação do sistema na plataforma escolhida

Nov/2005Odyssey-MDA5 Arquitetura Orientada por Modelos Conceitos Plataforma: Conjunto de subsistemas e tecnologias que disponibilizam serviços através de interfaces e padrões de utilização PIM – Platform Independent Model PSM – Platform Specific Model Transformações Modelo ↔ Modelo Modelo ↔ Texto

Nov/2005Odyssey-MDA6 Abordagem Odyssey-MDA Definição de transformações bidirecionais Execução das transformações sobre modelos de componentes independentes de plataforma (PIM) e obtenção dos modelos específicos para uma plataforma em particular (PSM) Geração da implementação dos componentes na plataforma escolhida.

Nov/2005Odyssey-MDA7 Abordagem Odyssey-MDA Padrões utilizados: MOF – Linguagem abstrata que é usada para descrever outras linguagens JMI – Permite a geração de interfaces Java para manipulação de elementos de um modelo cujo meta-modelo é descrito em MOF XMI – Permite o intercâmbio (em XML) de modelos entre ferramentas (meta-modelo MOF)

Nov/2005Odyssey-MDA8 Abordagem Odyssey-MDA Definições de plataformas e transformações  Modelagem dos componentes  Marcação do modelo  Geração da implementação  Escolha da plataforma e execução de transformações  EJB

Nov/2005Odyssey-MDA9 Plataformas e Transformações Plataformas: Conjunto de transformações Conjunto de templates para geração de código fonte Transformações: Execução bidirecional Atualização não destrutiva de modelos existentes São definidas através de: Mapeamentos Finders Mecanismos

Nov/2005Odyssey-MDA10 Mapeamentos Componente ↔ Componente Classe ↔ Componente Classe ↔ Interface etc. Atributo ↔ Atributo Operação ↔ Atributo etc. Classe ↔ Atributo Componente ↔ Operação Interface ↔ Atributo etc. FeatureMap ClassifierFeatureMap ClassifierMap * * *

Nov/2005Odyssey-MDA11 Finders Selecionam elementos a serem transformados Critérios de seleção de elementos: Nome → todas os elementos com nome “create” Tipo → todas as Classes, Interfaces Estereótipos → todos os elementos > Etiquetas → todos os elementos que tenham a etiqueta “persistent” com valor “true”.

Nov/2005Odyssey-MDA12 Transformam elementos do modelo de entrada em elementos do modelo de saída São bidirecionais (forward e reverse) Pré-definidos: Mecanismos ComponentComponent ComponentClass ComponentInterface ComponentAttribute ComponentOperation ClassClass ClassInterface ClassAttribute ClassOperation InterfaceInterface InterfaceAttribute InterfaceOperation AttributeAttribute AttributeOperation OperationOperation

Nov/2005Odyssey-MDA13 Modelagem dos componentes > Cliente ICliente + nome : String + codigo : String + endereco : String Cliente Componente PIM:

Nov/2005Odyssey-MDA14 Marcação do modelo > Cliente ICliente + nome : String + codigo : String + endereco : String > Cliente Componente PIM marcado:

Nov/2005Odyssey-MDA15 Execução da transformação > Cliente ICliente + nome : String + codigo : String + endereco : String > Cliente > ClienteBean -idCliente:String -nome:String -codigo:String -endereco:String #entityContext:EntityContext > ClienteBean +ejbCreate():ClientePK +ejbPostCreate():void +ejbActivate():void +ejbLoad():void +ejbPassivate():void +ejbRemove():void +ejbStore():void +getAll():... +setAll(...):void -idCliente:String ClientePK +hashCode():int +equals(other:Object):boolean +getAll():... +setAll(...):void ClienteLocal > +create():Cliente +findByPrimaryKey(...):... ClienteHome > +create():ClienteLocal +findByPrimaryKey(...):... ClienteLocalHome > +getAll():... +setAll(...):void Cliente > Mapeamento: ClassifierMap Mecanismo: ComponentComponent Finder: esquerda: tipo(Component) Finder: esquerda: estereótipo( >) Finder: direita: tipo(Component) Finder: direita: estereótipo( >)

Nov/2005Odyssey-MDA16 Execução da transformação > Cliente ICliente + nome : String + codigo : String + endereco : String > Cliente > ClienteBean -idCliente:String -nome:String -codigo:String -endereco:String #entityContext:EntityContext > ClienteBean +ejbCreate():ClientePK +ejbPostCreate():void +ejbActivate():void +ejbLoad():void +ejbPassivate():void +ejbRemove():void +ejbStore():void +getAll():... +setAll(...):void -idCliente:String ClientePK +hashCode():int +equals(other:Object):boolean +getAll():... +setAll(...):void ClienteLocal > +create():Cliente +findByPrimaryKey(...):... ClienteHome > +create():ClienteLocal +findByPrimaryKey(...):... ClienteLocalHome > +getAll():... +setAll(...):void Cliente > Mapeamento: ClassifierMap Mecanismo: ClassClass Finder: esquerda: tipo(Class) Finder: esquerda: estereótipo( >) Finder: direita: tipo(Class) Finder: direita: estereótipo( >)

Nov/2005Odyssey-MDA17 Execução da transformação > Cliente ICliente + nome : String + codigo : String + endereco : String > Cliente > ClienteBean -idCliente:String -nome:String -codigo:String -endereco:String #entityContext:EntityContext > ClienteBean +ejbCreate():ClientePK +ejbPostCreate():void +ejbActivate():void +ejbLoad():void +ejbPassivate():void +ejbRemove():void +ejbStore():void +getAll():... +setAll(...):void -idCliente:String ClientePK +hashCode():int +equals(other:Object):boolean +getAll():... +setAll(...):void ClienteLocal > +create():Cliente +findByPrimaryKey(...):... ClienteHome > +create():ClienteLocal +findByPrimaryKey(...):... ClienteLocalHome > +getAll():... +setAll(...):void Cliente > Mapeamento: FeatureMap Mecanismo: AttributeAttribute Finder: esquerda: tipo(Attribute) Finder: direita: tipo(Attribute)

Nov/2005Odyssey-MDA18 Execução da transformação > Cliente + nome : String + codigo : String + endereco : String + cidade : String > Cliente ICliente > ClienteBean -idCliente:String -nome:String -codigo:String -endereco:String -numeroCartao:String #entityContext:EntityContext > ClienteBean +ejbCreate():ClientePK +ejbPostCreate():void +ejbActivate():void +ejbLoad():void +ejbPassivate():void +ejbRemove():void +ejbStore():void +getAll():... +setAll(...):void -idCliente:String ClientePK +hashCode():int +equals(other:Object):boolean +getAll():... +setAll(...):void ClienteLocal > +create():Cliente +findByPrimaryKey(...):... ClienteHome > +create():ClienteLocal +findByPrimaryKey(...):... ClienteLocalHome > +getAll():... +setAll(...):void Cliente > ICliente Execução reversa (não destrutiva) > Cliente + nome : String + codigo : String + endereco : String + cidade : String + numeroCartao : > Cliente

Nov/2005Odyssey-MDA19 Geração da Implementação > ClienteBean -idCliente:String -nome:String -codigo:String -endereco:String #entityContext:EntityContext > ClienteBean +ejbCreate():ClientePK +ejbPostCreate():void +ejbActivate():void +ejbLoad():void +ejbPassivate():void +ejbRemove():void +ejbStore():void +getAll():... +setAll(...):void -idCliente:String ClientePK +hashCode():int +equals(other:Object):boolean +getAll():... +setAll(...):void ClienteLocal > +create():Cliente +findByPrimaryKey(...):... ClienteHome > +create():ClienteLocal +findByPrimaryKey(...):... ClienteLocalHome > +getAll():... +setAll(...):void Cliente > Código fonte (JAVA) Templates

Nov/2005Odyssey-MDA20 Ferramenta Odyssey-MDA Framework para especificação e execução de transformações sobre modelos UML PIM ↔ PIM, PIM ↔ PSM, PSM ↔ PSM Ferramenta Case Ambiente de Reutilização XMI Geração De Código Engenharia Reversa XMI Odyssey-MDA Especificações de Mapeamentos (XML) Plug-ins (Java/JMI)

Nov/2005Odyssey-MDA21 Ferramenta Odyssey-MDA Implementação dos mecanismos (Java/JMI): Pré-definidos (built-ins) Definidos pelo usuário (plug-ins) Especificação dos mapeamentos (XML): Seleção de elementos (finders) Configuração dos mecanismos

Nov/2005Odyssey-MDA22 Ferramenta Odyssey-MDA Stand-alone

Nov/2005Odyssey-MDA23 Ferramenta Odyssey-MDA Odyssey-plug-in

Nov/2005Odyssey-MDA24 Contribuições Independência de ferramenta CASE Transformações bidirecionais entre modelos Extensão via plug-ins Ferramenta de transformações de modelos e geração de código (Odyssey-MDA) Trabalhos futuros Utilização de outros meta-modelos baseados no MOF Estudo de caso para avaliar a utilização da ferramenta Considerações finais

Odyssey-MDA: Uma Abordagem para a Transformação de Modelos de Componentes {ntmaia, anablois, Grupo de Reutilização de Software Novembro/2005

Nov/2005Odyssey-MDA26 Properties Permitem a configuração dos mecanismos utilizados nas transformações (built-ins/plug-ins)

Nov/2005Odyssey-MDA27 Relacionamentos A geração de relacionamentos entre os elementos gerados na transformação é configurada na especificação declarativa entityRemoteInterface)" type="Dependency" direction="LEFT_TO_RIGHT">