1 / 30

Viabilidade de Construção de Software com MDD e MDA

Viabilidade de Construção de Software com MDD e MDA. André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005. Introdução. MDD – Model Driven Development MDA – Model Driven Architecture OMG - Object Management Group

salene
Télécharger la présentation

Viabilidade de Construção de Software com MDD e MDA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005

  2. Introdução • MDD – Model Driven Development • MDA – Model Driven Architecture • OMG - Object Management Group • Estudo da viabilidade da construção de software com MDD e MDA

  3. Principais Conceitos • MDD • MDA • UML • MOF • XMI • CWM • PIM • PSM • Processo e Transformações

  4. MDD – Model Driven Development • Foco nos modelos • Promete aumentar a produtividade, inclusive na fase de manutenção • Pesquisa da Compuware: ganhos de 70% durante a fase de manutenção. A equipe MDD completou 5 recursos 37% mais rápido (165h contra 260h) • Eclipse - Projeto MDDi - Model Driven Development Integration

  5. OMG – Object Management Group • Em 1989, o foco era padrões middleware OO: CORBA; • Em seguida, UML; • Em 2001, concluiu que a heterogeneidade de tecnologias existentes no mercado era permanente; • Interoperabilidade? Com um sistema padronizado e público de modelos e interfaces independentes de linguagem, sistema ou protocolo.

  6. MDA – Model Driven Architecture

  7. MDA – Model Driven Architecture • Novos modelos abstratos (padrões) • Dependentes de tecnologia • Independentes de tecnologia • Contempla pelo menos um modelo independente e outro independente • Reutilização do modelo independente e dependente • Está ainda em sua infância

  8. UML – Unified Modeling Language • É a especificação mais utilizada • Recursos essenciais: • Diagramas • Estereótipos (stereotypes) • Profiles (perfis) • Constraints (restrições/regras) • UML 2.0 • Principal evolução: modelagem visual • Mais apropriado para MDA e para SOA

  9. MOF – Meta-object Facility • Define a linguagem utilizada para definir modelos padronizados! • Meta-modelos de UML e de CWM • Permite construção de ferramentas • Transformações entre os modelos • UML é uma das linguagens de modelagem definida com MOF

  10. MOF – Meta-object Facility

  11. MOF 2.0 – Meta-object Facility • QVT – Query/Views/Transformations • Principais componentes: • Uma linguagem para a criação de visões sobre os modelos; • Uma linguagem para efetuar pesquisas sobre os modelos; • Uma linguagem declarativa para descrever transformações; • Uma linguagem visual para descrever transformações.

  12. QVT – Query/Views/Transformations /* mapear cada classe persistente em uma tabela */ relation ClassToTable { domain uml c:Class { namespace = p:Package {}, kind='Persistent', name=cn } domain rdbms t:Table { schema = s:Schema {}, name=cn, column = cl:Column { name=cn+'_tid', type='NUMBER'}, primaryKey = k:PrimaryKey { name=cn+'_pk', column=cl} } when { PackageToSchema(p, s); } where { AttributeToColumn(c, t); } }

  13. XMI – XML Metadata Interchange • Recomendado desde 1999 • Baseado no padrão XML da W3C • XMI possibilita a transferência de modelos UML e meta-modelos baseados em MOF através do padrão XML DTD

  14. CWM – Common Warehouse Metamodel • Aplicações de Data Warehousing • Meta-classes especiais em UML • Bancos de dados relacionais, registros e estruturas, OLAP, XML, transformações, visualização da informação, mineração de dados, banco de dados multidimensionais, processos e operações de data warehousing, entre outros.

  15. PIM – Platform-independent Model • Um PIM descreve um sistema completo para uma determinada necessidade de negócio. • Características principais: • O PIM deve ser escrito para ser compreendido e corrigido por outros profissionais. • Deve ser compreendida por seres humanos e por máquinas. • O PIM deve ser independente de qualquer tecnologia de execução.

  16. PSM – Platform-specific Model • Inversamente ao PIM, deve refletir conceitos e construções utilizados na tecnologia correspondente • São automaticamente gerados • Necessitam ser compreendidos apenas por ferramentas automatizadas de transformação e por peritos da tecnologia

  17. Processo de Construção • Construir o PIM; • Transformar o PIM em PSMs; • Transformar os PSMs em código. • Manutenção no PIM • Manutenção no PSM • Manutenção no código

  18. Estudo da Viabilidade • Viável principalmente para: • Projetos de médio a grande porte; • Uma arquitetura com média ou alta complexidade; • Muito trabalho repetitivo; • Pelo menos um talentoso arquiteto de software.

  19. Papéis em um processo MDA • Processo MDA x Tradicional • PIM – Analista de Negócio • PSM – Engenheiro de Software e Programadores (tecnologias) • Código - Programadores

  20. A escolha da ferramenta • Linguagens e ferramentas de transformação produtivas • Geração de código para diferentes linguagens • Geração de código para diferentes mecanismos de persistência, tecnologias e frameworks • Importar e exportar arquivos XMI • Possibilidade de modelar em UML 2.0 • Mecanismos de controle de concorrência • Mecanismos que não destruam os códigos-fonte

  21. Oracle JDeveloper 10g • Sincronização two-way • XMI 1.1 com UML 1.3 a 1.5 • Transformações feitas por tecnologia proprietária • Integração com AndroMDA • Interesse em adicionar futuramente mais recursos para MDA

  22. AndroMDA • Utiliza cartuchos (cartridges) • Utiliza um mecanismo de script com templates, extensível com implementações Java • Permite acessar todos os elementos UML • A entrada é um modelo PIM. A ferramenta transforma em PSM conforme a tecnologia escolhida. • Suporta a noção de "plataforma destino"

  23. IBM Rational • IBM Rational Software Architect • UML 2.0 com meta-dados (MOF); • Geração de código-fonte; • Suporta OCL; • Suporta a criação de meta-modelos. • Rational Rose XDE Developer Plus • Integração com diversas IDEs; • Protótipo da linguagem QVT.

  24. Borland Together Architect 2006 • Distribuído com o Eclipse (e outros) • Oferece todos os recursos necessários • UML 2.0 • Criação e utilização de profiles UML • OCL 2.0 • XMI 2.0 • Recursos para trabalho em equipe • Protótipo de QVT (depuração) • Outros recursos

  25. ArcStyler 5.1 • Todos os diagramas do UML 1.4 • XMI 1.1, MOF 1.4, JMI 1.0 e QVT • Colaboração em equipe, inclusive dispersas geograficamente • Recursos para gerência de projeto • Utiliza Cartuchos, com um bom número de transformações pré-definidas • Integra-se ao Borland CaliberRM e ferramentas da IBM Rational

  26. Compuware OptimalJ 4.0 • Especializada para J2EE, possibilidade de geração de código para outras linguagens/tecnologias • Possui MOF, UML, CWM, XMI • As transformações utilizam a Technology Patterns (escritos em Java) para transformações do PIM para PSM e TPL - Template Pattern Language, para geração de código a partir do PSM • PIM (Domain Model), PSM (Application Model) e código (Code Model) • Possui active synchronization e tecnologia Guarded/Free Blocks • Integra-se ao Borland JBuilder e Macromedia Dreamweaver (compartilha códigos-fonte)

  27. Comparação das Ferramentas • UML: Qual versão? • XMI: Qual a versão? • Transformações: Quais as linguagens? • Re-geração sem destruir artefatos ou trechos de código introduzidos manualmente? • Colaboração para trabalho em equipe?

  28. Comparação das Ferramentas

  29. Conclusão • A escolha da ferramenta normalmente é influenciada por questões culturais e técnicas • Já existem ferramentas completas disponíveis para estabelecer um processo MDA • Basta conhecer MDA, conhecer os papéis, escolher a ferramenta, e capacitar os profissionais.

  30. Leiam o artigo! Muito obrigado! André Sandri www.sandri.cjb.net

More Related