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
Download

Workshop_Seminario_MDAxRUP_18022004