55
MDA: Model-Driven Architecture João Marco Marcel Lessa Paulo Ferreira Thiago Feitoza Thiago Fraga

TEES - MDA Apresentação Final

Embed Size (px)

Citation preview

MDA: Model-Driven Architecture

João MarcoMarcel LessaPaulo FerreiraThiago FeitozaThiago Fraga

Roteiro

• Introdução• O que é MDA?• Histórico• Quem utiliza e em que situação?• Papéis• Relação com outras metodologias• Tecnologias de modelagem• Modelos do MDA• Ferramentas CASE para MDA• PMBOK• Considerações Finais• Referências

Introdução

• O rápido avanço tecnológico diminui o tempo necessário para que um sistema atual se torne obsoleto

• Isso causa um grande esforço na reengenharia de sistemas antigos

• A MDA visa diminuir esse esforço, através da criação de modelos independentes de plataformas

O que é MDA?

Histórico

• Proposta em 2001 pela OMG

• Esforços anteriores em abordagens dirigidas a modelos fracassaram por prenderem os utilizadores às suas ferramentas

Quem utiliza e em que situação?

• Quem:o IBMo Borland

• Em que situação:o Sistemas distribuídoso SOAo Sistemas embarcadoso Sistemas de tempo realo Sistemas pervasivos

Papéis em MDA

Papel Como atua em MDA

Analista de Requisitos Não muda

Analista/Designer Modelos gerados precisam de maior formalidade e precisão; modela apenas a lógica do negócio

Arquiteto Utilizará sua experiência para selecionar os modelos e mapeamentos específicos para melhorar a performance do sistema

Analista/Programador Expressa-se no formato QVT (Query/ View/ Transformation), em vez de linguagens como C# ou Java; cria regras mais genéricas

Testador Não muda; ferramentas aumentam sua eficiência

Mantenedor Alterações serão feitas nos modelos, não no código

Cliente Terá um produto com melhor qualidade

Relação com outras metodologias

• Agile MDAo Uso dos modelos certoso Modelos pequenos que crescem iterativamenteo Aplicar os princípios e práticas do manifesto ágil

• ADMo Architecture-Driven Modernizationo Engenharia reversao Geração de modelos a partir de sistemas em

funcionamento

Tecnologias

• Abordagem principalmente focada em modelos, como o próprio nome indica

• Tecnologias de modelagem utilizadaso MOFo UMLo CWMo XMI

MOF (Meta Object Facility)

• MOF é uma tecnologia de meta-metamodelagem• Se baseia no conceito de 4 camadas de modelagem

o Camada de informaçãoo Camada de modeloso Camada de metamodeloso Camada de meta-metamodelos 

MOF

MOF

UML (Unified ModellingLanguage)• Linguagem de modelagem visual • Utilizada quase da mesma forma que na abordagem

OO• É altamente recomendável que os modelos sejam o

mais completos possíveis• A idéia geral é gerar código automaticamente a

partir dos modelos UML (UML executável)• Os diagramas mais importantes são o de classes e o

de máquina de estados

UML

• Perfiso Extensões do modelo UML que fornecem

estereótipos, constraints, etc.o Específicos para um determinado domínio ou

plataformao MDA usa alguns perfis UML

CORBA EDOC (Enterprise Distributed Object Computing)

CWM (Common WarehouseMetamodel)• Framework para representar metadados desde os

dados até as operações das datawarehouses• Utiliza o modelo de objetos UML• É composto de três submodelos:

o Data resourceso Data analysiso Warehouse managements

XMI (XML MetadataInterchange)• É um framework para definir, trocar, manipular e

integrar dados e objetos XML.• Provê mapeamentos de MOF para XML e vice-versa.• Uso de schemas XML

Tipos de Modelos MDA

• OMG definiu um conjunto específico de camadas e transformações que determina uma estrutura conceitual e vocabulários para o MDA

• Existem quatro tipos de modeloso CIMo PIMo PSMo ISM

Computation Independent Model (CIM)• Não mostra detalhes da estrutura do sistema• Define o domínio do sistema e os serviços e

entidades envolvidas • Foco nos requisitos• Difícil mapeamento• Muitos não abordam o modelo

Platform Independent Model (PIM)

• Tecnologicamente neutra • Permite uso com diferentes plataformas• Define a arquitetura do sistema • Construção especificada sem detalhes de

implementação• Deve ser entendido por humanos e por máquinas

Platform Definition Model (PDM)

• Platform Model (PM)• Conjunto de conceitos técnicos de diferentes partes

que formam a plataforma• Os diferentes elementos oferecidos ao sistema

 

Platform Specific Model (PSM)

• Combina as especificações do PIM com detalhes de como o sistema usa determinada plataforma 

• Define como o sistema é desenvolvido• Se o PSM pover todas as informações necessárias

para construir e operar um sistema, então é considerado uma implementação

• Registro de transformação

Platform Specific Model (PSM)

• Descrição do sistema em código fonte

Implementation Specific Model (ISM)

Processo para sistemas complexos

Ciclo de Vida da MDA

Ferramentas CASE para MDA

• "Computer-Aided Software Engineering"• Existem ferramentas variadas que auxiliam o MDA

o Criação de modeloso Transformação de modeloso Geração de código

• OptimalJ • AndroMDA

Ferramentas CASE para MDA

• OptimalJo Desenvolvido pela Compuware e construído em

