TEES - MDA Apresentação Final

1,386 views
1,309 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,386
On SlideShare
0
From Embeds
0
Number of Embeds
297
Actions
Shares
0
Downloads
53
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

TEES - MDA Apresentação Final

  1. 1. MDA: Model-Driven Architecture João Marco Marcel Lessa Paulo Ferreira Thiago Feitoza Thiago Fraga
  2. 2. Roteiro <ul><ul><li>Introdução </li></ul></ul><ul><ul><li>O que é MDA? </li></ul></ul><ul><ul><li>Histórico </li></ul></ul><ul><ul><li>Quem utiliza e em que situação? </li></ul></ul><ul><ul><li>Papéis </li></ul></ul><ul><ul><li>Relação com outras metodologias </li></ul></ul><ul><ul><li>Tecnologias de modelagem </li></ul></ul><ul><ul><li>Modelos do MDA </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. Introdução <ul><ul><li>O rápido avanço tecnológico diminui o tempo necessário para que um sistema atual se torne obsoleto </li></ul></ul><ul><ul><li>Isso causa um grande esforço na reengenharia de sistemas antigos </li></ul></ul><ul><ul><li>A MDA visa diminuir esse esforço, através da criação de modelos independentes de plataformas </li></ul></ul>
  4. 4. O que é MDA?
  5. 5. Histórico <ul><ul><li>Proposta em 2001 pela OMG </li></ul></ul><ul><ul><li>Esforços anteriores em abordagens dirigidas a modelos fracassaram por prenderem os utilizadores às suas ferramentas </li></ul></ul>
  6. 6. Quem utiliza e em que situação? <ul><ul><li>Quem: </li></ul></ul><ul><ul><ul><li>IBM </li></ul></ul></ul><ul><ul><ul><li>Borland </li></ul></ul></ul><ul><ul><li>Em que situação: </li></ul></ul><ul><ul><ul><li>Sistemas distribuídos </li></ul></ul></ul><ul><ul><ul><li>SOA </li></ul></ul></ul><ul><ul><ul><li>Sistemas embarcados </li></ul></ul></ul><ul><ul><ul><li>Sistemas de tempo real </li></ul></ul></ul><ul><ul><ul><li>Sistemas pervasivos </li></ul></ul></ul>
  7. 7. 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
  8. 8. Relação com outras metodologias <ul><ul><li>Agile MDA </li></ul></ul><ul><ul><ul><li>Uso dos modelos certos </li></ul></ul></ul><ul><ul><ul><li>Modelos pequenos que crescem iterativamente </li></ul></ul></ul><ul><ul><ul><li>Aplicar os princípios e práticas do manifesto ágil </li></ul></ul></ul><ul><ul><li>ADM </li></ul></ul><ul><ul><ul><li>Architecture-Driven Modernization </li></ul></ul></ul><ul><ul><ul><li>Engenharia reversa </li></ul></ul></ul><ul><ul><ul><li>Geração de modelos a partir de sistemas em funcionamento </li></ul></ul></ul>
  9. 9. Tecnologias <ul><ul><li>Abordagem principalmente focada em modelos, como o próprio nome indica </li></ul></ul><ul><ul><li>Tecnologias de modelagem utilizadas </li></ul></ul><ul><ul><ul><li>MOF </li></ul></ul></ul><ul><ul><ul><li>UML </li></ul></ul></ul><ul><ul><ul><li>CWM </li></ul></ul></ul><ul><ul><ul><li>XMI </li></ul></ul></ul>
  10. 10. MOF (Meta Object Facility) <ul><ul><li>MOF é uma tecnologia de meta-metamodelagem </li></ul></ul><ul><ul><li>Se baseia no conceito de 4 camadas de modelagem </li></ul></ul><ul><ul><ul><li>Camada de informação </li></ul></ul></ul><ul><ul><ul><li>Camada de modelos </li></ul></ul></ul><ul><ul><ul><li>Camada de metamodelos </li></ul></ul></ul><ul><ul><ul><li>Camada de meta-metamodelos  </li></ul></ul></ul>
  11. 11. MOF
  12. 12. MOF
  13. 14. UML (Unified Modelling Language) <ul><ul><li>Linguagem de modelagem visual  </li></ul></ul><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 (UML executável) </li></ul></ul><ul><ul><li>Os diagramas mais importantes são o de classes e o de máquina de estados </li></ul></ul>
  14. 15. UML <ul><ul><li>Perfis </li></ul></ul><ul><ul><ul><li>Extensões do modelo UML que fornecem estereótipos, constraints, etc. </li></ul></ul></ul><ul><ul><ul><li>Específicos para um determinado domínio ou plataforma </li></ul></ul></ul><ul><ul><ul><li>MDA usa alguns perfis UML </li></ul></ul></ul><ul><ul><ul><ul><li>CORBA </li></ul></ul></ul></ul><ul><ul><ul><ul><li>EDOC (Enterprise Distributed Object Computing) </li></ul></ul></ul></ul>
  15. 16. CWM (Common Warehouse Metamodel) <ul><ul><li>Framework para representar metadados desde os dados até as operações das datawarehouses </li></ul></ul><ul><ul><li>Utiliza o modelo de objetos UML </li></ul></ul><ul><ul><li>É composto de três submodelos: </li></ul></ul><ul><ul><ul><li>Data resources </li></ul></ul></ul><ul><ul><ul><li>Data analysis </li></ul></ul></ul><ul><ul><ul><li>Warehouse managements </li></ul></ul></ul>
  16. 17. XMI (XML Metadata Interchange) <ul><ul><li>É um framework para definir, trocar, manipular e integrar dados e objetos XML. </li></ul></ul><ul><ul><li>Provê mapeamentos de MOF para XML e vice-versa. </li></ul></ul><ul><ul><li>Uso de schemas XML </li></ul></ul>
  17. 18. 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>
  18. 19. Computation Independent Model (CIM) <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><ul><ul><li>Muitos não abordam o modelo </li></ul></ul>
  19. 20. Platform Independent Model (PIM) <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><ul><ul><li>Deve ser entendido por humanos e por máquinas </li></ul></ul>
  20. 22. 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>
  21. 23. Platform Specific Model (PSM) <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><ul><ul><li>Se o PSM pover todas as informações necessárias para construir e operar um sistema, então é considerado uma implementação </li></ul></ul><ul><ul><li>Registro de transformação </li></ul></ul>
  22. 24. Platform Specific Model (PSM)
  23. 25. <ul><ul><li>Descrição do sistema em código fonte </li></ul></ul>Implementation Specific Model (ISM)
  24. 26. Processo para sistemas complexos
  25. 27. Ciclo de Vida da MDA
  26. 28. Ferramentas CASE para MDA <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>OptimalJ </li></ul></ul><ul><ul><li>AndroMDA </li></ul></ul>
  27. 29. Ferramentas CASE para MDA <ul><ul><li>OptimalJ </li></ul></ul><ul><ul><ul><li>Desenvolvido pela Compuware e construído em cima do Eclipse </li></ul></ul></ul><ul><ul><ul><li>Utiliza a UML para modelagem </li></ul></ul></ul><ul><ul><ul><li>Voltado a Java </li></ul></ul></ul><ul><ul><ul><li>Divide o desenvolvimento em 3 etapas: </li></ul></ul></ul><ul><ul><ul><ul><li>Modelo de domínio (PIM) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Modelo de aplicação (PSM) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Modelo de código (Código fonte) </li></ul></ul></ul></ul><ul><ul><ul><li>Utiliza regras que mapeia os tipos do modelo fonte para os tipos do modelo alvo  </li></ul></ul></ul><ul><ul><ul><li>A tranformação do PIM em PSM insere uma arquitetura de camadas ao modelo </li></ul></ul></ul>
  28. 30. Ferramentas CASE para MDA <ul><ul><li>OptimalJ </li></ul></ul><ul><ul><ul><li>  Após a transformação do PIM em PSM é gerado um registro da transformação </li></ul></ul></ul><ul><ul><ul><ul><li>Cada elemento do modelo informa de onde foi criado ou o que ele deu origem </li></ul></ul></ul></ul><ul><ul><ul><li>Versão atual: 4.3 </li></ul></ul></ul>
  29. 31. Ferramentas CASE para MDA <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>Plugins (cartuchos) para transformação de modelos em componentes de uma plataforma específica </li></ul></ul></ul>
  30. 32. Ferramentas CASE para MDA <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>
  31. 33. Ferramentas CASE para MDA <ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>Faz transformação do PIM direto pro código fonte  </li></ul></ul></ul><ul><ul><ul><li>O PIM precisa ser marcado antes de realizar a transformação </li></ul></ul></ul><ul><ul><ul><li>Além dos cartuchos, o mapeamento pode ser feito com arquivos de mapeamento </li></ul></ul></ul><ul><ul><ul><ul><li>XML </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mapeia tipos de dados do modelo fonte a tipos de dados do modelo alvo </li></ul></ul></ul></ul><ul><ul><ul><li>Android: plugin para Eclipse </li></ul></ul></ul>
  32. 34. Ferramentas CASE para MDA <ul><ul><li>Aplicação </li></ul></ul><ul><ul><ul><li>OptimalJ </li></ul></ul></ul><ul><ul><ul><ul><li>Interpreta apenas o diagrama de classes e o diagrama de atividades </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Algumas restrições para o diagrama de classes </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Não aceita interfaces  </li></ul></ul></ul></ul></ul>
  33. 35.   <ul><li>  </li></ul>
  34. 38. Ferramentas CASE para MDA <ul><ul><li>Aplicação </li></ul></ul><ul><ul><ul><li>AndroMDA  </li></ul></ul></ul><ul><ul><ul><ul><li>Modelagem realizada em outra ferramenta: MagicDraw </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Utiliza diagramas de casos de uso, diagramas de classe e diagramas de atividades </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Possibilita geração de código com arquitetura em camadas </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Restriçoes no diagrama de casos de uso </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Não há <<include>> e <<extends>>  </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Após criação dos modelos do PIM, os modelos são marcados </li></ul></ul></ul></ul>
  35. 44. 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>
  36. 45. 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>
  37. 46. PMBOK <ul><ul><li>Ciclo de vida do projeto e do produto </li></ul></ul>
  38. 47. Proposta Processo para sistemas complexos
  39. 48. Proposta <ul><ul><li>Utilizar artefatos gerados pelos Processos de Planejamento do Projeto dentro do ciclo de vida do produto </li></ul></ul><ul><ul><ul><li>EAP - Estrutura analítica do projeto </li></ul></ul></ul><ul><ul><ul><li>Definição e sequenciamento de atividades </li></ul></ul></ul><ul><ul><ul><li>Definição do cronograma </li></ul></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>
  40. 49. Criação da EAP <ul><ul><li>É uma decomposição hierárquica orientada às entregas do projeto </li></ul></ul><ul><ul><li>Organiza e define o escopo do projeto, subdividindo o trabalho do projeto em partes menores e mais facilmente gerenciáveis </li></ul></ul><ul><ul><li>Cada nível descendente da EAP representa uma definição cada vez mais detalhada do trabalho do projeto </li></ul></ul><ul><ul><li>Contém o detalhamento do escopo do projeto e do escopo do produto  </li></ul></ul>
  41. 50. Criação da EAP <ul><ul><li>Ferramentas e Técnicas </li></ul></ul>
  42. 51. Criação da EAP <ul><ul><li>Exemplo de EAP </li></ul></ul>
  43. 52. 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>
  44. 53. 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>Agile Modeling </li></ul></ul><ul><ul><ul><li>http://www.agilemodeling.com/essays/ </li></ul></ul></ul><ul><ul><li>Solar Soft </li></ul></ul><ul><ul><ul><li>http://www.solarsoft.com.br/br/wwwPortalFSW/home/archives/ArticleID/0006220507.php </li></ul></ul></ul><ul><ul><li>Goobiz - Pattern for Identifiable Service Specifications (PISS)     </li></ul></ul><ul><ul><ul><li>http://www.goobiz.com/Pattern%20for%20Identifiable%20Service%20Specifications%20(PISS).htm </li></ul></ul></ul>
  45. 54. Referências <ul><li>  </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>AndroMDA </li></ul></ul><ul><ul><ul><li>http://www.andromda.org/ </li></ul></ul></ul><ul><ul><ul><li>http://www-128.ibm.com/developerworks/library/wi-arch19/ </li></ul></ul></ul>
  46. 55. Referências <ul><ul><li>The Meta Object Facility (MOF) Specification </li></ul></ul><ul><ul><ul><li>http://www.omg.org/cgi-bin/apps/doc?ptc/04-10-15.pdf   </li></ul></ul></ul><ul><ul><li>OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2 </li></ul></ul><ul><ul><ul><li>  http://www.omg.org/spec/UML/2.1.2/Infrastructure/PDF/   </li></ul></ul></ul><ul><ul><li>Common Warehouse Metamodel (CWM) Specification </li></ul></ul><ul><ul><ul><li>http://www.omg.org/spec/CWM/1.1/PDF/   </li></ul></ul></ul><ul><ul><li>MOF 2.0/XMI Mapping, Version 2.1.1 </li></ul></ul><ul><ul><ul><li>http://www.omg.org/spec/XMI/2.1.1/PDF/index.htm   </li></ul></ul></ul>

×