Transformação de modelos em processos de desenvolvimento de software



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

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

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

Fase 1: Engenharia de Produto

de teste funcionais utilizando diagramas de sequência em UML

Desenvolvimento de software orientado a características e dirigido por modelos

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Transformando Modelos da MDA com o apoio de Componentes de Software

UFG - Instituto de Informática

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software. Eduardo Barbosa da Costa

2 Diagrama de Caso de Uso

2 Engenharia de Software

PIM. CST em Análise e Desenvolvimento de Sistemas. Projeto Integrado Multidisciplinar. 4º/3º Períodos 2010/2 UNIVERSIDADE PAULISTA CURSO

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Modelagem de Sistemas

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Exame de Qualificação para o Doutorado

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

4 O Workflow e a Máquina de Regras

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

CASE Orientada a Objetos com Múltiplas Visões e Implementação Automática de Sistemas - MVCASE

Unidade II MODELAGEM DE PROCESSOS

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Introdução à Computação

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Análise e Projeto Orientados por Objetos

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

UML - Unified Modeling Language

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

5. Métodos ágeis de desenvolvimento de software

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Desenvolvimento de uma Etapa

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

UFG - Instituto de Informática

Transformação de um Modelo de Empresa em Requisitos de Software

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Engenharia de Software III

Conceitos de Banco de Dados

Noções de. Microsoft SQL Server. Microsoft SQL Server

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Sistemas para internet e software livre

Feature-Driven Development

Principais Comandos SQL Usados no MySql

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Governança de TI. ITIL v.2&3. parte 1

Eduardo Bezerra. Editora Campus/Elsevier

NOVA PROPOSTA DE MATRIZ CURRICULAR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Viabilidade de Construção de Software com MDD e MDA

REQUISITOS DE SISTEMAS

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Modelagem de Processos. Prof.: Fernando Ascani

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Manual do Visualizador NF e KEY BEST

Figura 5 - Workflow para a Fase de Projeto

INTRODUÇÃO A MODELAGEM DE PROCESSOS UTILIZANDO BPMN 1 FÁBIO RODRIGUES CRUZ CONCEITO DE MODELAGEM DE PROCESSOS UTILIZANDO BPMN

Table 1. Dados do trabalho

Fábrica de Software 29/04/2015

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web

Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Nos artigos anteriores apresentamos. Desenvolvimento de Software Dirigido por Caso de Uso Parte III: Caso de Uso de Negócio

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

Gestão de projectos na Web

Transforms: Um Ambiente de Apoio a Modelagem e Execução de Processos de Software Dirigido por Modelos

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

ENGENHARIA DE SOFTWARE I

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

EMENTAS DAS DISCIPLINAS

Projeto de Sistemas I

Processo de Desenvolvimento de Software. Engenharia de Software.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

QUESTÃO 01 - DIAGRAMA DE SEQUENCIA (CONCEITOS)

UML Aspectos de projetos em Diagramas de classes

4 Um Exemplo de Implementação

3 Qualidade de Software

Transcrição:

1068 X Salão de Iniciação Científica PUCRS Transformação de modelos em processos de desenvolvimento de software Vinycio de Correa Lunelli 1, Profa. Dra. Ana Paula Terra Bacelo 1 1 Faculdade de Informática, PUCRS Resumo O aumento da complexidade dos sistemas faz a busca por alternativas de redução de esforços nos desenvolvimentos se tornem cada vez mais importantes. Uma dessas iniciativas é a Arquitetura Orientada a Modelos (AOM) que permite a modelagem e a aplicação de transformações sobre modelos, visando à obtenção do software de forma automatizada. A AOM tem como princípio a transformação de modelos, inicialmente gerados de forma independente de tecnologia (e.g. modelos de classes UML) em modelos para uma tecnologia específica (e.g. modelo de componentes em EJB). Este projeto visa investigar as diferentes possibilidades de transformação de modelos para obter um conjunto mais abrangente e completo.