cima do Eclipseo Utiliza a UML para modelagemo Voltado a Javao Divide o desenvolvimento em 3 etapas:

Modelo de domínio (PIM) Modelo de aplicação (PSM) Modelo de código (Código fonte)

o Utiliza regras que mapeia os tipos do modelo fonte para os tipos do modelo alvo 

o A tranformação do PIM em PSM insere uma arquitetura de camadas ao modelo

Ferramentas CASE para MDA

• OptimalJo  Após a transformação do PIM em PSM é gerado

um registro da transformação Cada elemento do modelo informa de onde foi

criado ou o que ele deu origemo Versão atual: 4.3

Ferramentas CASE para MDA

• AndroMDAo Framework open source baseado em MDAo Utiliza UML para a modelagemo Metamodelo UML 1.4

UML 2.0 em fase de desenvolvimento Permite adicionar um metamodelo em MOF XMI

e gerar código a partir dele o Plugins (cartuchos) para transformação de

modelos em componentes de uma plataforma específica

Ferramentas CASE para MDA

• AndroMDAo Possui cartuchos nativos para transformações 

Spring EJB 2 / 3 WebServices Hibernate Struts JSF Java XSD

o Atualmente na versão 3.3

Ferramentas CASE para MDA

• AndroMDAo Faz transformação do PIM direto pro código fonte o O PIM precisa ser marcado antes de realizar a

transformaçãoo Além dos cartuchos, o mapeamento pode ser feito

com arquivos de mapeamento XML Mapeia tipos de dados do modelo fonte a tipos

de dados do modelo alvoo Android: plugin para Eclipse

Ferramentas CASE para MDA

• Aplicaçãoo OptimalJ

Interpreta apenas o diagrama de classes e o diagrama de atividades

Algumas restrições para o diagrama de classes Não aceita interfaces 

 

 

Ferramentas CASE para MDA

• Aplicaçãoo AndroMDA 

Modelagem realizada em outra ferramenta: MagicDraw

Utiliza diagramas de casos de uso, diagramas de classe e diagramas de atividades

Possibilita geração de código com arquitetura em camadas

Restriçoes no diagrama de casos de uso Não há <<include>> e <<extends>> 

Após criação dos modelos do PIM, os modelos são marcados

PMBOK

• Project Management Body of Knowledge• PMI - Project Management Institute• Define como gerir um projeto baseando-se em boas

práticas• Atualmente na 3ª edição

PMBOK

• Consiste em:o Definição do cliclo de vida e da organização de um

projeto

PMBOK

• Ciclo de vida do projeto e do produto

Processo para sistemas complexos

Proposta

Proposta

• Utilizar artefatos gerados pelos Processos de Planejamento do Projeto dentro do ciclo de vida do produtoo EAP - Estrutura analítica do projetoo Definição e sequenciamento de atividadeso Definição do cronograma

• Benefícioso Uso de práticas reconhecidas como relevanteso Gestão efetiva do desenvolvimento softwareo Benefícios de desenvolvimento orientado a

modelos

Criação da EAP

• É uma decomposição hierárquica orientada às entregas do projeto

• Organiza e define o escopo do projeto, subdividindo o trabalho do projeto em partes menores e mais facilmente gerenciáveis

• Cada nível descendente da EAP representa uma definição cada vez mais detalhada do trabalho do projeto

• Contém o detalhamento do escopo do projeto e do escopo do produto 

Criação da EAP

• Ferramentas e Técnicas

Criação da EAP

• Exemplo de EAP

Considerações Finais

• É uma metodologia rápida ou tradicional? • Podemos gerar todo o código a partir dos modelos

aplicando MDA? Programadores são desnecessários? • É simples ou complexa?

 • É iterativa ou incremental?

• É viável? 

Referências

• Object Management Groupo http://www.omg.org/ 

• Aplication Development Trends:o http://www.adtmag.com/article.aspx?

id=6311&amp;page• Agile Modeling

o http://www.agilemodeling.com/essays/• Solar Soft

o http://www.solarsoft.com.br/br/wwwPortalFSW/home/archives/ArticleID/0006220507.php

• Goobiz - Pattern for Identifiable Service Specifications (PISS)  

o http://www.goobiz.com/Pattern%20for%20Identifiable%20Service%20Specifications%20(PISS).htm

Referências

 • Calic, T., Dascalu, S., Dwight, E. 2008. Tools for MDA

Software Development: Evaluation Criteria and Set of Desirable Features. In: Fifth International Conference on Information Technology: New Generations.

• Caliari, G. L. P.Transformações e mapeamentos da MDA e sua implementação em três ferramenta. Escola Politécnica da Universidade de São Paulo, 2007.

• AndroMDAo http://www.andromda.org/o http://www-128.ibm.com/developerworks/library/

wi-arch19/

Referências

• The Meta Object Facility (MOF) Specificationo http://www.omg.org/cgi-bin/apps/doc?ptc/04-10-

15.pdf • OMG Unified Modeling Language (OMG

UML), Infrastructure, V2.1.2o  http://www.omg.org/spec/UML/2.1.2/

Infrastructure/PDF/ • Common Warehouse Metamodel (CWM) Specification

o http://www.omg.org/spec/CWM/1.1/PDF/ • MOF 2.0/XMI Mapping, Version 2.1.1

o http://www.omg.org/spec/XMI/2.1.1/PDF/index.htm