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
Download

MDA na pratica