1069 Introdução Novas tecnologias surgem a todo o momento e as empresas, cada vez mais, necessitam de sistemas complexos para melhor conduzir e controlar seus negócios. Essa busca pela tecnologia e a sua adoção tem um custo associado e os investimentos podem ser grandes. Ao longo dos anos, o desenvolvimento de sistemas passou por diversas melhorias com o objetivo de reduzir os custos e aumentar a produtividade dos desenvolvedores. Algumas das principais melhorias estão relacionadas ao aumento do nível de abstração necessário para projetar e implementar o software. Inicialmente, toda a codificação do software era realizada em linguagens muito próximas das linguagens de máquina, com pouca expressividade e de difícil manutenção. Com o aumento da complexidade dos sistemas desenvolvidos, essas linguagens foram se tornando insuficientes, o que resultou no surgimento de novas linguagens e paradigmas de programação com maior nível de abstração, como as linguagens orientadas a objeto (MELLOR et al., 2004). Paralelamente, linguagens de modelagem foram surgindo (e.g.: UML), e tornaram possível a construção de modelos de projeto do software em desenvolvimento. Esses modelos permitiram a elaboração de representações dos requisitos do software, que podem ser visualizadas e manipuladas em tempo de análise e projeto do sistema, possibilitando uma melhor avaliação destes requisitos antes mesmo do código ser implementado, quando possíveis mudanças envolvem menor esforço e custo (SOLEY,2000). Recentemente, surge a necessidade de mudar este paradigma no sentido de utilizar os modelos como artefatos centrais no desenvolvimento, a partir do qual o código é gerado. Estes modelos são então transformados, visando a aplicação dos conceitos providos pela plataforma tecnológica (middleware) escolhida. Este novo paradigma é conhecido como Arquitetura Orientada por Modelos, ou MDA (MELLOR et al., 2004). Neste cenário, o conceito chave para se obter os benefícios deste novo paradigma é a realização de transformações entre os modelos, o que possibilita uma maior automação no desenvolvimento e implementação do software, conseqüentemente, reduzindo esforço e custo. Atualmente, existem várias abordagens para a realização de transformações entre modelos (OLDEVIK, 2004; JOUAULT & KURTEV, 2005; KOZIKOWSKI, 2005; COMPUWARE, 2006; ECLIPSE, 2006; KENNEDY-CARTER, 2006). No entanto, a maioria dessas abordagens ainda apresenta limitações com relação à interoperabilidade com ambientes de desenvolvimento, apoio à definição e execução de diversos tipos de transformações e a

1070 possibilidade de expansão de suas capacidades. Estas limitações motivam este projeto de pesquisa. Sendo assim, o objetivo desta pesquisa é fazer uma análise da literatura sobre ferramentas de transformação de modelos e desenvolver mecanismos de transformação de modelos em algumas destas ferramentas, através de pontos de extensão destas ferramentas.

1071 Metodologia A Profa. Coordenadora deste projeto tem desenvolvido pesquisas na temática de transformação de modelos, juntamente com alunos de pós-graduação do PPGCCFACIN/PUCRS e também em cooperação com o Programa de Pós-Graduação em Engenharia de Sistemas e Computação da COPPE/UFRJ, mais especificamente com o grupo de reutilização de software coordenado pela Profa. Dra. Cláudia Werner. Esta cooperação vem sendo realizada desde 2003 através de um PROCAD entre a FACIN-PUCRS e o COPPE/sistemas UFRJ. Neste contexto, a Profa. coordenadora desenvolveu o seu programa de doutoramento onde uma ferramenta de transformação de modelos, denominada Odyssey- MDA foi desenvolvida (Maia et al., 2005). Esta pesquisa de iniciação científica envolveu os seguintes estudos: Tecnologias que empregam o conceito de transformação de modelos: o Como o conceito de transformação de modelos é uma preocupação recente, não existem muitas tecnologias que propõem isto. Algumas delas são: ATL, MIA, MTL e AndroMDA. o A forma encontrada para transmissão de dados de uma transformação é através da utilização de arquivos no padrão XMI. Este por sua vez é um padrão de arquivos utilizados principalmente em XML e UML e bastante utilizado por não ser um padrão proprietário o qual é empregado em várias ferramentas de transformação, incluindo o Odyssey-MDA. Estudo da Ferramenta Odyssey-MDA. o O Odyssey-MDA (Maia et al., 2005) é uma abordagem que fornece o suporte necessário para transformações de modelos em conformidade com os padrões sugeridos pelo framework MDA. Esta abordagem permite que transformações bidirecionais sejam executadas sobre modelos UML, importados através de arquivos no padrão XMI, além de suportar também transformações modelo-texto. O Odyssey-MDA utiliza a especificação JMI (Java Metadata Interface) (Dircze, 2002) para a manipulação dos modelos em um repositório MDR (Metadata Repository). Desenvolvimento de transformações na ferramenta Odyssey-MDA. o Uma transformação de modelos no Odyssey-MDA deve conter uma especificação declarativa em XML e um conjunto de mecanismos

