Processo de Processo de Desenvolvimento baseado Desenvolvimento baseado em em MDAMDA
Rodrigo Rodrigo Teixeira RamosTeixeira Ramos
The Object Management The Object Management Group (OMG)Group (OMG) “ “The OMG’s mission is to help computer The OMG’s mission is to help computer
users solve integration problems by users solve integration problems by supplying open, vendor-neutral supplying open, vendor-neutral interoperability specifications.”interoperability specifications.”
1989 2001
OMG é OMG é funfundadadada
CORBA CORBA 1.0, IDL1.0, IDL
CORBA CORBA 2.02.0
UML, MOF, UML, MOF, XMI, CWMXMI, CWM MDAMDA
199719961991
O que é MDA?O que é MDA? “ “An approach to IT system specification An approach to IT system specification
that separates the specification of that separates the specification of system functionality from the system functionality from the specification of the implementation of specification of the implementation of that functionality on a particular that functionality on a particular technology technology platform””
““Design once, build it on any platform”Design once, build it on any platform”
MDA specification, OMG Architecture boardMDA specification, OMG Architecture board
Desenvolvimento de Desenvolvimento de Software TradicionaSoftware Tradicionaisis Problema de ProdutividadeProblema de Produtividade
Artefatos produzidos nas fases iniciais são Artefatos produzidos nas fases iniciais são deixados de lado (deixados de lado (descontinuidadedescontinuidade))
Solução parcial: Extreme Programming Solução parcial: Extreme Programming Problema de PortabilidadeProblema de Portabilidade
Mudanças constantes na tecnologiaMudanças constantes na tecnologia Manutenção da DocumentaçãoManutenção da Documentação
Documentação desatualizadas e má escritasDocumentação desatualizadas e má escritas Em código (solução p/ problemas em baixo Em código (solução p/ problemas em baixo
nível)nível)
Model Driven ArchitectureCiclo de VidaCiclo de Vida Modelo Independente Modelo Independente
de Plataforma (PIM)de Plataforma (PIM) Modelo especifico de Modelo especifico de
Plataforma (PSM)Plataforma (PSM) CódigoCódigoAutomação dos Automação dos passos de passos de transformaçãotransformação
Beneficios de MDAProdutividade Produtividade A A maior parte do código pode ser geradomaior parte do código pode ser geradoPortabilidade (Preservação do Portabilidade (Preservação do conhecimento)conhecimento) Transformação para diversos PSMTransformação para diversos PSMInteroperabilidadeInteroperabilidade Geração de Geração de bridges entre os modelosentre os modelosManutenção e DocumentaçãoManutenção e Documentação Modelos não abandonados (rastreabilidade Modelos não abandonados (rastreabilidade
100%)100%)Separação de interesseSeparação de interesse Foco no desenvolvimento de um PIMFoco no desenvolvimento de um PIM Transformações guardam detalhes técnicosTransformações guardam detalhes técnicos
VisãoVisão Geral de Geral de MDAMDA
Tecnologias Tecnologias centraiscentrais
PPlataformas lataformas de destinode destino
Serviços Serviços pervasivospervasivos
dominios dominios verticaisverticais
ModeloUm modelo é a especificação formal da Um modelo é a especificação formal da função, estrutura e/ou comportamento função, estrutura e/ou comportamento sistemasistema ExemplExemploos:s:
Codigo FonteCodigo Fonte Uma especificação UMLUma especificação UML
Modelo SistemaLinguagem
E escrito em descreve
SintaxeSintaxesemânticasemântica
Modelo Independente de Modelo Independente de Plataforma (PIM)Plataforma (PIM)
Modelo Independente de Plataforma Modelo Independente de Plataforma (PIM)(PIM) Expressado em UMLExpressado em UML Representa as funcionalidades e o Representa as funcionalidades e o
comportamento do negóciocomportamento do negócio Pode utilizar serviços pervasivos e Pode utilizar serviços pervasivos e
facilidades do domíniofacilidades do domínioExemplo de um PIMExemplo de um PIM
Modelo Especifico de Modelo Especifico de Plataforma (PSM)Plataforma (PSM)
Especifico de Plataforma (PSM)Especifico de Plataforma (PSM) Expressado com extensões de UML (Expressado com extensões de UML (
UML profiles)) Possuem decisões estratégica e restrições Possuem decisões estratégica e restrições
escopo escopo
Dimensões de ModelagemDimensões de Modelagem PIM (abstrato) PIM (abstrato) PSM (Concreto) PSM (Concreto)
Pode ser aplicado várias vezes (PIMPode ser aplicado várias vezes (PIMPSM)PSM)
concretoconcreto
Exemplo de PSMPSMPSM
TransformaçõesTransformaçõesTransformaçõesTransformações de modelo (ex.: Refactoring, Normalização)de modelo (ex.: Refactoring, Normalização) de linguagem (ex.: Traduções de Meta-de linguagem (ex.: Traduções de Meta-
model)model) Pode-se usar XSLT.Pode-se usar XSLT.Definição de Transformação e RegrasDefinição de Transformação e Regras
Questões: São processáveis? Questões: São processáveis? Isomórficos? Isomórficos? PIM PSM PSMTransformação
Info. adicionaisInfo. adicionais
Exemplo simples de Regras de TransformaçãoPIM PSM
Transformation Rules:(1) For each public attribute named attributeName : Type of
class className in the PIM the following attributes and operations are part of class className in the target model: A private attribute with the same name: attributeName : Type A public operation named with the attribute name preceded with "get"
and the attribute type as return type: getAttributeName() : Type
Exemplo de Regras de Transformação
PSM
Transformation Rules:(1) For each association end there is a private attribute of the
same name in the opposite class.(2) The type of this attribute is the class at the side of the
association end if the multiplicity is zero or one, or the type is a Set if the multiplicity is larger than one.
(3) ....
PIM
DesenvolvimentoDesenvolvimento em MDA em MDA
PIM
ModeloCORBA
Mapea Mapea p/p/
ModeloJava/EJB
Mapea Mapea p/p/
OutrosModelos……
Mapea p/Mapea p/
CORBA Java/EJB Outros……
MaMapea pea p/p/
Mapea Mapea p/p/
Mapea Mapea p/p/
RReefactorinfactoringg
Pontos de vista e VisõesVisões Visões Organização dos Organização dos
modelosmodelos Níveis de abstraçãoNíveis de abstração Diferentes aspectosDiferentes aspectosPontos de vistaPontos de vista visões em alguma visões em alguma
notaçãonotação Necessidades do Necessidades do
stakeholderstakeholder
Metamodelo MDAMetamodelo MDA
MOF
Other languages
UML
Metamodel
PIM Mapping techniques
PSM Mapping techniques
PIM
PSM
Infrastructure
<<expressed <<expressed with>>with>>
<<expressed <<expressed with>>with>>
<<expressed <<expressed with>>with>>
<<based <<based on>>on>>
1..n1..n
<<based <<based on>>on>>
1..n1..n
Refactoring Refactoring from PSM to from PSM to PIMPIM
<<described <<described with>>with>>
1..n1..n
<<described <<described with>>with>>
1..n1..n
Mapping Mapping from PIM to from PIM to PIMPIM
1..n1..n
Mapping Mapping from PIM to from PIM to PSMPSM
1..n1..n
Mapping Mapping from PSM to from PSM to PSMPSM
1..n1..n
<<depends <<depends on>>on>>
<<independant <<independant of>>of>>
Processo Baseado em Processo Baseado em MDAMDA
MDA pode ser aplicado a qualquer processoMDA pode ser aplicado a qualquer processo Indicando quais modelos serão usados, como serão Indicando quais modelos serão usados, como serão
coordenados, e como serão produzidos (guidelines)coordenados, e como serão produzidos (guidelines)Mudanças:Mudanças: Analise, projeto e codificaçãoAnalise, projeto e codificação Modelos e transformações são artefatos relevantesModelos e transformações são artefatos relevantes
Processo e Modelos (Relação intrínseca)Processo e Modelos (Relação intrínseca) Não válidos para todos os domínios, organizações e Não válidos para todos os domínios, organizações e
projetos (Famílias de Processos)projetos (Famílias de Processos)
FerramentasFerramentas
Novos papeisAnalista PIMAnalista PIM Necessidades do Necessidades do
negócionegócio Modelo de negócioModelo de negócioConstrutor PSMConstrutor PSM Detalhes da plataformasDetalhes da plataformas Arquiteturas Arquiteturas Desenvolvedor de Desenvolvedor de definição de definição de transformaçõestransformações Escrita e compraEscrita e compra
RUP e Metodologias ÁgeisRUP RUP Já centrado na utilização de modelos - UML Já centrado na utilização de modelos - UML Metodologias ÁgeisMetodologias Ágeis Conceitos ainda válidos: Keep it simpleConceitos ainda válidos: Keep it simple
Código Código alto nível de abstração alto nível de abstração ““Extreme Modeling“Extreme Modeling“Model-based testingModel-based testingPode facilitar a comunicação com o clientePode facilitar a comunicação com o cliente Linguagens de modelagem de domínio especificoLinguagens de modelagem de domínio especificoFeedback (Simulações/ geração de código)Feedback (Simulações/ geração de código)
Metodologia orientada a MDA: ODAC
Utilização dos conceitos de RM-ODPAnálise Especificação comportamental (PIM) ODP: Enterprise, Information, Computational
Projeto Especificação de Engenharia (PDM) Especificação Operacional (PSM) ODP: Engineering
Implementação Geração automática de código
Princípios de ODAC
ODPODPVisionsVisions
Críticas a MDA por Scott W. Ambler
Generative x Agile Model Driven Generative x Agile Model Driven DevelopmentDevelopment
Questões ?Questões ? Qual nível de educação é necessário?Qual nível de educação é necessário? Os fornecedores seguirão os padrões?Os fornecedores seguirão os padrões? As linguagens de modelagens são expressivas o As linguagens de modelagens são expressivas o
suficiente?suficiente? MDA não é uma repetição de I-CASE (1980)?MDA não é uma repetição de I-CASE (1980)? Como realizar Gerência de configuração e Testes?Como realizar Gerência de configuração e Testes?
Processo de Processo de desenvolvimento desenvolvimento [Ferramentas][Ferramentas]
Devem se apoiar em ferramentas que:Devem se apoiar em ferramentas que: Verifiquem consistências de regras sobre o modeloVerifiquem consistências de regras sobre o modelo Gerem instancias do modeloGerem instancias do modelo Suportem a transformações entre modelosSuportem a transformações entre modelos
Sejam Bidirecionais, e ofereçam controleSejam Bidirecionais, e ofereçam controle Suportem Suportem MModel odel DDriven riven TTestingesting Suportem controle de versão e trabalho distribuídoSuportem controle de versão e trabalho distribuído
E adicionalmente sejam configuráveis:E adicionalmente sejam configuráveis: linguagem e def. das transformações como linguagem e def. das transformações como
entradaentrada Integrem MOF e SPEM em ferramentas de Integrem MOF e SPEM em ferramentas de
coordenação do processo e modelagemcoordenação do processo e modelagem
ReferReferêêncnciasias MDA SpecificationMDA Specification
Model Driven Architecture specification, OMG Architecture Model Driven Architecture specification, OMG Architecture board, July 2001board, July 2001
LivrosLivros MDA Explained: The Model Driven Architecture™: Practice and MDA Explained: The Model Driven Architecture™: Practice and
PromisePromise. . Anneke Kleppe, Jos Warmer, Wim BastAnneke Kleppe, Jos Warmer, Wim Bast ArtigosArtigos
Examining the Model Driven Architecture (MDA)Examining the Model Driven Architecture (MDA), , Scott W. Scott W. AmblerAmbler..
Model-Driven Architecture Model-Driven Architecture Tutorial, Tutorial, Krzysztof CzarneckiKrzysztof Czarnecki and and Petter GraffPetter Graff. OOPSLA 2003. OOPSLA 2003
Model Driven Engenineering, Stuart KentModel Driven Engenineering, Stuart Kent Model-Based Testing in PracticeModel-Based Testing in Practice, , S. R. DalalS. R. Dalal et al. et al. Towards an MDA-Oriented MethodologyTowards an MDA-Oriented Methodology, , Marie-Pierre GervaisMarie-Pierre Gervais
Top Related