MDA x RUP Flávia Durans Pitta Marinho [email protected] Agenda Introdução Metodologia Abordagem RUP Abordagem MDA Exemplo MDA MDA x RUP Conclusão Referências MDA x RUP Introdução Histórico Criação de tecnologias para desenvolvimento de software Surgimento processos para auxiliar, agilizar e padronizar o desenvolvimento de software Modelo cascata Modelo iterativo e incremental (RUP) Aumento de problemas com prazos devido a grande manutenção de artefatos MDA (2001) Abordagem do desenvolvimento de software baseado na elaboração de modelos. Distinção e mapeamento de duas etapas bem definidas: modelo de negócio e modelo direcionado a tecnologia a ser adotada pelo sistema Motivação Não existir nenhuma metodologia que auxilie o desenvolvimento de sistemas com abordagem em MDA O fator índice de produtividade declarado por diversas empresas que trabalham com a abordagem MDA Ganho na qualidade oferecido por sistemas desenvolvidos com a metodologia RUP Identificação da junção entre os melhores conceitos das duas abordagens através de pesquisas realizadas Objetivo Estudo do framework MDA Fornecimento de dados sobre a perspectiva de desenvolvimento RUP Fornecer novas idéias para futuras propostas de adaptação do RUP para uma visão MDA MDA x RUP O que é metodologia? O que é Metodologia? É um processo de desenvolvimento de software formado por um conjunto de métodos e práticas de desenvolvimento com orientações nas linguagens, paradigmas, tecnologias e ferramentas utilizadas MDA x RUP Abordagem RUP Palavras chave Desenvolvimento de sistema iterativo e incremental Guiado por casos de uso Baseado na arquitetura do sistema Orientado a objetos (OO) Fases e Fluxos do RUP Fases e Fluxos- RUP Fases Concepção – escopo, casos de negócio e viabilidade econômica Elaboração – definição das necessidades do projeto e da arquitetura Construção – desenvolvimento e testes do código do produto Transição – entrega do sistema ao usuário final Fluxos Modelagem do negócio – entendimento comum entre usuários clientes e desenvolvedores Requisitos – descreve o que o sistema deve fazer , gerencia escopo de mudanças de requisitos Análise e projeto – traduz os requisitos do sistema numa especificação de como implementá-lo Implementação – construção do sistema baseados em seus requisitos Testes – testes de integração e de sistema Implantação – planejamento da implantação, empacotamento do software e material de suporte ao usuário Planejamento e gerenciamento – estima, define e prevê prazos esforços e custos para o projeto Gerência e configuração de ambiente – define o ambiente de desenvolvimento, as políticas para o controle de versões, solicitações de mudanças. MDA x RUP Abordagem MDA MDA - Conceitos Model Driven Architecture é um framework para Modelos? desenvolvimento de sistemas distribuídos definido pela OMG (Object Management Group) Baseado na importância de modelos nos processos de desenvolvimento de software Plataforma Minimiza problemas de variedades de Independente? plataformas Reduz tempo, custo e complexidade do desenvolvimento e do gerenciamento de aplicações Plataforma independente da tecnologia a Domínio ser adotada Domínio específico de 1...n plataformasEspecífico? O que é um Modelo ? Desenho das informações que descreve o sistema através de uma linguagem Linguagem é escrito em descreve Modelo Sistema Linguagem MDA = PIM – Plataform Independent Model Primeiro modelo MDA a ser desenvolvido Modelo dos processos de negócio Maior nível de abstração Independente da tecnologia a ser adotada para o sistema PSM – Plataform Specific Model Modelo originado da transformação do PIM Modelo específico baseado em uma plataforma particular MDA - Transformações Os tipos de transformações são: PIM para PSM, PSM para código e PIM para código Podem ser realizadas manualmente ou através de ferramentas O maior ganho está na transformação entre os modelos PIM e PSM requisitos do sistema código definições para transformação PIM ferramenta de transformação PSM definições para transformação ferramenta de transformação MDA - Resumo Requisitos do negócio PIM PSM PSM PSM ... implementação implementação implementação ... MDA x RUP Exemplo MDA Simples exemplo <Car> <doors>2</doors> <colour>red<colour> </Car> public class Car { public colour colour; public int door;} Exemplo de PIM e PSM Sistema BuySell PIM Query of price (PriceQuery) Ordering (Order) PSM Exemplo de mapeamento em EJB Exemplo de PIM Exemplo de PSM PSM PIM mapeando para EJB MDA x RUP MDA x RUP Problemas - RUP Produtividade Portabilidade Interoperabilidade Problemas RUP - Produtividade Grande volume de papel produzido (artefatos e diagramas) Dificuldade de manutenção dos artefatos e diagramas X código Grande parte da produtividade do projeto é direcionada na manutenção de artefatos e diagramas em vez da construção de código Problemas RUP - Portabilidade Novas tecnologias estão surgindo rapidamente As empresas precisam atualizar suas tecnologias Por demanda dos clientes Para resolver problemas e falhas da tecnologia atual utilizada Por vendedores não prestarem suporte a tecnologias ultrapassadas É necessário que os sistemas sejam atualizados da forma mais rápida e segura Problemas RUP - Interoperabilidade Mais sistemas precisam se comunicar com outros Um mesmo sistema pode utilizar várias tecnologias que precisam se comunicar para que o sistema funcione (Ex.: EJB, banco de dados relacional...) MDA - Produtividade A produtividade basicamente está na modelagem do PIM Abstração dos detalhes das tecnologias específicas durante a fase de modelagem, uma vez que serão gerados automaticamente na transformação do PIM para PSM No PSM e no código a escrita é mínima, uma vez que a maior parte do código foi gerado na transformação do PSM para código MDA – Produtividade - Caso Prático Estudo revela 35% de ganho com uso de padrão MDA - 25/07/2003 Conduzido pela Middleware Company, a pesquisa comparou o uso de diferentes modelos de desenvolvimento Um estudo independente apresentado pela Compuware e conduzido pela Middleware Company, consultoria em Java, revelou um ganho de 35% em produtividade nas organizações que adotaram o MDA. O resultado foi obtido na comparação entre os padrões MDA e o já utilizado em outras IDE´s (Integrated Development Environment). MDA – Produtividade - Caso Prático Segundo a pesquisa “Model Driven Development for J2EE Utilizing a MDA Approach”, foram chamados dois times de desenvolvedores, com as mesmas habilidades e produzindo a mesma aplicação Java 2 Enterprise Edition (J2EE). O primeiro utilizou uma ferramenta baseada em MDA e o segundo uma IDE padrão centrada no código. Ao final da experiência, a equipe que utilizou o MDA criou uma aplicação em 330 horas, contra 507 horas do tradicional IDE, resultando em uma vantagem de 35 %. O Compuware OptmalJ serviu como base para os testes. MDA - Portabilidade A portabilidade é obtida a partir da modelagem do PIM Tudo o que foi modelado no PIM é completamente portável para qualquer tecnologia A dimensão da portabilidade a ser obtida depende da automação das ferramentas de transformação avaliadas MDA - Interoperabilidade Através de bridges entre os PSM´s gerados a partir do mesmo PIM Bridges são geradas através dos relacionamentos dos conceitos entre plataformas. PIM PSM (Java Code) Código PSM PSM Bridge (relational database) Code Bridge Código MDA x RUP Conclusão MDA x RUP - Ciclo de vida desenvolvimento RUP requisitos textos desenvolvimento MDA requisitos textual análise diagramas e textos projeto diagramas e textos codificação análise PIM projeto PSM codificação código testes código testes código código desenvolvimento desenvolvimento Conclusão MDA não é uma metodologia de desenvolvimento de software O RUP é uma metodologia de desenvolvimento de software Então podemos propor alterações no RUP para tratar as definições que o MDA propõe Esta não é uma tarefa fácil! Espero ter conseguido esclarecer os conceitos envolvendo MDA e RUP para incentivar o leitor a continuar esta idéia MDA x RUP Referências Referências Sites: SOLEY, Richard. Model Driven Architecture – OMG Site (http://www.omg.org/mda/papers.htm) SIEGEL, Jon. Developing in OMG´s Model Driven Architecture (MDA) – OMG Site (http://www.omg.org/mda/papers.htm) MUKERJI, Jishnu. Model Driven Architecture (MDA) – Document Number Ormsc / 2001-07-01 (http://www.omg.org/mda) Referências Livros: KLEPPE, Anneke - WARMER, Jos – BAST, Wim – MDA Explained – The Model Driven Architecture: Pratice and Promise – April 2003 MELLOR, Stephen J. – BALCER, Marc J. – Executable UML – A Foundation for Model Driven Architecture – May 2002