Você está na página 1de 44

Mestrado Profissional em Engenharia de Software

PyMDAGenerator: Uma Ferramenta para geração automática de aplicações baseada em MDA.

Autor: Ricardo Roberto de Lima

Orientador: Profº Drº Vinicius Cardoso Garcia
slide 1 de 50

Janeiro / 2014

Introdução e Motivação
A escolha deste tema se deu em virtude da necessidade de desenvolvimento de

software baseado em componentes para a disciplina de Engenharia de Reuso de Software Avançado do Mestrado
Negócio

Profissional. Posteriormente, foi feito um estudo comparativo entre o desenvolvimento tradicional e o baseado em MDA.
Arquitetura

MDA
slide 2 de 44

Tecnologia

Introdução e Motivação
Os principais fatores que motivaram a pesquisa são:

Investigar como realizar a geração automática de código baseado em Diagramas da UML;

Criar uma ferramenta para geração de Sistemas de Informação pra web de forma automática com MDA.

UML

MOF
ENGENHARIA DE SOFTWARE BASEADA EM COMPONENTES

MDE
slide 3 de 44

MDA

Problema da pesquisa
O problema da pesquisa que me propus a investigar foi:

Como construir uma aplicação completa para web, com a MDA, através da

ferramenta PyMDAGenerator.

Como

gerar

aplicações

totalmente

baseadas em modelos de diagramas UML sem escrever uma só linha de código.

slide 4 de 44

Solução/Objetivos da pesquisa Objetivos Gerais: • Propor uma solução para o desenvolvimento de software para web baseados em modelos de Diagramas UML. utilizando à linguagem Python e o Framework Django. • Fazer um estudo comparativo entre o desenvolvimento tradicional e o desenvolvimento baseado em componentes com MDA. slide 5 de 44 . • Construir uma ferramenta para gerar de forma automática aplicações para a web.

Ferramentas Existentes. linguagens aplicadas ao projeto. Estudo de Caso. Fundamentação teórica. Visão Geral da Arquitetura MDA. Conclusão e Trabalhos Futuros. Transformações entre Modelos.Roteiro Introdução e Motivação. Sistema de Gestão de Inventários Patrimoniais. Referências Bibliográficas. Tecnologia. A solução proposta. Problema da pesquisa. Solução/Objetivos da pesquisa. Definição da MDA. slide 6 de 44 .

Fundamentação Teórica. Para facilitar a compreensão desta pesquisa serão apresentados alguns assuntos que servem de base teórica: slide 7 de 44 .

ArgoUML slide 8 de 44 .MDA (Moden Driven Architecture).Ferramenta de Modelagem UML (ArgoUML).UML (Unifield Modeling Language). . Linguagens Aplicadas ao Projeto As tecnologias de modelagem aplicadas ao projeto foram: . .Tecnologias.

Biblioteca UML2DJ Shell Script slide 9 de 44 . Linguagens Aplicadas ao Projeto As tecnologias de Sistema Operacional e Linguagem de Script: .4.Tecnologias.Linux – Ubuntu 12. .Ambiente do Shell Bash (Script).

1.Tecnologias. Linguagens Aplicadas ao Projeto As tecnologias de Persistência e Banco de Dados foram: . ORM .Gerenciador de Arquivos – SQLite 3. .SQLDB slide 10 de 44 .SGBD – Postgresql 9.

.Linguagem Python + Framework Django. Linguagens Aplicadas ao Projeto As tecnologias de Linguagem de Programação e Framework de Desenvolvimento são: .IDE de desenvolvimento Eclipse + Pluguin Pydev.Tecnologias. slide 11 de 44 .

Definição de MDA  É uma abordagem de desenvolvimento de software criada pela OMG (Object Management Group). slide 12 de 44 . A chave para a MDA é a importância da modelagem no processo de desenvolvimento do software.

CODE SOURCE XHTML. CSS. Py Python + Django CIM Requisitos PIM UML + OCL PSM Shell + Python DEPLOY CODE SOURCE slide 13 de 44 SQL (DDL) Python + Django .Visão Geral da Arquitetura MDA  A MDA é uma visão em como o software pode ser desenvolvido colocando a modelagem no centro do processo de desenvolvimento.

Exemplo de um Meta-Modelo 0 ...1 extends * useCase extends MOF Meta-Model of Use-Cases system +name 1 .* actor 1 .* +name +title includes UML Model: Use-Case Diagram e-Store OrderItem ValidateCart slide 14 de 44 ..

* +name +title 0 ....Exemplo de um Meta-Meta-Modelo parameter +direction MOF Meta-Model of MOF Meta-Model attribute +name +multi operation +name class +name associationEnd +name +multi package +name association +name 1 .. * MOF Meta-Model of UML Use-Cases extends actor useCase extends system +name 1 .1 1 .* includes slide 15 de 44 .

