MDA: Model-Driven Architecture João Marco Marcel Lessa Paulo Ferreira Thiago Feitoza Thiago Fraga
Roteiro <ul><ul><li>O que é MDA? </li></ul></ul><ul><ul><li>Especificações de Modelagem </li></ul></ul><ul><ul><li>Modelos...
O que é MDA? <ul><ul><li>Definida pela OMG </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul>...
O que é MDA?
Modelagem <ul><ul><li>Abordagem principalmente focada em modelos, como o próprio nome indica </li></ul></ul><ul><ul><li>Es...
UML (Unified Modelling Language) <ul><ul><li>Utilizada quase da mesma forma que na abordagem OO </li></ul></ul><ul><ul><li...
MOF (Meta Object Facility) <ul><ul><li>MOF é uma tecnologia para especificação de especificações de modelos, isto é, o con...
CWM (Common Warehouse Metamodel) <ul><ul><li>Sua função é extender o modelo de objetos da UML, fornecendo um framework par...
XMI (XML Metadata Interchange) <ul><ul><li>XMI tem duas funções: </li></ul></ul><ul><ul><ul><li>É um framework para defini...
Tipos de Modelos MDA <ul><ul><li>OMG definiu um conjunto específico de camadas e transformações que determina uma estrutur...
Computation Independent Model (CIM) <ul><ul><li>Domain Model ou Modelo de Requisitos </li></ul></ul><ul><ul><li>Não mostra...
Platform Independent Model (PIM) <ul><ul><li>Modelo de análise e projeto </li></ul></ul><ul><ul><li>Tecnologicamente neutr...
Platform Specific Model (PSM) <ul><ul><li>Modelo de realização  </li></ul></ul><ul><ul><li>Combina as especificações do PI...
Platform Definition Model (PDM) <ul><ul><li>Platform Model (PM) </li></ul></ul><ul><ul><li>Conjunto de conceitos técnicos ...
Implementation Specific Model (ISM) <ul><ul><li>Descrição do sistema em código fonte </li></ul></ul>
Processo para sistemas complexos
Ciclo de Vida da MDA
Ferramentas CASE <ul><ul><li>&quot;Computer-Aided Software Engineering&quot; </li></ul></ul><ul><ul><li>Existem ferramenta...
Ferramentas CASE <ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>Framework open source baseado em MDA </li></ul></ul><...
Ferramentas CASE <ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>Possui cartuchos nativos para transformações  </li></...
Ferramentas CASE <ul><ul><li>Accelo </li></ul></ul><ul><ul><ul><li>Ferramenta integrada ao Eclipse para transformação de m...
Ferramentas CASE <ul><ul><li>Accelo </li></ul></ul><ul><ul><ul><li>Um módulo é um conjunto de  templates  que possuem a in...
Papéis em MDA <ul><ul><li>Analista de requisitos </li></ul></ul><ul><ul><li>Analista/Designer </li></ul></ul><ul><ul><li>A...
PMBOK <ul><ul><li>Project Management Body of Knowledge </li></ul></ul><ul><ul><li>PMI - Project Management Institute </li>...
PMBOK <ul><ul><li>Consiste em: </li></ul></ul><ul><ul><ul><li>Definição do cliclo de vida e da organização de um projeto <...
PMBOK <ul><ul><li>Sequência típica de fases </li></ul></ul>
PMBOK <ul><ul><li>Áreas de conhecimento </li></ul></ul><ul><ul><ul><li>Gerência de integração de projetos </li></ul></ul><...
Proposta <ul><ul><li>Criar uma relação de integração entre o Ciclo de Vida MDA e o Ciclo de Vida e Organização de um Proje...
Considerações Finais <ul><ul><li>É uma metodologia rápida ou tradicional? </li></ul></ul><ul><li>  </li></ul><ul><ul><li>P...
Referências <ul><ul><li>Object Management Group </li></ul></ul><ul><ul><ul><li>http://www.omg.org/   </li></ul></ul></ul><...
Próximos SlideShares
Carregando em…5
×

