MDA na Prática Flávia Durans Pitta Marinho fdurans@ig.com.br

Preview:

Citation preview

MDA na Prática

Flávia Durans Pitta Marinhofdurans@ig.com.br

Agenda - MDA

Conceitos Processos de Desenvolvimento de Software Framework EDOC Ferramentas

MDA na Prática

Conceitos MDA

Model Driven Architecture é um framework para desenvolvimento de sistemas distribuídos definido pela OMG (Object Management Group)

Baseado na importância de modelos nos processos de desenvolvimento de software Minimiza problemas de variedades de plataformas Reduz tempo, custo e complexidade do desenvolvimento e do gerenciamento de

aplicações Plataforma independente da tecnologia a ser adotada Domínio específico de 1...n plataformas

MDA - Conceitos

Modelos?

PlataformaIndependente?

Domínio Específico?

O que é um Modelo ?

Modelo

Sistema

Linguagem

é escritoem

descreve

Desenho das informações que descreve o sistema através de uma linguagem

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

implementação implementação implementação ...

PIM

PSM PSM ...PSM

Simples exemplo

<Car> <doors>2</doors> <colour>red<colour></Car>

mod

elo

em X

MI

mod

elo

em ja

va

public class Car { public colour colour;

public int door;}

Exemplo de PIM e PSM

Query of price (PriceQuery)Ordering (Order)

Sistema BuySell

PSMExemplo de mapeamento em EJB

PIM

Exemplo de PIM

Exemplo de PSM

PIM

mapeandopara EJB

PSM

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 desenvolvimentopr

o gra

ma ç

ã oPr

oces

so

itera

tivo

requisitos

análise

projeto

codificação

testes

desenvolvimento

textos

diagramas etextos

diagramas etextos

código

código

requisitos

PIM

PSM

código

código

análise

projeto

codificação

testes

desenvolvimento

textual

desenvolvimento tradicional

desenvolvimentoMDA

São sempre executadas por ferramentas O maior ganho está na transformação entre

os modelos PIM e PSM

MDA - Transformações

PIM

requisitos do sistema

PSM

código

ferramenta de

transformação

definições paratransformação

ferramenta de

transformação

definições paratransformaçã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(relational database)

PSM (Java Code)

CódigoCódigo

PSMBridge

CodeBridge

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

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 do

sistema no contexto do negócio que o suporta Relacionamento – Modela os relacionamentos entre as

entidades de negócio e de sistema

PIM – Arquitetura ECAFerramentaCCA(Component X)

Ferramentas UML(Rational Rose, Poseidon,Visual Paradigm)

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

Recommended