tees - mda apresentação final
TRANSCRIPT
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
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
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
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
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
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&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