Mda Apresentacao

1.389 visualizações

Publicada em

Publicada em: Educação, Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.389
No SlideShare
0
A partir de incorporações
0
Número de incorporações
59
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mda Apresentacao

  1. 1. MDA: Model-Driven Architecture João Marco Marcel Lessa Paulo Ferreira Thiago Feitoza Thiago Fraga
  2. 2. Roteiro <ul><ul><li>O que é MDA? </li></ul></ul><ul><ul><li>Especificações de Modelagem </li></ul></ul><ul><ul><li>Modelos/Camadas </li></ul></ul><ul><ul><li>Ferramentas CASE para MDA </li></ul></ul><ul><ul><li>PMBOK </li></ul></ul><ul><ul><li>Considerações Finais </li></ul></ul><ul><ul><li>Referências </li></ul></ul>
  3. 3. O que é MDA? <ul><ul><li>Definida pela OMG </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><ul><li>Foca em modelos </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Transformações sucessivas </li></ul></ul>
  4. 4. O que é MDA?
  5. 5. Modelagem <ul><ul><li>Abordagem principalmente focada em modelos, como o próprio nome indica </li></ul></ul><ul><ul><li>Especificações de modelagem e metadados utilizadas: UML, CWM, MOF, XMI </li></ul></ul>
  6. 6. UML (Unified Modelling Language) <ul><ul><li>Utilizada quase da mesma forma que na abordagem OO </li></ul></ul><ul><ul><li>É altamente recomendável que os modelos sejam o mais completos possíveis </li></ul></ul><ul><ul><li>A idéia geral é gerar código automaticamente a partir dos modelos UML </li></ul></ul>
  7. 7. MOF (Meta Object Facility) <ul><ul><li>MOF é uma tecnologia para especificação de especificações de modelos, isto é, o conceito de meta-metamodelos </li></ul></ul><ul><ul><li>Por exemplo, uma especificação UML (modelo) de um determinado sistema é baseada na especificação genérica da UML (metamodelo), que por sua vez é baseada na MOF (meta-metamodelo) </li></ul></ul>
  8. 8. CWM (Common Warehouse Metamodel) <ul><ul><li>Sua função é extender o modelo de objetos da UML, fornecendo um framework para representar metadados desde os dados até as operações das datawarehouses </li></ul></ul><ul><ul><li>Baseia-se na MOF  </li></ul></ul>
  9. 9. XMI (XML Metadata Interchange) <ul><ul><li>XMI tem duas funções: </li></ul></ul><ul><ul><ul><li>É um framework para definir, trocar, manipular e integrar dados e objetos XML. </li></ul></ul></ul><ul><ul><ul><li>Provê um mapeamento de MOF para XML. </li></ul></ul></ul>
  10. 10. Tipos de Modelos MDA <ul><ul><li>OMG definiu um conjunto específico de camadas e transformações que determina uma estrutura conceitual e vocabulários para o MDA </li></ul></ul><ul><ul><li>Existem quatro tipos de modelos </li></ul></ul><ul><ul><ul><li>CIM </li></ul></ul></ul><ul><ul><ul><li>PIM </li></ul></ul></ul><ul><ul><ul><li>PSM </li></ul></ul></ul><ul><ul><ul><li>ISM </li></ul></ul></ul>
  11. 11. Computation Independent Model (CIM) <ul><ul><li>Domain Model ou Modelo de Requisitos </li></ul></ul><ul><ul><li>Não mostra detalhes da estrutura do sistema </li></ul></ul><ul><ul><li>Define o domínio do sistema e os serviços e entidades envolvidas </li></ul></ul><ul><ul><li>Foco nos requisitos </li></ul></ul><ul><ul><li>Difícil mapeamento </li></ul></ul>
  12. 12. Platform Independent Model (PIM) <ul><ul><li>Modelo de análise e projeto </li></ul></ul><ul><ul><li>Tecnologicamente neutra </li></ul></ul><ul><ul><li>Permite uso com diferentes plataformas </li></ul></ul><ul><ul><li>Define a arquitetura do sistema </li></ul></ul><ul><ul><li>Construção especificada sem detalhes de implementação </li></ul></ul>
  13. 13. Platform Specific Model (PSM) <ul><ul><li>Modelo de realização </li></ul></ul><ul><ul><li>Combina as especificações do PIM com detalhes de como o sistema usa determinada plataforma  </li></ul></ul><ul><ul><li>Define como o sistema é desenvolvido </li></ul></ul>
  14. 14. Platform Definition Model (PDM) <ul><ul><li>Platform Model (PM) </li></ul></ul><ul><ul><li>Conjunto de conceitos técnicos de diferentes partes que formam a plataforma </li></ul></ul><ul><ul><li>Os diferentes elementos oferecidos ao sistema </li></ul></ul><ul><li>  </li></ul>
  15. 15. Implementation Specific Model (ISM) <ul><ul><li>Descrição do sistema em código fonte </li></ul></ul>
  16. 16. Processo para sistemas complexos
  17. 17. Ciclo de Vida da MDA
  18. 18. Ferramentas CASE <ul><ul><li>&quot;Computer-Aided Software Engineering&quot; </li></ul></ul><ul><ul><li>Existem ferramentas variadas que auxiliam o MDA </li></ul></ul><ul><ul><ul><li>Criação de modelos </li></ul></ul></ul><ul><ul><ul><li>Transformação de modelos </li></ul></ul></ul><ul><ul><ul><li>Geração de código </li></ul></ul></ul><ul><ul><li>AndroMDA </li></ul></ul><ul><ul><li>Accelo </li></ul></ul>
  19. 19. Ferramentas CASE <ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>Framework open source baseado em MDA </li></ul></ul></ul><ul><ul><ul><li>Utiliza UML para a modelagem </li></ul></ul></ul><ul><ul><ul><li>Metamodelo UML 1.4 </li></ul></ul></ul><ul><ul><ul><ul><li>UML 2.0 em fase de desenvolvimento </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Permite adicionar um metamodelo em MOF XMI e gerar código a partir dele  </li></ul></ul></ul></ul><ul><ul><ul><li>Permite transformações Model-to-Model </li></ul></ul></ul><ul><ul><ul><li>Plugins (cartuchos) para transformação de modelos em componentes de uma plataforma específica </li></ul></ul></ul>
  20. 20. Ferramentas CASE <ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>Possui cartuchos nativos para transformações  </li></ul></ul></ul><ul><ul><ul><ul><li>Spring </li></ul></ul></ul></ul><ul><ul><ul><ul><li>EJB 2 / 3 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>WebServices </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Hibernate </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Struts </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JSF </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Java </li></ul></ul></ul></ul><ul><ul><ul><ul><li>XSD </li></ul></ul></ul></ul><ul><ul><ul><li>Atualmente na versão 3.3 </li></ul></ul></ul>
  21. 21. Ferramentas CASE <ul><ul><li>Accelo </li></ul></ul><ul><ul><ul><li>Ferramenta integrada ao Eclipse para transformação de modelos em código </li></ul></ul></ul><ul><ul><ul><li>Compatibilidade com UML 1.x e 2 </li></ul></ul></ul><ul><ul><ul><li>Utiliza o conceito de módulos para realizar transformações </li></ul></ul></ul>
  22. 22. Ferramentas CASE <ul><ul><li>Accelo </li></ul></ul><ul><ul><ul><li>Um módulo é um conjunto de templates que possuem a informação necessária para gerar código fonte a partir de um meta-modelo </li></ul></ul></ul><ul><ul><ul><li>Cada módulo representa uma tecnologia específica </li></ul></ul></ul><ul><ul><ul><ul><li>Java </li></ul></ul></ul></ul><ul><ul><ul><ul><li>C# </li></ul></ul></ul></ul><ul><ul><ul><li>Um template possui scripts que podem ser modificados para customizar o gerador </li></ul></ul></ul><ul><ul><ul><li>Accelo é compatível com XMI 1.x e XMI 2 </li></ul></ul></ul>
  23. 23. Papéis em MDA <ul><ul><li>Analista de requisitos </li></ul></ul><ul><ul><li>Analista/Designer </li></ul></ul><ul><ul><li>Arquiteto </li></ul></ul><ul><ul><li>Analista/Programador </li></ul></ul><ul><ul><li>Testador </li></ul></ul><ul><ul><li>Mantenedor </li></ul></ul><ul><ul><li>Cliente </li></ul></ul>
  24. 24. PMBOK <ul><ul><li>Project Management Body of Knowledge </li></ul></ul><ul><ul><li>PMI - Project Management Institute </li></ul></ul><ul><ul><li>Define como gerir um projeto baseando-se em boas práticas </li></ul></ul><ul><ul><li>Atualmente na 3ª edição </li></ul></ul>
  25. 25. PMBOK <ul><ul><li>Consiste em: </li></ul></ul><ul><ul><ul><li>Definição do cliclo de vida e da organização de um projeto </li></ul></ul></ul>
  26. 26. PMBOK <ul><ul><li>Sequência típica de fases </li></ul></ul>
  27. 27. PMBOK <ul><ul><li>Áreas de conhecimento </li></ul></ul><ul><ul><ul><li>Gerência de integração de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de escopo de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de tempo de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de custo de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de qualidade de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de recursos humanos de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de comunicações de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de riscos de projetos </li></ul></ul></ul><ul><ul><ul><li>Gerência de aquisições de projetos   </li></ul></ul></ul>
  28. 28. Proposta <ul><ul><li>Criar uma relação de integração entre o Ciclo de Vida MDA e o Ciclo de Vida e Organização de um Projeto </li></ul></ul><ul><ul><li>Benefícios </li></ul></ul><ul><ul><ul><li>Uso de práticas reconhecidas como relevantes </li></ul></ul></ul><ul><ul><ul><li>Gestão efetiva do desenvolvimento software </li></ul></ul></ul><ul><ul><ul><li>Benefícios de desenvolvimento orientado a modelos </li></ul></ul></ul>
  29. 29. Considerações Finais <ul><ul><li>É uma metodologia rápida ou tradicional? </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Podemos gerar todo o código a partir dos modelos aplicando MDA? Programadores são desnecessários? </li></ul></ul><ul><li>  </li></ul><ul><ul><li>É simples ou complexa? </li></ul></ul><ul><li>  </li></ul><ul><ul><li>É iterativa ou incremental? </li></ul></ul><ul><ul><li>É viável?  </li></ul></ul>
  30. 30. Referências <ul><ul><li>Object Management Group </li></ul></ul><ul><ul><ul><li>http://www.omg.org/   </li></ul></ul></ul><ul><ul><li>Aplication Development Trends: </li></ul></ul><ul><ul><ul><li>http://www.adtmag.com/article.aspx?id=6311&amp;page </li></ul></ul></ul><ul><ul><li>Examining the Model Driven Architecture (MDA) </li></ul></ul><ul><ul><ul><li>http://www.agilemodeling.com/essays/mda.htm </li></ul></ul></ul><ul><ul><ul><li>http://www.agilemodeling.com/essays/readyForMDA.htm </li></ul></ul></ul><ul><ul><li>Solar Soft </li></ul></ul><ul><ul><ul><li>http://www.solarsoft.com.br/br/wwwPortalFSW/home/ </li></ul></ul></ul><ul><li>archives/ArticleID/0006220507.php </li></ul>

×