MDA: Model-Driven Architecture João Marco Marcel Lessa Paulo Ferreira Thiago Feitoza Thiago Fraga
Roteiro
O que é MDA?
Especificações de Modelagem
Modelos/Camadas
Ferramentas CASE para MDA
PMBOK
Considerações Finais
Referências
O que é MDA?
Definida pela OMG
Foca em modelos
Transformações sucessivas
O que é MDA?
Modelagem
Abordagem principalmente focada em modelos, como o próprio nome indica
Especificações de modelagem e metadados utilizadas: UML, CWM, MOF, XMI
UML (Unified Modelling Language)
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
MOF (Meta Object Facility)
MOF é uma tecnologia para especificação de especificações de modelos, isto é, o conceito de meta-metamodelos
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)
CWM (Common Warehouse Metamodel)
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
Baseia-se na MOF
XMI (XML Metadata Interchange)
XMI tem duas funções:
É um framework para definir, trocar, manipular e integrar dados e objetos XML.
Provê um mapeamento de MOF para 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 modelos
CIM
PIM
PSM
ISM
Computation Independent Model (CIM)
Domain Model ou Modelo de Requisitos
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
Platform Independent Model (PIM)
Modelo de análise e projeto
Tecnologicamente neutra
Permite uso com diferentes plataformas
Define a arquitetura do sistema
Construção especificada sem detalhes de implementação
Platform Specific Model (PSM)
Modelo de realização
Combina as especificações do PIM com detalhes de como o sistema usa determinada plataforma
Define como o sistema é desenvolvido
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
Implementation Specific Model (ISM)
Descrição do sistema em código fonte
Processo para sistemas complexos
Ciclo de Vida da MDA
Ferramentas CASE
"Computer-Aided Software Engineering"
Existem ferramentas variadas que auxiliam o MDA
Criação de modelos
Transformação de modelos
Geração de código
AndroMDA
Accelo
Ferramentas CASE
AndroMDA
Framework open source baseado em MDA
Utiliza UML para a modelagem
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
Permite transformações Model-to-Model
Plugins (cartuchos) para transformação de modelos em componentes de uma plataforma específica
Ferramentas CASE
AndroMDA
Possui cartuchos nativos para transformações
Spring
EJB 2 / 3
WebServices
Hibernate
Struts
JSF
Java
XSD
Atualmente na versão 3.3
Ferramentas CASE
Accelo
Ferramenta integrada ao Eclipse para transformação de modelos em código
Compatibilidade com UML 1.x e 2
Utiliza o conceito de módulos para realizar transformações
Ferramentas CASE
Accelo
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
Cada módulo representa uma tecnologia específica
Java
C#
Um template possui scripts que podem ser modificados para customizar o gerador
Accelo é compatível com XMI 1.x e XMI 2
Papéis em MDA
Analista de requisitos
Analista/Designer
Arquiteto
Analista/Programador
Testador
Mantenedor
Cliente
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:
Definição do cliclo de vida e da organização de um projeto
PMBOK
Sequência típica de fases
PMBOK
Áreas de conhecimento
Gerência de integração de projetos
Gerência de escopo de projetos
Gerência de tempo de projetos
Gerência de custo de projetos
Gerência de qualidade de projetos
Gerência de recursos humanos de projetos
Gerência de comunicações de projetos
Gerência de riscos de projetos
Gerência de aquisições de projetos
Proposta
Criar uma relação de integração entre o Ciclo de Vida MDA e o Ciclo de Vida e Organização de um Projeto
Benefícios
Uso de práticas reconhecidas como relevantes
Gestão efetiva do desenvolvimento software
Benefícios de desenvolvimento orientado a modelos
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?
1 comments
Comments 1 - 1 of 1 previous next Post a comment