processo de desenvolvimento baseado em mda rodrigo teixeira ramos

25
Processo de Processo de Desenvolvimento Desenvolvimento baseado em baseado em MDA MDA Rodrigo Rodrigo Teixeira Ramos Teixeira Ramos

Upload: mirela-fraga-carmona

Post on 07-Apr-2016

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos

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

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

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

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

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

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

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

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

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

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

Exemplo de PSMPSMPSM

Page 12: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos

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

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

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

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

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

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

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

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

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

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

Princípios de ODAC

ODPODPVisionsVisions

Page 23: Processo de Desenvolvimento baseado em MDA Rodrigo Teixeira Ramos

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

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

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