* * +title includes system +name e-Store orderItem validateCart Client slide 16 de 44 ...visib = pub> “validateCart” </title> </useCase> <actor id = “ca”> <name.1 useCase 0 .visib = pub> “orderItem” </title> </useCase> <useCase id = “vcuc”> <title. visib = pub> “Client” </name> </actor> <system id = “ess”> <name.Exemplo do código em XMI <umlModel> <useCase id = “oiuc”> <title. visib = pub> “e-Store” </name> </actor> <actor2useCase id = “ca2oiuc”> <in idref = “ca”/> <out idref = “oiuc”/> </actor2useCase> <actor2useCase id = “ca2vcuc”> <in idref = “ca”/> <out idref = “vcuc”/> </actor2useCase> </umlModel> extends actor +name 0 .

Ferramentas Existentes As principais ferramentas existentes no mercado que são concorrentes diretos para esta pesquisa são: slide 17 de 44 .

A Solução Proposta A arquitetura da ferramenta especificada no diagrama abaixo: PyMDAGenerator está slide 18 de 44 .

•Especificação dos requisitos funcionais e não-funcionais do Projeto Asset Inventory. Nesta parte do Projeto foram elencados diversos requisitos entre os quais: RF001 – Autenticar Usuários.CIM Modelo Independente de Computação.. RF002 – Gerenciar Usuários. slide 19 de 44 . RF003 – Gerenciar Equipamentos. • Descrição dos requisitos no formato de Casos de Uso (Maneira informal e detalhada). • Entrevistas e Reuniões com o Cliente e parceiros.

PIM Modelo Independente de Plataforma Nesta parte do Projeto foi desenvolvido o Diagrama de Classes modelo Conceitual do Projeto através da ferramenta (ArgoUML). slide 20 de 44 .

xmi slide 21 de 44 .PIM Modelo Independente de Plataforma Depois de desenvolvido foi gerado através de exportação um arquivo no formato.XMI. Nome do Arquivo: ProjetoAsset.

slide 22 de 44 .sh e PSMtoCode. Neste momento acontecerá a transformação entre os modelos independentes e específicos de plataformas. Utilizando a ferramenta PyMDAGenerator é possível realizar as transformações de maneira automática.sh. através da biblioteca UML2DJ e os comandos da linguagem Shell Script encapsulado nos arquivos MDAPIMtoPSM.PIM para PSM Modelo Independente de Plataforma e Modelo Específico de Plataforma.

sh slide 23 de 44 Admin.xmi MDAPIMtoPSM.py – manager.PSM Modelo Especifico de Plataforma Arquivo.py .py – Models.sh UML2DJ PSMtoCode.

Componentes para plataforma Alvo Mapeador Objeto-Relacional Interface de Administração Automática. URL´s Dispacher Sistema de Templates slide 24 de 44 .

PSM para Código Fonte. Componentes do Framework Django (MVC) slide 25 de 44 .

PSM para código fonte.. Template slide 26 de 44 .

Modelo de Classe para Script do Banco Modelo Independente de Plataforma e Modelo Específico de Plataforma Confirmar as alterações para o banco de dados: 'python manage.py syncdb'. Além desse comando outros podem ser executados tais como: -DBSHELL -SYNCDB -SQLALL -TEST -TESTSERVER -LOADDATA slide 27 de 44 .

Devendo também manter um registro de suas movimentações no ambiente da organização. Um dos grandes desafios dos gestores de instituições públicas e privadas é manter o controle sobre os ativos móveis e imóveis.Estudo de caso. etc. PROBLEMA. É necessário criar um sistema de informação que permita rastrear e identificar a localização em tempo real dos itens citados. mobiliário. tais como: equipamentos eletrônicos. Domínio: Sistema de Gestão de Inventários Patrimoniais (Asset Inventory). slide 28 de 44 .

cadeiras etc. equipamentos eletrônicos. Obedecendo à alguns preceitos no que se refere a um sistema de informação.Estudo de caso. SOLUÇÃO. slide 29 de 44 . computadores. cujo objetivo é informar a localização em tempo real dos itens. Foi criado um software computacional destinado a auxiliar o processo de gerenciamento das organizações. mesas.

Execução da Aplicação Depois de realizada as transformações será executado o comando no servidor: 'python manage manage. Abra um navegador e Digite a seguinte URL: http://localhost:8000/admin slide 30 de 44 . .py runserver’.

Gerenciar – Menu Principal do Sistema (Asset Inventory).Sistema de Gestão de Inventários Patrimoniais. slide 31 de 44 .

slide 32 de 44 .Sistema de Gestão de Inventários Patrimoniais. Gerenciar – Andar.

slide 33 de 44 . foi feito um estudo comparativo entre o desenvolvimento tradicional com Java JEE (Retriever) versos o Desenvolvimento baseado na ferramenta PyMDAGenerator com Python + Django (Asset Inventory) e nos próximos slides serão MDA Python Django (Asset Inventory Inventory) ) apresentados os resultados.Estudo Comparativo entre o MDA x Tradicional. JAVA JEE (Retriever (Retriever) ) Para validar a ferramenta.