1072 responsáveis pela execução da transformação. A especificação declarativa é responsável por definir os mapeamentos entre os elementos dos modelos de entrada e saída. Tais mapeamentos são definidos através de critérios de seleção dos elementos a serem transformados do modelo-fonte para o modelo-alvo e a seleção de um mecanismo adequado para executar a transformação. Cada mapeamento especifica o tipo de conversão desejado, baseado nos elementos do metamodelo da UML. Assim, são possíveis mapeamentos entre os seguintes elementos: Classifier: classes e interfaces; Feature: atributos e métodos. Mapeamentos de feature estão sempre inseridos no contexto de mapeamentos de classifier. Figura 1- Especificação declarativa no Odyssey-MDA Fonte: (Maia, 2006). A Figura 1 mostra, simplificadamente, cinco mapeamentos: o map1: mapeamento do tipo classifier-map que especifica que uma classe do PIM, estereotipada com Entity, gera um classe do PSM estereotipada como EJBEntityBean;

1073 o map2 : mapeamento do tipo feature-map, inserido no contexto de map1, que especifica que os atributos da classe do PIM devem ser replicados na classe do PSM; o map3: mapeamento do tio feature-map, também dentro do contexto de map1, que especifica que a classe do PSM deve conter métodos getter/setter para os atributos da classe do PIM; o map4: mapeamento do tipo classifier-feature-map, ainda no contexto de map1, que indica que a classe do PSM deve conter o método ejbcreate; o map5: mapeamento do tipo classifier-map que indica que uma interface, estereotipada com EJBHomeInterface, deve ser criada no PSM a partir da classe do PIM. A ferramenta até então faz somente transformação de modelos de classes para modelos de classes na plataforma EJB, como mostra a Figura 1. Para avaliarmos o potencial de extensão da ferramenta com o intuito de atender novas transformações, foi proposta um novo mecanismo dentro do Odyssey-MDA capaz de transformar modelos de classes em tabelas e relacionamentos de um banco de dados. o Exemplo da transformação sugerida. Nome do modelo importado Nome do modelo que sera criado Modelo de classe importado Define a ordem da transformação Nome que consta no XML de transformação Figura 2 Mostra o modelo de classes importado no lado esquerdo da imagem e abaixo o tipo de transformação

1074 o Ao final da transformação caso não seja encontrado nenhum atributo com estereótipo Primary Key (PK) é necessário defini-las como mostra a figura 2.1 Figura 2.1 Ao selecionar o atributo da classe é possível definir o tipo de atributo, estereotipo que esteja definido no perfil UML, e gerar o SQL.

1075 o Script SQL gerado a partir da transformação. Figura 2.2 SQL criado a partir da transformação anterior o Para fazer a transformação foi necessário um modelo de arquivo, mostrado na figura 2.3 Figura 2.3 Modelo de arquivo texto para a geração do script SQL. o Mapeamentos da transformação.

1076 Figura 2.4 Mapeamento de um diagrama de classe para tabelas e relacionamentos de um banco de dados. A Figura 2.4 mostra, simplificadamente, 4 mapeamentos: o map 1: mapeamento especifica que a classe se tornará uma tabela no script SQL; o map 2 : mapeamento está inserido no contexto de map1, especifica que os atributos da classe devem se tornar colunas da classe; o map 3: possui a mesma funcionalidade que o map 2. No caso da figura 2.4 podemos ver que o nome do atributo está diferente do modelo original, isto se deve ao tipo do atributo, quando é um tipo de classe o nome é alterado o nome da coluna; o map 4: mapeamento no contexto de map 1, que identifica a coluna com o estereotipo PK e cria os Alter Tables para o script SQL; Para estes mapeamentos se tornarem um script SQL foi necessário criar algumas classes no projeto do Odyssey-MDA, são elas: o CreateTXT: Recebe o diagrama importado e gera o Script SQL o SaveTextFile: Recebe o Script SQL feito pelo método create da classe CreateTXT e o salva em arquivo. Além destas foi criada uma classe gráfica para a definição de PK nos atributos (mostrada na figura 2.1). Estágio atual da ferramenta: Desenvolvimento de um mecanismo de transformação de diagramas de seqüência para classes e métodos de um modelo de classes.

