Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.
-
Upload
mirela-fraga-carmona -
Category
Documents
-
view
218 -
download
3
Transcript of Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.
![Page 1: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/1.jpg)
Processo de Processo de Desenvolvimento baseado Desenvolvimento baseado em em MDAMDA
Rodrigo Rodrigo Teixeira RamosTeixeira Ramos
![Page 2: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/2.jpg)
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
![Page 3: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/3.jpg)
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
![Page 4: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/4.jpg)
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)
![Page 5: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/5.jpg)
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
![Page 6: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/6.jpg)
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
![Page 7: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/7.jpg)
VisãoVisão Geral de Geral de MDAMDA
Tecnologias Tecnologias centraiscentrais
PPlataformas lataformas de destinode destino
Serviços Serviços pervasivospervasivos
dominios dominios verticaisverticais
![Page 8: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/8.jpg)
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
![Page 9: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/9.jpg)
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
![Page 10: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/10.jpg)
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
![Page 11: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/11.jpg)
Exemplo de PSMPSMPSM
![Page 12: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/12.jpg)
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
![Page 13: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/13.jpg)
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
![Page 14: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/14.jpg)
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
![Page 15: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/15.jpg)
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
![Page 16: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/16.jpg)
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
![Page 17: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/17.jpg)
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>>
![Page 18: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/18.jpg)
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
![Page 19: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/19.jpg)
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
![Page 20: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/20.jpg)
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)
![Page 21: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/21.jpg)
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
![Page 22: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/22.jpg)
Princípios de ODAC
ODPODPVisionsVisions
![Page 23: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/23.jpg)
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?
![Page 24: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/24.jpg)
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
![Page 25: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos.](https://reader035.fdocuments.us/reader035/viewer/2022062502/570638661a28abb8239027bc/html5/thumbnails/25.jpg)
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