Python + Django slide 34 de 44 .Estudo Comparativo entre o MDA x Tradicional.

Estudo Comparativo entre o MDA x Tradicional. Java JEE + Play Framework slide 35 de 44 .

Estudo Comparativo entre o MDA x Tradicional. slide 36 de 44 .

slide 37 de 44 .Estudo Comparativo entre o MDA x Tradicional.

redução do time-to-maker. isto acontece de forma natural durante a transferências dos aspectos técnicos de desenvolvimento para as primeiras fases de planejamento e modelagem. Epílogo Parte 1/5 O MDA tem como proposta a construção sistemática de sistemas baseada em modelos abstratos de componentes. Entre outros benefícios estão um alto nível de reuso.Conclusão e Trabalhos Futuros. slide 38 de 44 .

* Avaliação preliminar da Ferramenta PyMDAGenerator. slide 39 de 44 .Conclusão e Trabalhos Futuros. prática e objetiva para Plataforma Linux com Python. buscando identificar oportunidades de pesquisa. * Desenvolvimento de um Protótipo funcional que implementa a abordagem proposta e contextualizada neste trabalho: • Estudo das áreas de Engenharia de Reuso e MDA. Contribuições Parte 2/5 * Definição de uma metodologia básica aplicada a MDA. por meio do estudo de caso realizado. simples. • Identificação das extensões necessárias para possibilitar a representação dos modelos em Python e identificar os diferentes mecanismos de transformação entre modelos de PIM para PSM e Código Fonte.

* Não foi possível gerar uma aplicação em Shell Script baseada em Interfaces Gráficas mais ricas. Limitação Parte 3/5 * A Ferramenta PyMDAGenerator é limitada através da plataforma Linux. * Não foi possível também validar os artefatos de UML do modelo Comportamental. slide 40 de 44 . posto que utiliza a linguagem Shell Script para realizar as transformações entre os modelos de PIM para PSM e PSM para Código Fonte. * Não foi realizado nenhum estudo para avaliar o desempenho do protótipo desenvolvido.Conclusão e Trabalhos Futuros. * A aplicação é restrita ao modelo de características baseado em MDA e funciona especificamente para Python com o framework Django.

Trabalhos Futuros Parte 4/5 * Aplicação do protótipo desta ferramenta utilizando o modelo comportamental em atividades de monitoramento e acompanhamento dos ativos com restrições OCL aplicados ao modelo do Diagrama de Classes e Diagramas de Atividades. slide 41 de 44 .Conclusão e Trabalhos Futuros. * Representação dos artefatos baseados em serviços. conhecendo suas dependências em relação aos modelos de componentes de software com UML e suas relações aplicadas ao modelo de processo de negócio com BPM´n e BPEL. * Planejamento e execução de estudos de avaliação mais complexos e completos que envolvam a abordagem proposta como um todo e a utilização do protótipo em outros estudos de casos e domínios diferentes.

slide 42 de 44 . como por exemplo: OSGI (OSGI ALLIANCE. 2009). a linguagem Ruby e o framework On Raills. este último já sendo testado em pequenos protótipos nas fases de criação e especificação.Conclusão e Trabalhos Futuros. * Construção de um ambiente mais complexo e rico de execução que suporte a reconfiguração dos sistemas desenvolvidos com base nas extensões propostas que permita a inclusão de novas características e regras de adaptação em tempo de execução. aplicando novas regras de extensibilidade baseadas no MOF 2. Trabalhos Futuros Parte 5/5 * Aplicação e construção do PSM para outras plataformas do tipo: Java Plataforma JEE. visando garantir o uso em outras plataformas distintas. * Aprimorar o mecanismo de Parse XML. * Integração da abordagem proposta com tecnologias que suportem a reconfiguração dinâmica do modelo.

MDA Explained: The Model Driven Architecture: Practice and Promise . Richard Helm. trad. Kleppe. 2005. GAMMA. Pedro. 7th Ed. Erich. Anneke G. tradução João Tortello – 3º edição – Porto Alegre: Bookman. Luiz A. São Paulo: Atlas. Ralph Johnson e John Vlissides. Padrões de Projeto: Soluções reutilizáveis de Software Orientado a Objetos / Erich Gamma. Inc – 2003. Wim. FOWLER. SOMMERVILLE. slide 43 de 44 .. Warmer.Pearson Education. Addison-Wesley. Metodologia do conhecimento científico. Engenharia de Software. 2000. Porto Alegre: Bookman.Referências Bibliografias DEMO. Bast. Meirelles Salgado. 2008. Martin UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos / Martin Fowler. Jos. Ian. 2000.

com Fone: 83 – 8714-6543 Fone: 84 – 8781-7952 .edu. slide 44 de 44 Mestrado em Engenharia de Software Centro de Estudos e Sistemas Avançados do Recife Email: ricardorobertolima@gmail.Agradecimentos Gostaria de agradecer aos membros da Banca de Dissertação de Mestrado Profissional e ao Cesar. Ricardo Roberto de Lima Obrigado.