1077 o Os diagramas de seqüência são constituídos de mensagens entre objetos, cada mensagem trocada entre eles podem ser mapeadas para métodos e os objetos em classes. Queremos desenvolver um mecanismo para mapear estas informações e, a partir dele, gerar um diagrama de classes agregando esta nova implementação na ferramenta Odyssey-MDA da mesma forma que fora feito com a transformação explicada no item anterior.

1078 Resultados Através desta pesquisa observamos que a ferramenta Odyssey-MDA é extensível para a criação de novos mecanismos de transformação. Uma forma de verificar e confirmar tal potencial foi através do mapeamento objeto relacional que desenvolvemos neste programa de iniciação cientifica. Outro resultado obtido foi à experiência do bolsista adquirida a respeito de conceitos que não são normalmente tratados em disciplinas do currículo do curso de sistemas de informação como: A interpretação de arquivos padrão XMI; Criação de um perfil UML para as transformações; Criação de um XML de mapeamento. Conclusão Com o uso do padrão XMI acreditamos que é possível aumentar o poder da ferramenta Odyssey-MDA incluindo novos arquivos de mapeamento e novas transformações sem a necessidade de alterar o código evitando falhas no desenvolvimento e acelerando processos. Além da experiência de estar trabalhando em um projeto grande com diversas pessoas envolvidas e trabalhando paralelamente, utilizar recursos antes desconhecidos para mim. Tudo isso aprimorou meus conhecimentos em transformação de modelos, padrões de projetos, XMI, UML e também na linguagem de programação Java.

1079 Referências COMPUWARE, 2006, "OptimalJ - Model-driven Java development tool". In: http://www.compuware.com/products/optimalj/, accessed in 20/01/2006. Dircze, R. "JSR 40: Java Metadata Interface (JMI) Specification - version 1.0", Unisys Corporation and Sun Microsystems, Java Community Process, 2002 ECLIPSE, 2006, "UMLX: A graphical transformation language for MDA". In: http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmthome/subprojects/umlx/index.html, accessed in 10/02/2006. JOUAULT, F., KURTEV, I., 2005, "Transforming Models with ATL". In: Proceedings of the Model Transformations in Practice Workshop at MoDELS 2005, Montego Bay, Jamaica, October, 2005. KOZIKOWSKI, J., 2005, "A Bird s Eye view of AndroMDA". In: http://www.andromda.org/contrib/birds-eyeview.html, accessed in 20/01/2006. KENNEDY-CARTER, 2006, "xuml - Executable UML". In: http://www.kc.com/xuml.php, accessed in 20/01/2006. MAIA, N.E.N., BACELO, A.P.T., WERNER, C.M., 2005, "Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML". In: XIX Simpósio Brasileiro de Engenharia de Software, Seção de Ferramentas, Uberlândia, MG, Brasil, Outubro 2005. MAIA, N.E.N. Odyssey-MDA: Uma Abordagem Para Transformações de Modelos. Dissertação de Mestrado, Programa de Pós-Graduação de Engenharia, UFRJ, 2006. MELLOR, S.J., SCOTT, K., UHL, A., et al. MDA Distilled Principles of Model-Driven Architecture. Indianapolis, Addison-Wesley, 2004. OLDEVIK, J., 2004, "UML Model Transformation Tool - Overview and user guide documentation". In: http://umtqvt.sourceforge.net/docs/umt_documentation_v08.pdf, accessed in 10/02/2006. SOLEY, R., 2000, Model Driven Architecture, Object Management Group, OMG document omg/00-11-05.