MDA na Prática Flávia Durans Pitta Marinho [email protected] Agenda - MDA Conceitos Processos de Desenvolvimento de Software Framework EDOC Ferramentas MDA na Prática Conceitos 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 - Resumo Requisitos do negócio PIM PSM PSM PSM ... implementação implementação implementação ... 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 na Prática Processos de Desenvolvimento de Software Problemas - Software Tradicional Produtividade Portabilidade Interoperabilidade Problemas - 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 Problema na manutenção dos sistemas por outras pessoas na equipe RUP XP, Agile Problemas - 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 - 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 – Ciclo de vida de desenvolvimento desenvolvimento tradicional 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 MDA - Transformações São sempre executadas por 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 - 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 - 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 na Prática Framework MDA Framework Modelo é a descrição do sistema. PIM (Plataform Independent Model) é o modelo mais abstrato do sistema PSM (Plataform Specific Model) é o modelo mais específico sobre a tecnologia utilizada Linguagem descreve o |modelo Definição da transformação determina como o modelo original pode ser transformado no modelo alvo Ferramenta de transformação executa a transformação de um modelo específico a partir da definição da transformação. MDA na Prática EDOC - Enterprise Distributed Object Computing EDOC Consiste de um perfil público de desenvolvimento, inicialmente voltado para componentes distribuídos Modela objetos de acordo com as especificações MDA. Possui perfil independente de tecnologia - a arquitetura ECA (Enterprise Collaboration Architecture)- que permite a definição do PIM no MDA Possui um conjunto de modelos para tecnologias específicas sendo mapeadas a partir do PIM PIM – Arquitetura ECA Ferramenta CCA (Component X) A arquitetura ECA compreende 5 perfis: CCA (Component Collaboration Architecture) – Modela a estrutura e o comportamento dos componentes do sistema Entidade – Modelo que define uma representação do domínio da aplicação Evento – Modela sistemas dirigidos a eventos (mudança de estados de uma entidade) Processo de Negócio – Modela o comportamento Ferramentas do UML (Rational Rose, Poseidon, sistema no contexto do negócio que o suporta Visual Paradigm) Relacionamento – Modela os relacionamentos entre as entidades de negócio e de sistema PIM – Pontos de vista MDA na Prática Ferramentas Ferramentas Ferramentas de modelagem Modelagem de componentes na notação CCA Modelagem de componentes através de estereótipos em UML Ferramentas de transformação PIM para PSM PSM para código PIM para código Ferramentas de modelagem – Notação CCA ComponentX Studio – Data Access Technologies cujos componentes possuem as seguintes características: Possuem portas que enviam ou recebem arquivos XML transportados por eventos Java Possuem propriedades que podem ser configuradas e armazenadas em arquivos de configuração XML Possuem implementação baseada em Java São executáveis ComponentX Exemplo de comunicação entre componentes Componente 1 = Pete Componente 2 = Pam Ferramentas de modelagem – UML Várias ferramentas podem ser citadas: Poseidon – Gentleware – Hamburg - Germany Visual Paradigm – Visual Paradigm – Hong Kong - China Rational Rose – IBM – United States Magic Draw – No Magic – Colorado - USA Argo UML – Trigis.com UML - EDOC Demonstração da utilização da UML segundo o perfil EDOC (público) UML - EDOC UML - EDOC Ferramentas de transformação UMT (UML Model Transformation Tool) – ferramenta free para transformação de modelo e geração de código AndroMDA – ferramenta open source de geração de código J2EE a partir de UML/XMI ArcStyler – ferramenta MDA comercializada pelo Interactive Objects Softwares - Germany Codagen Architect – ferramenta MDA de comercialização pela Codagen Technologies Corp. – Montreal - Canada Ferramentas de transformação OptmalJ – produto comercial do Compuware que utiliza padrões para obter transformação para PSM – Detroit – Michigan - USA BridgePoint – produto comercial da Project Technology que suporta geração automática de código a partir de modelos – Tucson – Arizona - USA Exemplo - Rosa´s breakfast service